diff options
author | Karl Berry <karl@freefriends.org> | 2006-01-09 00:44:09 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2006-01-09 00:44:09 +0000 |
commit | dec3d98ebe442d7ea93efbaa8dd2e2be8149a467 (patch) | |
tree | 64b660a18f1b3b95331a3c0ac2ba45c395e0bd88 | |
parent | f9ba1f4431124f48769a2666d5d9ec921345ca71 (diff) |
doc 3
git-svn-id: svn://tug.org/texlive/trunk@79 c570f23f-e606-0410-a88d-b1316a301751
85 files changed, 18397 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/generic/babel/00readme.heb b/Master/texmf-dist/doc/generic/babel/00readme.heb new file mode 100644 index 00000000000..b4ae253092a --- /dev/null +++ b/Master/texmf-dist/doc/generic/babel/00readme.heb @@ -0,0 +1,605 @@ +% \iffalse meta-comment +% +% Copyright 1989-2005 Johannes L. Braams and any individual authors +% listed elsewhere in this file. All rights reserved. +% +% This file is part of the Babel system. +% -------------------------------------- +% +% It may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.3 +% of this license or (at your option) any later version. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3 or later is part of all distributions of LaTeX +% version 2003/12/01 or later. +% +% This work has the LPPL maintenance status "maintained". +% +% The Current Maintainer of this work is Johannes Braams. +% +% The list of all files belonging to the Babel system is +% given in the file `manifest.bbl. See also `legal.bbl' for additional +% information. +% +% The list of derived (unpacked) files belonging to the distribution +% and covered by LPPL is defined by the unpacking scripts (with +% extension .ins) which are part of the distribution. +% \fi + Hebrew Package for babel system and LaTeX2e + +This new support package for Hebrew language is based on the old LaTeX 2.09 +hebrew.sty and is backward compatible with it. A new babel-based language +switching interface is also supported. + +Bi-directional support uses TeX--XeT or newer e-TeX engine. + +The package is available on-line at http://www.dsg.technion.ac.il/heblatex/ +or at ftp://tochna.technion.ac.il/pub/staff/lavva/heblatex/. It consists of: + + 1. Hebrew package for babel/LaTeX 2e: heblatex.tar.gz or heblatex.zip. + 2. Hebrew fonts (available also on CTAN or ftp.cc.huji.ac.il): + hebfonts.tar.gz or hebfonts.zip. + 3. Examples of hebrew documents: hebexmpl.tar.gz or hebexmpl.zip. + 4. This README.html file, available also in plain text format as + README.txt. + +The babel/LaTeX 2e edition of the hebrew package, as well as documentation +(including this README file) was developed and will be supported by Boris +Lavva, lavva@tx.technion.ac.il. Please direct your additions, modifications, +bug fixes and comments to this address. + +------------------------------------------------------ +Table of contents + + Acknowledgement + Copyright + Installation + Hebrew package usage + Input code pages + Font encodings + Bi-directional sectioning commands + Table of contents, List of figures, List of tables + Hebrew calendar + Document class for preparing Hebrew/English or English/Hebrew thesis + Compatibility with LaTeX 2.09 style + Future work + +------------------------------------------------------ +Acknowledgment + +The following people have contributed to Hebrew package in one way or +another, knowingly or unknowingly. In alphabetical order: +Irina Abramovici, Yaniv Bargury, Yael Dubinsky, Sergio Fogel, Dan Haran, +Rama Porrat, Michail Rozman, Alon Ziv. + +Johannes Braams is the author of babel - a multilingual support for LaTeX. + +Tatiana Samoilov and Vitaly Surazhsky found a number of serious bugs in +preliminary version of Hebrew package. + +A number of other people have contributed comments and information. Specific +contributions are acknowledged within the documentation. + +I want to thank my wife, Vita, and son, Mishka, for their infinite love and +patience. + +If you made a contribution and I haven't mentioned it, don't worry, it was +an accident. I'm sorry. Just tell me and I will add you to the next version. + +------------------------------------------------------ +Copyright + +The copyright similar to other LaTeX 2e packages is added to prevent +inconsistency in version numbers and wide-spread distribution of unsupported +macro files (which was common with the old distributions). + +Changes, bug fixes and additions are always welcome, but they should be or +distributed under other name, or incorporated in this package (by mailing +me). + + -------------------------------------------------- + + Copyright 1997-1998 Boris Lavva and any individual authors listed + elsewhere in this file. All rights reserved. + + For further copyright information, and conditions for modification and + distribution, see any other copyright notices in this file. + + This file is contributed to the Babel system, release 3.6. + + -------------------------------------------------- + This system is distributed in the hope that + it will be useful, but WITHOUT ANY WARRANTY; without even the implied + warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + + For error reports concerning UNCHANGED versions of this file no more + than one year old, see bugs.txt. + + Please do not request updates from me directly. Primary distribution + will be through the CTAN archives. + + IMPORTANT COPYRIGHT NOTICE: + + You are NOT ALLOWED to distribute this file alone. + + You are allowed to distribute this file under the condition that it + is distributed together with all the files listed in manifest.txt. + + If you receive only some of these files from someone, complain! + + Permission is granted to customize the declarations in this file to + serve the needs of your installation, provided that you comply with the + conditions in the file legal.txt. + + However, NO PERMISSION is granted to distribute a modified version of + this file under its original name. + + MODIFICATION ADVICE: + If you want to customize this file, it is best to make a copy of the + source file(s) from which it was produced. Use a different name for your + copy(ies) and modify the copy(ies); this will ensure that your modifications + do not get overwritten when you install a new release of the standard system. + + You can then easily distribute your modifications by distributing the + modified and renamed copy of the source file, together with a suitable + .ins file, taking care to observe the conditions in legal.txt; this will + ensure that other users can safely use your modifications. + +------------------------------------------------------ +Installation + + 1. Full LaTeX 2e distribution should be installed, including TeX--XeT or + e-TeX. Known such distributions include: + o teTeX 0.9 for UNIX with e-TeX + (ftp://ftp.informatik.uni-hannover.de/home/te/private/.0.9/) + o NTeX for UNIX with TeX--XeT + (http://darfnix.mathematik.uni-stuttgart.de/pub/tex/ntex/) + o Web2C for Windows 95 and NT (see at CTAN:systems/win32, for + example, ftp://ftp.dante.de/tex-archive/systems/win32/) + o TeX Live CD-ROMs distributed by TeX Users Group (TUG), see details + at http://www.tug.org. + 2. If e-TeX is installed, check if its format is available in extended + mode, by running elatex or latex on some .tex file: + ----------------------------------------------------------------------- + + This is e-TeX, Version 3.14159-1.1 (Web2c 7.0) + entering extended mode + ----------------------------------------------------------------------- + + The second line should be "entering extended mode". + 3. If TeX--XeT is installed, it will use a LaTeX 2e format file, called + laxet.fmt from the formats directory. This directory is commonly + located at texmf/web2c or texmf/web2c/ini subdirectories. To produce + format file, run initexxet program on the following laxet.ini file: + ----------------------------------------------------------------------- + + % Prevent dumping of LaTeX2e + \let\xxdump=\dump + \let\dump=\endinput + % LaTeX2e format + \input latex.ltx + % Read latex2e.add + \openin1=latex2e.add + \ifeof1\closein1\message{latex2e.add not found} + \else\closein1\input latex2e.add + \fi + % dump + \let\dump=\xxdump + \let\xxdump=\undefined + \dump + ----------------------------------------------------------------------- + + Put the resulting file laxet.fmt to the formats directory and link (or + copy) the virtexxet program as laxet. + 4. Download the babel sources from the CTAN sites, directory + macros/latex/packages/babel. This version of Hebrew package is tested + with babel version 3.6. + 5. Apply the following changes to the standard babel sources: + o babel.dtx -- after the line 916 (greek) add: + \DeclareOption{hebrew}{\input{rlbabel.def}\input{hebrew.ldf}} + o bbcompat.dtx -- after the line 134 (welsh) add: + %<+hebrew>\input rlbabel.def\input hebrew.ldf\relax + o babel.ins -- after the line 346 (bahasa) add: + \generate{\compatfile{hebrew}} + 6. Download the hebrew package, fonts and examples from the above + mentioned place. + 7. Open heblatex to the babel sources directory. + 8. Run latex babel.ins and then latex hebrew.ins. + 9. Move all *.cls, *.sty, *.def, *.fd, *.ldf to the babel directory + searchable by TeX (run MakeTeXls-R or similar program). Usually, babel + is located at TEXROOT/share/texmf/tex/latex/packages/babel or + TEXROOT/share/texmf/tex/generic/babel. + 10. Install hebrew fonts from hebfonts as following: + o Find your public font sources directory, it is usually: + TEXROOT/share/texmf/fonts/source/public. + o Unpack hebfonts file into the abovenamed public directory. It will + create a new directory called hebrew inside public. + o Find your special.map file - it is usually found at + TEXROOT/share/texmf/fontname/special.map and add the following + lines at the end of this file: + @c Hebrew fonts + jerus10 public hebrew + deads10 public hebrew + oldjaf10 public hebrew + telav10 public hebrew + crml10 public hebrew + crmlsl10 public hebrew + fr public hebrew + frbx public hebrew + frsl public hebrew + hclassic public hebrew + hcaption public hebrew + redis7 public hebrew + redis8 public hebrew + redis9 public hebrew + redis10 public hebrew + redis12 public hebrew + redis17 public hebrew + redisb10 public hebrew + rediss8 public hebrew + rediss9 public hebrew + rediss10 public hebrew + rediss12 public hebrew + shold10 public hebrew + shscr10 public hebrew + shstk10 public hebrew + o Run REHASH from texconfig utility or program MakeTeXls-R or newer + mktexlsr (if available) to build a new ls-R database in + TEXROOT/share/texmf directory. You can add inserted file names + manually to ls-R if you cannot find abovenamed programs. + o Note that only 7-bit (old code) fonts are used by new Hebrew + package. + 11. You can check if your installation succeed by LaTeXing examples from + hebexmpl file. + +Finally, you can prepare the LaTeX documentation of all components of the +new Hebrew package by running: + + ------------------------------------ + + latex hebrew.dtx + makeindex -s bbind.ist hebrew.idx + makeindex -s bbglo.ist -o hebrew.gls hebrew.glo + latex hebrew.dtx + latex hebrew.dtx + + ------------------------------------ + +The same procedure can be applied on babel.dtx (or babel.drv) to create the +babel documentation. Files bbind.ist and bbglo.ist are included with babel +installation. + +------------------------------------------------------ +Hebrew package usage + +The usage is simple, for example: + +\documentclass[12pt,twoside]{book} +\usepackage[hebrew,english,russian,danish,greek,...]{babel} + +LaTeX 2.09 style is also supported (in compatibility mode) to process +existing documents, for example: + +\documentstyle[12pt,hebrew_newcode]{article} + +Languages can be switched by the following macros: + + 1. \sethebrew or \unsethebrew + 2. \selectlanguage{hebrew}, \selectlanguage{english}, etc. + 3. \begin{otherlanguage}{hebrew} ... \end{otherlanguage}, or any other + language + 4. \R{hebrew text} inside the latin text + 5. \L{latin text} inside the hebrew text + +First three commands are equivalent: first one provides switching interface, +compatible with LaTeX 2.09 hebrew style, while second and third --- +babel-based interface. + +Last two commands are used for language and direction switching inside +paragraph. + +hmbox and embox macros should be used for inserting Hebrew and English text +(respectively) inside a mathematical formula. + +------------------------------------------------------ +Input code pages + +Hebrew package supports the following input code pages: + + 1. 7-bit hebrew encoding, also known as old code, defined by Israeli + Standard 960 (si960) + 2. IBM PC code page also known as pc code (cp862) + 3. WINDOWS code page also known as new code (cp1255) + 4. ISO 8859-8 Hebrew/Latin code page commonly used in UNIX, also known as + new code (8859-8 also known as new code) + +The default input encoding can be set using option defined above in +parentheses with inputenc style (but *before* babel), for example : + +\usepackage[cp1255]{inputenc} + +Input encoding can be changed also inside the document by the \inputencoding +command, for example: + +\inputencoding{cp862} + +------------------------------------------------------ +Font encodings + +Various font encodings can be used, including, of course, Local Hebrew +Encoding (LHE), with the aid of fontenc style (but *before* babel), for +example: + +\usepackage[LHE,OT2,LCY,T1]{fontenc} + +Many useful font-switching commands are provided in hebfont package which +can be included *after* the babel: + +\usepackage{hebfont} + +These commands are in format \text<font>{Hebrew text}, for example: +\textoj{Text printed with Old Jaffa font}, \textredis{Text printed with +redis font}. + +In addition, for backward compatibility in LaTeX 2.09 documents, the four +old font-switching commands are supported: +{\jm ...}, {\oj ...}, {\ds ...} and {\ta ...} for Jerusalem, Old Jaffa, Dead +Sea and Tel-Aviv fonts respectively. + +The following TeX fonts are supported: + + * Jerusalem (used as default font) + * Dead Sea (used as bold font) + * Tel-Aviv (used as sans-serif or typewriter font) + * Old Jaffa (used as italic or slanted font and for emphasize) + * Hebrew classic normal and slanted (command \textclas) + * Shalom Old Style (command \textshold) + * Shalom Script (command \textshscr) + * Shalom Stick (command \textshstk) + * Carmel normal and slanted (command \textcrml) + * Frank Ruehl normal, bold and slanted (command \textfr) + * Redis normal, bold and slanted (command \textredis) + +------------------------------------------------------ +Bi-directional sectioning commands + +These commands inserts both Hebrew title to the RL table of contents or list +of figures/tables, and English (or other LR language) title to the LR table +of contents or list of figures/tables. + + 1. \bpart{hebrew}{english} + 2. \bchapter{hebrew}{english} + 3. \bsection{hebrew}{english} + 4. \bsubsection{hebrew}{english} + 5. \bsubsubsection{hebrew}{english} + 6. \bcaption{hebrew}{english} + 7. \bchapternn{hebrew}{english} - replaces \chapter* + 8. \bsectionnn{hebrew}{english} - replaces \section* + +A number of additional bi-directional commands are defined in the +hebtech.cls - thesis document class file, described below. + +------------------------------------------------------ +Table of contents, List of figures, List of tables + +Both Right-to-Left and Left-to-Right versions of the tables (toc, lof and +lot) can be generated simultaneously. The LR files have the default +extensions (.toc, .lof and .lot), while the RL files have reversed +extensions (.cot, .fol and .tol). For example, to include RL tables at the +beginning and LR tables before the end of the document: + + ------------------------------------ + + \begin{document} + \sethebrew + \tableofcontents % Generates .cot file + \listoffigures % Generates .fol file + \listoftables % Generates .tol file + ... + \unsethebrew + \tableofcontents % Generates .toc file + \listoffigures % Generates .lof file + \listoftables % Generates .lot file + \end{document} + + ------------------------------------ + +All 6 files are generated simultaneously in two latex passes ! + +------------------------------------------------------ +Hebrew calendar + +Original Hebrew calendar style was created by Michail Rozman, and corrected +by Rama Porrat, Michail Rozman and Dan Haran. + +This style was adjusted to LaTeX 2e by Boris Lavva, and provided in hebcal +package. It can be included *after* the babel: + +\usepackage{hebcal} + +The following 2 user-level commands are provided with the package: + +\newcount\hd \newcount\hm \newcount\hy + +\hd=10 \hm=3 \hy=1992 + +\HebrewDate{\hd}{\hm}{\hy} + +which converts the requested Gregorian date to Hebrew calendar date and +prints it in Hebrew or English (depends on the current language) and: + +\HebrewToday or \hebrewtoday + +which prints the current Hebrew date (today) . + +------------------------------------------------------ +Document class for preparing Hebrew/English or English/Hebrew thesis + +A useful document class file hebtech for preparing M.Sc. and Ph.D. theses +for the Technion (English/Hebrew and Hebrew/English) is included with this +package too. I believe that it can be adjusted for the needs of other +academic institutions in Israel too. This class automatically includes babel +with hebrew and english option, hebfont and hebcal packages. + +The original version for LaTeX 2.09 and old code Hebrew was created in 1994 +by Irina Abramovici, at Taub Computer Center, Technion. + +How to use this document class? + +\documentclass[12pt]{hebtech} + +The following parameters should be included in thesis preamble (before +\begin{document}): + + 1. Thesis title + \title{hebrew}{english} + 2. Thesis author + \author{hebrew}{english} + 3. Department name, e.g. Electrical Engineering Department + \dept{hebrew}{english} + 4. Domain of research, e.g. Food Processing + \dom{hebrew}{english} + 5. Main advisor + \advisori{hebrew}{english} + 6. Second advisor, if exists + \advisorii{hebrew}{english} + 7. Main sponsor + \donori{hebrew}{english} + 8. Additional sponsor, if exists + \donorii{hebrew}{english} + 9. Set thestype counter to: + o 1 --- for a research thesis + o 2 --- for a project thesis + o 3 --- for a final paper + + \setcounter{thestype}{1} + 10. Set grade counter to: + o 1 --- for master of science + o 2 --- for master + o 3 --- for master of technology + o 4 --- for doctor of science + + \setcounter{grade}{1} + 11. Date is optional, if not included, today's date will be used. The + Gregorian date entered will be printed and get converted the Jewish + date. + \date{28}{2}{1998} + 12. Page style is optional too, if not included, plain will be used. + \pagestyle{thesis} + +In the main document the following additional commands and environments can +be used: + + 1. \makecover - creates Hebrew or English cover page, depending on the + current language. + 2. \maketitle - creates Hebrew or English title page, depending on the + current language. + 3. \begin{acknowledgment} ... \end{acknowledgment} - builds the + acknowledgment page and adds inserted customized acknowledgment in + Hebrew or English, depending on the current language. + 4. \begin{dedication} ... \end{dedication} - builds the dedication page in + Hebrew or English, depending on the current language. + 5. \tableofcontents, \listoffigures, \listoftables - builds tables + depending on the current language (all 6 tables can be used + simultaneously). + 6. \begin{abstract} ... \end{abstract} - builds the abstract pages in + Hebrew or English, depending on the current language, adds contents + line to the 2 tables of contents. + 7. \frontmatter, \mainmatter, \backmatter - should be inserted at the + beginning, before the main part, and at the ending of the thesis to + change numbering and other style parameters. + 8. \bibliography{...} - now adds "References" line to the 2 tables of + contents: English and Hebrew. + +Some useful bi-directional commands, for figures and tables provided in this +file too: + + 1. \bcaptionf{hebrew}{english} - similar to \bcaption but answers to + thesis formatting requirements at the Technion, used for figures. + 2. \bcaptionff{to RL lof}{to LR lof}{hebrew}{english} - a customized one + for figures. + 3. \bcaptiont{hebrew}{english} - similar to \bcaption but answers to + thesis formatting requirements at the Technion, used for tables. + 4. \bcaptiontt{to RL lot}{to LR lot}{hebrew}{english} - a customized one + for tables. + +------------------------------------------------------ +Compatibility with LaTeX 2.09 style + +Generally, the new package is compatible with LaTeX 2.09 style file +hebrew.sty, i.e. in most cases one can use the new package on old documents +without any errors. Howver, it does not support Plain TeX, please use +heb_macros.tex, or other TeX macro file for Hebrew instead. + +A few incompatibilities are described below: + + * The macros with Hebrew names are not provided, for example, macro + \hadgesh when the command name "hadgesh" is given in Hebrew is not + supported. The reason is that in new LaTeX 2e it is forbidden to use + 8-bit macros, because all characters 128-255 became to be "active". + However, the following English-coded equivalents are supported for + backward compatibility with LaTeX 2.09 style and can be used even in + the new documents: + 1. \hebday (replaced "hayom"). + 2. \hebcopy (for use in letter style) + 3. \hebincl (for use in letter style) + 4. \hebpage (for use in letter style) + 5. \hebto (for use in letter style) + 6. \hadgesh (produces ``poor man's bold'' - heavy printout, it is + advisable to use real bold fonts, e.g. DeadSea instead) + 7. \piska (can be used only in compatibility mode) + 8. \piskapiska (can be used only in compatibility mode) + 9. \makafgadol (=\textendash) + 10. \makafanak (=\textemdash) + 11. \geresh (=\textquoteright) + 12. \opengeresh (=\textquoteright) + 13. \closegeresh (=\textquoteleft) + 14. \openquote (=\textquotedblright) + 15. \closequote (=\textquotedblleft) + 16. \leftquotation (=\textquotedblright) + 17. \rightquotation (=\textquotedblleft) + 18. \undertext (=\underline, can be used only in compatibility mode) + * In \documentstyle line the following 3 styles can be used in Hebrew + documents: + 1. \documentstyle[hebrew_oldcode,...]{...} in old 7-bit documents + (instead of "hebrew"!). + 2. \documentstyle[hebrew_newcode,...]{...} in 8-bit UNIX or Windows + documents. + 3. \documentstyle[hebrew_p,...]{...} in 8-bit DOS documents. + * hebcal style should always be used (instead of older hebcal_p and + hebcal_newcode). + * Font names for the included 7-bit fonts were renamed (for the sake of + multiplatform support) to lowercase names with no more than 8 + characters as following: + o jerus10.mf - for Jerusalem (10pt) + o deads10.mf - for Dead Sea (10pt) + o telav10.mf - for TelAviv (10pt) + o oldjaf10.mf - for Old Jaffa (10pt) + o shold10.mf - for Shalom Old Style (10pt) + o shscr10.mf - for Shalom Script (10pt) + o shstk10.mf - for Shalom Stick (10pt) + o Some other font-related files were renamed too (to lowercase and < + 8 characters): + + frank_ruehl.mf became frruehl.mf + + redisfont.mf became redisfnt.mf + + redisbx10.mf became redisb10.mf + o All other font names remain unchanged + +------------------------------------------------------ +Future work + + 1. Visual enviroments i.e. tabular, tabbing and array have to be supported + for hebrew. Now only left-to-right direction of lines is supported. + 2. Update hebrew package for the future babel-3.7 release. + 3. Hebrew points and dots ("nikud") support should be added, so it can be + used in font-independent way. + Currently, nikud can be used only on font-dependent way: only shalom + and classic families of fonts provide nikud, and hebrew point glyphs + are located in different places. + 4. Machintosh Hebrew/English input code page support should be added. + 5. Type1/TrueType Hebrew fonts should be supported. + +------------------------------------------------------ +Created by Boris Lavva, lavva@tx.technion.ac.il +Last modified March 1, 1998 diff --git a/Master/texmf-dist/doc/generic/babel/00readme.txt b/Master/texmf-dist/doc/generic/babel/00readme.txt new file mode 100644 index 00000000000..da95f418547 --- /dev/null +++ b/Master/texmf-dist/doc/generic/babel/00readme.txt @@ -0,0 +1,77 @@ + Babel Distribution Guide + + 29 March 2005 + + +Welcome to the Babel system! + +This file contains the distribution guide for version 3.8 of the +Babel system. The Babel system is distributed under the terms of +the LaTeX Project Public License version 1.3 or later. A copy of +the LPPL can be found in the LaTeX distribution. + +The Babel system supports multilingual typesetting. +This version of the Babel system is compatible with LaTeX2e. +Whenever the instructions talk about LaTeX, read LaTeX2e. + +This system is maintained by Johannes Braams in cooperation with +various people around the world. + +The Babel system is described in: + + * The LaTeX Companion 2nd edn., Mittelbach and Goossens et al, Addison-Wesley + + +This distribution is described in the files ending with .txt. You +should read install.txt before starting to install Babel. + + * 00readme.txt is this file. + + * changes.txt is a chronological list of the changes to babel + + * install.txt describes how to install Babel. + * install.OzTeX-4 describes how to install Babel on a Mac with a + recent OzTeX distribution (4.0+). + * install.OzTeX-pre4 describes how to install Babel on a Mac with an + old OzTeX distribution (before 4.0). + + * manifest.bbl lists all the files in the Babel distribution. + + * bugs.txt describes how to submit a bug report for Babel. + + * todo.txt lists a few things that haven't been done yet + + * howtoget.txt lists the places where to get the Babel system and + other related software. + +You are not allowed to change the files in this distribution. + +If you want to add your own options to extend Babel with local +language definitions you can do that by adding \DeclareOption +statements to a configuration file, bblopt.cfg. + +If you like the babel system, please send me a postcard with a nice +postage stamp for my collection! + +Please do not request updates from me. Distribution is done only +through mail servers and TeX organisations. + + +Please send bug reports to the LaTeX bug reporting address, +latex-bugs@latex-project.org. Please read the file bugs.txt in this +distribution and follow the guidelines. + +WARNINGS: +--------- +- The file wnhyphen.tex (russian hyphenation pattern file) contains + changes of uppercase and lowercase codes. Amongst these is + \uccode`\~=`\^ which may lead to unexpected results when the ~ + occurs in the argument of \uppercase + +Send any suggestions, additions, complaints, to me: +e-mail: babel at braams.cistron.nl +address: Kersengaarde 33 + 2723 BP Zoetermeer + The Netherlands +Note that I am more likely to respond to e-mail. +--- Copyright 1997,2005 Johannes Braams. All rights reserved --- diff --git a/Master/texmf-dist/doc/generic/babel/GreekFonts.txt b/Master/texmf-dist/doc/generic/babel/GreekFonts.txt new file mode 100644 index 00000000000..4bc082f60e6 --- /dev/null +++ b/Master/texmf-dist/doc/generic/babel/GreekFonts.txt @@ -0,0 +1,28 @@ + + The Greek fonts + + + The latest version of the "babel" package supports the Greek language. In + order to be able to use the "greek" option correctly someone must have + the correct fonts properly installed. The "greek" option uses the new + fonts designed by Claudio Beccari (beccari@polito.it). The fonts are + complete, i.e., there are shapes for every possible combination. Moreover, + the fonts include the big slide size fonts, which were missing in the + previous font bundle. + + Where to find them + + All the necessary Greek fonts reside in any of the CTAN nodes. They + reside in the directory languages/greek/cb. The font bundle includes + hyphenation patterns plus usage information for the greek option. + + October 15, 1997 + + Apostolos Syropoulos + + snail mail: 366, 28th October Str. + GR-671 00 Xanthi, GREECE + + electronic + mail: apostolo@platon.ee.duth.gr or + apostolo@obelix.ee.duth.gr diff --git a/Master/texmf-dist/doc/generic/babel/announce.txt b/Master/texmf-dist/doc/generic/babel/announce.txt new file mode 100644 index 00000000000..04541542785 --- /dev/null +++ b/Master/texmf-dist/doc/generic/babel/announce.txt @@ -0,0 +1,39 @@ + Hi, + + This is the announcement of babel release 3.8, + + What's new in release 3.8? + Actually babel 3.8 is very much like the later releases of + babel 3.7. Support for a number of languages has been added. + Here is a list of the changes since babel 3.7h: + - Shorthands are expandable again. The disadvantage is that + one has to type '{}a when the acute accent is used as a + shorthand character. The advantage is that a number of other + problems (such as the breaking of ligatures, etc.) have + vanished. + - Two new commands, \shorthandon and \shorthandoff have + been introduced to enable to temporarily switch off one or more + shorthands. + - The support for Hebrew has been updated by Tzafrir Cohen + - Support for Slovak has been extended with shorthand + definitions. + - Support for typesetting Sanskrit in transliteration will + be made available in a later release of babel. + - Support for typesetting Kannada, Devnagari and Tamil will + be made available in a later release of babel. + - Support for typesetting interlingua is now available, thanks to + Peter Kleiweg <kleiweg@let.rug.nl>. + + The last remark: where can you get babel 3.8? + It is available in the directory + /tex-archive/macros/latex/rewuired/babel on CTAN. + + Happy LaTeXing! + + Johannes Braams + +TeXniek, Kersengaarde 33, +2723 BP Zoetermeer The Netherlands. +Phone : +31 79 352 28 19 E-mail : johannes at braams.cistron.nl +Fax : +31 70 343 41 85 +------------------------------------------------------------------------------- diff --git a/Master/texmf-dist/doc/generic/babel/babel.pdf b/Master/texmf-dist/doc/generic/babel/babel.pdf Binary files differnew file mode 100644 index 00000000000..9bfc6264d1d --- /dev/null +++ b/Master/texmf-dist/doc/generic/babel/babel.pdf diff --git a/Master/texmf-dist/doc/generic/babel/bugs.txt b/Master/texmf-dist/doc/generic/babel/bugs.txt new file mode 100644 index 00000000000..d5a4b8c715a --- /dev/null +++ b/Master/texmf-dist/doc/generic/babel/bugs.txt @@ -0,0 +1,81 @@ + Babel Error Reports + + 20 February 2004 + +ERROR REPORTS + +Before you report an error please check that: + + * The error has not already been reported. If you have WWW + access, you can search the LaTeX bugs database using this URL: + + http://www.latex-project.org/bugs.html + + * The error is not caused by software other than the Babel software + that is produced and maintained by me (please report problems with + other software to the authors or suppliers of that software). + + * The error is not caused by using an obsolete version of any file or + of other software. + + * You are using the original version of all files, not one that has + been modified elsewhere. + +If you think you have found a genuine bug in a recent version of the +Babel software please report it in the same way as bugs for LaTeX2e +are reported: + + * Prepare a *short* test file that clearly demonstrates your + problem; see below for a discussion of `short'. + + * Run this file through latex to obtain the transcript file + (often .log) since you will need to submit this file also. + + * Generate a bug report template by running the file + latexbug.tex through LaTeX2e. + + * Fill in the spaces in the generated template file. Please note that + the reporting language is *English* irregardless of the fact, that + the address you are sending the bug report to, might not be in an + English speaking country. Reports received in a language other than + English might not be understandable for the person currently + looking at bug reports! + + * Include all necessary information, especially a complete input + file, a complete transcript file, and all other files used (if they + are not standard). + + Please check carefully to ensure that any non-standard files are + essential to the bug; and remember that I cannot debug files not + supplied by me. + + Any such non-standard files should be included in a `filecontents' + environment at the start of your input file. This allows me to + run your test file without a lot of manual preparation; this is + essential since we have to deal with many reports, not just with + the one written by you. + + * Please note that it is important to make the input file as small + as possible since this will enable me to find and fix the error + quickly. It also helps me because then I can often use it as test + file for future releases. + + I would expect most files to be less than 60 lines, and very + rarely to be longer than 100 lines. + + This can often be achieved by defining a command to be some + arbitrary text and using this several times if it is necessary to + generate longer bits of text. + +Error reports concerning UNCHANGED versions of Babel files should be +sent by E-mail to: + + latex-bugs@latex-project.org + +You will receive an acknowledgement by E-mail containing at the +beginning of its subject line a problem reference of the form +category/number, e.g. babel/1234. Please use this subject line in ALL +further E-mails concerning the problem. Otherwise your reply will be +categorized and filed separately. + +--- Copyright 2004 Johannes Braams. All rights reserved --- diff --git a/Master/texmf-dist/doc/generic/babel/changes.txt b/Master/texmf-dist/doc/generic/babel/changes.txt new file mode 100644 index 00000000000..cc860ecba1c --- /dev/null +++ b/Master/texmf-dist/doc/generic/babel/changes.txt @@ -0,0 +1,2563 @@ + +This file lists changes to the Babel files in reverse chronological order. +NOTE: This file is based on the developers' personal change-log files +and is provided for convenience only. It therefore makes no claims to +completeness or accuracy and it contains some references to files that +are not part of the distribution. + +========================================================================== + + +2005-05-21 Johannes Braams <babel at latex-project.org) + + * base/babel.dtx (subsubsection{\pkg{varioref}}): The varioref + \Ref needs to be able to expand \ref; in order to make this work + we now redefine \Ref_ to call \org@ref (found by Frank Mitelbach). + +2005-05-18 Johannes Braams <babel at latex-project.org) + + * hebrew/hebrew.fdd: Typo's in the docstrip guards prevented the + command \ProvidesFile to appear in HE8nachlieli.fd (PR3774), the + file HE8frankruehl.fd was completely useless + + * base/babel.dtx (subsection{marks}): The way Babel dealt with + adding language information to the marks appeared to rely on + LaTeX's definition of \markboth and \markright, but broke with + classes such as amsart that contain a different definition (PR + 3750 and 3756). Also, the use of \noexpand brok with fancyhdr; + replaced with \protect (found by Frank Mitelbach) + + * italian/italian.dtx: Received a new version of italian.dtx from + Claudio Beccari + +2005-03-31 Johannes Braams (babel at latex-project.org) + + * welsh/welsh.dtx : Translation for `Glossary' provided by Owen + Thomas (owen at llambed.freeserve.co.uk); he also informed me that + the string `a viz' should not be part of the definition for + \today. + +2005-03-30 Johannes Braams (babel at latex-project.org) + + * latin/latin.dtx: Added a comment character in the definition of + \today to prevent an unwanted space in the output. Reported by + Richard Verhoeven (richard.verhoeven at web.de). + +2005-03-24 Johannes Braams (babel at latex-project.org) + + * base/babel.dtx: Andrew Youn (aty at mintaka.sdsu.edu) and + Hillmar Preusse (hille42 web.de) supplied many error corrections + and enhancements to the text. + +2005-03-02 Johannes Braams (babel at latex-project.org) + + * frenchb/frenchb.dtx : Received a new version from Daniel flipo + +2004-11-21 Johannes Braams (babel at latex-project.org) + + * cyrillic/russianb.dtx : Removed the comment character that + disabled the copde line in which the shorthand ", is declared. PR + 3669 requested this shorthand to be activated. Reported by ichail + Vidiassov (master at iaas.msu.ru) + + * base/babel.dtx (subsection{Shorthands}): Added an error message + for the case where \aliasshorthand is used in a document without + prio declaration in the preamble of the new shorthand + character. PR 3590, reported by Igor A. Kotelnikov (i.a.kotelnikov + at inp.nsk.su) + +2004-11-17 Johannes Braams (babel at latex-project.org) + + * magyar/magyar.dtx : Added a numer of comment characters after + PR3720 reported a spurious space in the output. The PR was + reported by Zoltan Gotthardt (gotty at freemail.hu). + +2004-06-14 Johannes Braams (babel at latex-project.org) + + * english/english.dtx : The selection of hyphenation patters was + biased towards the American patterns. Removed this bias. This + change was prompted by comments from Walter Schmidt (w.a.schmidt\ + at gmx.net). + +2004-06-12 Johannes Braams (babel at latex-project.org) + + * base/babel.dtx: Added support for Australian and New + Zealand spelling. + * english/english.dtx: Added support for Australian and New + Zealand spelling upon request from Harald Harders (h.harders at + tu-bs.de) + +2004-05-26 Johannes Braams (babel at latex-project.org) + + * base/babel.dtx (subsection{marks}): When the mark commands are + used with empty argumetns, we don't want to add anything to the + marks. PR3674, found by Ulrich Dirr ud at art-satz.de, stated + that empty marks were no longer empty. + +2004-05-21 Johannes Braams (babel at latex-project.org) + + * russianb.dtx, ukraineb.dtx, bulgarian.dtx : The command for tanh + (\th) conflicts with the T1 definition of \th (the letter + thorn). Therefore changed the definition to be valid only for the + respective language and in math mode only. (PR 3649, found by + Benjamin BAYART (bayartb at jmpl.fr.eu.org)) + +2004-05-02 Johannes Braams (babel at latex-project.org) + + * base/babel.dtx (subsection{Shorthands for quotation marks}): Now + use \ProvideTextCommand and friends instead of + \DeclareRobustCommand to define the quotation marks in order to + keep kerning working (PR3482, 3661, both reported by Harald + Harders, h.harders at tu-bs.de). + +2004-04-19 Johannes Braams (babel at latex-project.org) + + * base/babel.dtx : The code that is executed when the hhline + package is loaded needed an extra \string before the colon to + prevent unwanted expansion of the colon in some circumstances. + +2004-04-15 Johannes Braams (babel at latex-project.org) + + * frenchb/frenchb.dtx : Received a new version from Daniel flipo + +2004-02-20 Johannes Braams (babel at latex-project.org) + + * hebrew/hebrew.dtx: Updated distribution with new files from + Tzafrir Cohen from his ivritex package + + * magyar/magyar.dtx : Use \nobreakspace indefinition of + fnum@figure and fnum@table + + * slovak/slovak.dtx : Tobias Schlemmer (Tobias.Schlemmer at + web.de) provided an extension to the support for Slovak with + shorthand definitions. + +2004-02-19 Johannes Braams (babel at latex-project.org) + + * greek/greek.dtx : Commented out the redefinitions of + \fnum@figure and \fnum@tabel as they are no longer necessary and + proved to be a problem together with the koma class. Pointed out + by Markus Kohm (komascript at gmx.info) and "Matthias M. Weber" + (mmw at aretaios.de) + + * base/babel.dtx (subsection{Umlauts and trema's}): PR 3603 + mentions a problem in \LaTeX when \add@accent occurs in vertical + mode; this problem can occur with \umlauthigh and \umlatlow as + well. Implemented the same fix: add \leavevemode. Reported by: + Gianfranco Boggio-Togna (gbt at acm.org). + + * polish/polish.dtx : The double closing quote was defined using + \textquotedblleft, it should be \textquotedblright according to + Zbigniew Jedrzejewski-Szmek (zjed@ at tempac.okwf.fuw.edu.pl) + +2004-02-18 Johannes Braams (babel at latex-project.org) + + * czech/czech.dtx : Translation for `Glossary' provided by + (tonda.misek at post.cz) (PR 3610) + +2003-11-26 Johannes Braams (babel at latex-project.org) + + * base/babel.dtx (subsection{Multiple languages}): Since the equal + sign may be used in TeX programming it needs to have it's default + category code during language definition file processing. When + turkish is loaded this isn't the case. Therefor the macros + Ldfinit, ldf@quit and ldf@finish have been changed accordingly. + Problem reported in PR 3398 by myself as occuring with latin. + +2003-11-20 Johannes Braams (babel at latex-project.org) + + * catalan/catalan.dtx : Fixed a typo, + found by Ignasi Furió (ignasi.furio at uib.es) \AtBeginDocuemnt + + * magyar/magyar.dtx : Translation for `Glossary' provided by + franciszek holop (fred at pentacom.sk) + +2003-11-17 Johannes Braams (babel at latex-project.org) + + * danish/danish.dtx : The default setting of the hyphenmin + parameters was missing; noticed by Arne Glenstrup + (panic at com.dtu.dk). + + * catalan/catalan.dtx : Translation for `Glossary' provided by + (antispam at wanadoo.es) + + * bahasa/bahasa.dtx : Translation for `Glossary' provided by + (Jörg Knappen) (joerg.knappen at uni-mainz.de) + + * base/babel.dtx (subsection{Shorthands}): Changed the definition + of \active@prefix to take \@unexpandable@rotect into account in + order to make sure that the showkeys package shows the correct + label (PR3547 by Cyril Carrez (cyril.carrez at enst.fr) + + * english/english.dtx : The default setting of the hyphenmin + parameters was missing. + +2003-11-16 Johannes Braams (babel at latex-project.org) + + * base/babel.dtx (subsection{Multiple languages}): Added a + seperate error message for the case where the hyphenation patterns + where loade, but the option wasn't specified. (PR 3329 by + was at VR-Web.de (Walter Schmidt)) + +2003-11-15 Johannes Braams (babel at latex-project.org) + + * base/babel.dtx (subsection{marks}): Added the command + \bbl@resotre@actives to markright and and markboth. This is needed + for the situation when the output routine kicks in while + \@safe@actives is in effect. PR3335 from Werner Lemberg + (wl@gnu.org) shows that this can happen while LaTeX is processing + a bibitem. + +2003-11-14 Johannes Braams (babel at latex-project.org) + + * spanish/spanish.dtx: Received a new version from Javier Bezos + + * frenchb/frenchb.dtx : Received a new version from Daniel flipo + +2003-11-13 Johannes Braams (babel at latex-project.org) + + * base/babel.dtx (subsection{Multiple languages}): removed a line + with \let\bbl@pop@language\relax as it prevents the stack + mechanism from working (PR3583, Daniel Flipo) + (subsection{Language options}): Added the interlingua option, + support provided by Peter Kleiweg (kleiweg at let.rug.nl) and Alberto + Mardegan (mardy at despammed.com) + +2003-10-07 Johannes Braams (babel at latex-project.org) + + * magyar/magyar.dtx : When \l@magyar and \l@hungarian were both + undefined to begin with \l@hungarian staied undefined. Fixed this. + +2003-10-04 Johannes Braams (babel at latex-project.org) + + * hebrew/hebrwe.dtx: Fixed \hebr and \gim which gave missing + endcsname errors; added two \fi to \@@gim which were missing + +2003-09-29 Johannes Braams (babel at latex-project.org) + + * magyar/magyar.dtx : Added \def\@safe@activesfalse{} to + \hun@tempadef to fix PR3426, submitted by Bálint Aradi + (aradi at surphy.fat.bme.hu) + +2003-09-19 Johannes Braams (babel at latex-project.org) + + * catalan/catalan.dtx: The commands \l and \L didn't work when the + package fontenc with encoding T1 was loaded after + babel. Postponing them to \begin{document} helps. + +2003-09-18 Johannes Braams (babel at latex-project.org) + + * magyar/magyar.dtx: The \if-\else-\fi construction which checks + the existnece of \l@magyar and \l@hungarian was malformed, in + effect making l@hungarian undefined when hte patterns were loaded + under that name + +2003-09-12 Johannes Braams (babel at latex-project.org) + + * base/babel.dtx (subsection{Shorthands}): The fix for PR 3383 + didn't make it into the code corretly. \aliasshorthand was broken + as well, the new shorthand was not "deactivated" by verbatim. + +2003-08-25 Johannes Braams (babel at latex-project.org) + + * greek/athnum.dtx: Received a new version from Apostolos + Syropoulos + * french/french.dtx: Received a new version from Daniel flipo + +2003-06-15 Johannes Braams (babel at latex-project.org) + + * base/babel.dtx (subsection{Language options}): Create fd file + with fontfamily substitutes with a lowerase filename + +2003-06-14 Johannes Braams (babel at latex-project.org) + + * bulgarian/bulgarian.dtx (section{The Bulgarian language}): Added + missing closing brace in definition of \@alph@eng; found by Hilmar + Preusse (hille42 at web.de); reported as PR3533 + +2003-06-10 Johannes Braams (babel at latex-project.org) + + * romanian/romanian.dtx : Translation for `Glossary' provided by + Costin Stroie (thubi at med.pub.ro) + +2003-06-07 Johannes Braams (babel at latex-project.org) + + * base/babel.dtx (subsection{Language options}): No longer load + Bernard Gaulle french.ldf when the option `french' was specified; + always load frencb.ldf instead. This change was made after reports + that documents are no longer portable when the option `french' is + used. + +2003-05-23 Johannes Braams (babel at latex-project.org) + + * base/babel.dtx (subsubsection{General}): Now define + \FOREIGNLANGUAGE unconditonally as it might turn up in the + argument of \MakeUpperCase (PR3438) + + * galician/galician.dtx : Translation for `Glossary' provided by + Xoán Pedracova (xpedra at com.uvigo.es) + + * portuges/portuges.dtx : Translation for `Glossary' provided by + Camilo Yamauchi Campo (ccampo at icmc.sc.usp.br) and Xoán Pedracova + (xpedra at com.uvigo.es) + +2003-04-14 Johannes Braams (babel at latex-project.org) + + * italian/italian.dtx: Received a new version of italian.dtx from + Claudio Beccari, removing functionality that has become available + in the LaTeX Kernel. + + * latin/latin.dtx: Received a new version of latin.dtx from + Claudio Beccari; solving PR 3523. + +2003-04-10 Johannes Braams (babel at latex-project.org) + + * greek/greek.dtx : When loading polutoniko greek after frenchb + LaTeX crashes because frenchb makes the `!' an active + charcter. Found by christian at justen-mack.de (Christian Justen) + (PR 3505) + +2003-04-10 Johannes Braams (babel at latex-project.org) + + * bulgarian/bulgarian.dtx : Fixed typo which prevented \@SS to be + defined. Found by "Dimitar Vandev" (vandev at math.bas.bg) + + * danish/danish.dtx : Translation for `Glossary' provided by + Morten H{\o}gholm (moho01ab at student.cbs.dk) in PR 3500 + +2003-04-09 Johannes Braams (babel at latex-project.org) + + * frenchb/frenchb.dtx : New version (1.6b) from Daniel which now + takes guillemets in OT1 from OT4, no longer from OT2/wncyr, thus + providing better cooperation between franch and russian. + +2003-03-19 Johannes Braams (babel at latex-project.org) + + * base/babel.dtx (subsection{Encodig issues (part 1)}): the + command \textlatin needs to start with \leavevmode in order to + start a paraghraph before the group instead of inside it. found by + Frank Mittelbach. + * greek/greek.dtx (subsection{Greek numbering}): Similar change + for \textgreek. + * frenchb/frenchb.dtx : New version (1.6a) from Daniel which + offers the possibility of having footnotes typeset as required by + the French `Imprimerie Nationale'. + +2003-03-18 Johannes Braams (babel at latex-project.org) + + * base/babel.dtx (subsection{Multiple languages}): Use a stack + mechanism to keep track of nested languages. When more than one + level of nesting occurs TeX's grouping mechanism no longer works + as needed. Problem first mentioned by Daniel Flipo + (Daniel.Flipo at univ-lille1.fr) in july 2002. + +2002-01-09 Johannes Braams (babel at latex-project.org) + + * icelandic/icelandic.dtx : Added translation for Glossary as + supplied by Erlendur S Ţorsteinsson (esth at erlendur.com) + +2002-01-07 Johannes Braams (babel at latex-project.org) + + * esperanto/esperanto.dtx : Added translation for Glossary as + supplied by Dominique Unruh (dominique at unruh.de) + + * basque/basque.dtx : Received a new version from Juan + Aguirregabiria, change the ur;'s for the patterns file, translated + Glossary, revised definition of "-. + +2001-11-16 Johannes Braams (babel at latex-project.org) + + * swedish/swedish.dtx : Fixed a changes entry (reported by Frederic + Boulanger (Frederic.Boulanger at supelec.fr)) + * hebrew/hebrew.dtx : Fixed a changes entry (reported by Frederic + Boulanger (Frederic.Boulanger at supelec.fr)) + +2001-11-15 Johannes Braams (babel at latex-project.org) + + * magyar/magyar.dtx: Corrected checksum. (reported by Frederic + Boulanger (Frederic.Boulanger at supelec.fr)) + +2001-11-13 Johannes Braams (babel at latex-project.org) + + * finnish/finnish.dtx : According to Niilo Siljamo + (Niilo.Siljamo at fmi.fi) and Matti Rintala (matti.rintala at tut.fi) + the definition of "= should use \bbl@allowhyphens instead of + \allowhyphens. (PR 3378) + +2001-11-11 Johannes Braams (babel at latex-project.org) + + * base/babel.dtx (subsection{Shorthands}): The user level + shorthands were broken. Fixed this by using the \lccode + trick. PR 3383 found by Nicolae-Alexandru Nicorovici + (nicolae at physics.usyd.edu.au). + +2001-03-12 Johannes Braams (babel at latex-project.org) + + * swedish/swedish.dtx, finnish/finnish.dtx : Translations for + `Glossary' were provided by Martin Vermeer mv at liisa.pp.fi + +2001-03-05 Johannes Braams (babel at latex-project.org) + + * magyar/magyar.dtx : Make sure the the `-character has catcode + 12 when the .aux file is being read in the second time. (see also + change to catalan.dtx d.d. 1999-11-29. + Found by Gyori Sandor (gyori at szit.bme.hu) + +2001-03-01 Johannes Braams (babel at latex-project.org) + + * frenchb/frenchb.dtx (subsection{Caption names}): Added a missing + comment character. + + * base/babel.dtx: Added a number of missing comment characters + which could produce spurious whitespace in documents. + Found by Daniel Flipo (flipo at univ-lille1.fr). + +2001-02-21 Johannes Braams (babel at latex-project.org) + + * cyrillic/{russianb,ukraineb}.dtx : commented out the code that + was copied from amsmath as it genereated a textfont 7 error. This + was reported in PR3226 and PR3245 + +2001-02-20 Johannes Braams (babel at latex-project.org) + + * galician/galician.dtx : Added translation for Proof, provided by + "Emilio Perez Gonzalez" (eperez at cesatel.net). + +2001-02-19 Johannes Braams (babel at latex-project.org) + + * catalan/catalan.dtx : Added setting of hyphenation parameters to + two as required by the Catalan hyphenation patterns cahyph.tex. + +2001-02-16 Johannes Braams (babel at latex-project.org) + + * portuges/portuges.dtx : According to the Portuguese hyphenation + pattern file the \righthyphenmin value should be set to 3 instead + of 2. + Reported by "Walter Schmidt" (was at VR-Web.de) (PR3303) + + * greek/grmath.dtx: New version of this file from Apostolo with + two new options, grlog and enlog. + + * frenchb/frenchb.dtx : New version (1.5d) from Daniel which makes + french the internal name instead of frenchb. + +2001-02-13 Johannes Braams (babel at latex-project.org) + + * cyrillic/ukraineb.dtx : Added the translation for "glossary" as + provided by Andrij Shvaika (ashv at icmp.lviv.ua) in PR3306 + +2001-02-09 Johannes Braams (babel at latex-project.org) + + * base/babel.dtx (subsection{Language options}): Added options + canadien and acadian. + (subsection{Multiple languages}): The CJK package adds an extra + level of grouping to the document through a redefinition of the + \documentclass macro. + Found by Daniel FLIPO (flipo at univ-lille1.fr). + (subsubsection{\pkg{fancyhdr}}): In order to prevent unexpected + results in documents that use fancyhdr combined with the book + class we need to define \FOREIGNLANGUAGE. + Found by Piet van Oostrum (piet at cs.uu.nl) (PR3238) + + * frenchb/frenchb.dtx : New version (1.5) from Daniel Flipo; + Added support for canadien and acadian on request from "Garst + R. Reese" (reese at isn.net) and the LyX developpers. + +2001-02-07 Johannes Braams (babel at latex-project.org) + + * base/babel.dtx (subsection{Language options}): Added the + canadian option on request from "Garst R. Reese" (reese at isn.net) + and the LyX developpers. + + * english/english.dtx : Added support for loading with the option + canadian. + +2001-02-06 Johannes Braams (babel at latex-project.org) + + * german/ngermanb.dtx : Made the option ngermanb act as if ngerman + was specified. + + * greek/greek.dtx : Regression testing revealed that ^^9f can't be + fed to \initiate@active@char as such. It seemed to work, but made + the caret active and brok in combination with a language that + already had made the caret active. To circumvent this greek now + uses the decimal number notation (159) instead of ^^9f where + possible and makes the tilde act as ^^9f for the purpose of + declaring it active. + +2001-01-26 Johannes Braams (babel at latex-project.org) + + * german/(n)germanb.dtx : Added \frenchspacing to extrasgerman as + it is in german.sty. Reported in PR3090 by Heiko Oberdiek + (oberdiek at ruf.uni-freiburg.de). + +2001-01-19 Johannes Braams (babel at latex-project.org) + + * base/bbcompat.dtx: Added options for USenglish and UKenglish and + made sure that the right files are created from bbcompat for plain + TeX users. British.sty (and the others) were missing. Found by + Bernard Treves Brown (mcnbjtb at fs4.in.umist.ac.uk). + +2001-01-12 Johannes Braams (babel at latex-project.org) + + * norsk/norsk.dtx : Changed \ccname and \alsoname according to a + message from Dag Langmyhr (dag at ifi.uio.no) and Karl Ove + Hufthammer (huftis at bigfoot.com) + +2000-12-11 Johannes Braams (babel at latex-project.org) + + * italian/italian.dtx : Added the translation for Glossary as + provided by Claudio Beccari (Beccari at polito.it). + +2000-10-28 Johannes Braams (babel at latex-project.org) + + * norsk/norsk.dtx: Replaced Glossary with its translation from + Rune Kleveland (runekl at math.uio.no) + + * frenchb/frenchb.dtx: Daniel Flipo added + \ThinSpaceInFrenchNumbers + +2000-10-26 Johannes Braams (babel at latex-project.org) + + * greek/greek.fdd : Added more font sizes to make the CB fonts + compatible with the EC fonts as suggested by Ken Smith + (kgs at maths.uq.edu.au) + +2000-10-25 Johannes Braams (babel at latex-project.org) + + * greek/greek.dtx: The final sigma in all names should appear as + `s' instead of `c' + +2000-10-04 Johannes Braams (babel at latex-project.org) + + * samin/samin.dtx: Replaced the word `Glossary' with its + translation supplied by Regnor Jernsletten + (Regnor.Jernsletten at sami.uit.no) + +2000-10-02 Johannes Braams (babel at latex-project.org) + + * base/babel.dtx (subsection{Shorthands}): When the acute has been + made active for one language, an it gets switched to 'non-active' + for a second language we get a "double superscript" error. using + \textormath prevents this. + Found by Javier Bezos (jbezos at wanadoo.es) (PR3266) + + * base/bbplain.dtx: Added \textquotedblleft and \textquoteleft + after PR 3263, found by Enn Saar, (saar at aai.ee) + +2000-10-01 Johannes Braams (babel at latex-project.org) + + * base/babel.dtx (subsection{Cross referencing macros}): The + optional argument of \cite is used for typesetting. Therefor the + shorthands need only to be turned off in the second + argument. Redefinition of \@citex changed accordingly, also taking + care of natbib and cite.sty versions of it. + Found by Javier Bezos (jbezos at wanadoo.es) (PR3262) + +2000-09-26 Johannes Braams (babel at latex-project.org) + + * base/babel.dtx (subsection{Language options}): Added the + samin option; support was provided by Regnor Jernsletten + (Regnor.Jernsletten at sami.uit.no) + +2000-09-25 Johannes Braams (babel at latex-project.org) + + * base/babel.dtx (subsection{Multiple languages}): Use + the \cs{aftergroup} mechanism to keep the language grouping + correct in auxiliary files ; this involves an extra level of + expansion with \bbl@set@language. + PR3091, found by Igor A. Kotelnikov (kotelnikov at nsu.ru) + +2000-09-22 Johannes Braams (babel at latex-project.org) + + * all relevant language files: Now use \providehyphenmins in order + to provide default values instead of overruling any settings from + the hyphenation patterns file. + +2000-09-21 Johannes Braams (babel at latex-project.org) + + * base/babel.dtx (subsection{Language options}): Added the + bulgarian option; support was provided by Georgi Boshnakov + (mcbssgb2 at fs2.umist.ac.uk) + +2000-09-19 Johannes Braams (babel at latex-project.org) + + * all language files: Added \glossaryname with the default + translation of "Glossary" after a suggestion from Thomas Henlich + (henlich at mmers1.mw.tu-dresden.de) + + * polish/polish.dtx: according to "Adalbert Jahnz" + (ad_jahnz at hotmail.com) the definitions of \refname and \bibname + were swapped. Corrected. + + * finnish/finnish.dtx: The definition of \- still used + \allowhyphens instead of bbl@allowhyphens; found by Matti Hollberg + (hollberg at arska.fys.utu.fi) and Rintala Matti (bitti at cs.tut.fi) + + * base/babel.dtx (subsection{Macros common to a number of + languages}): The macro \save@fs@q starts a paragraph inside a + group when called in vertical mode.It shouldn't do that. Donald + Arseneau (ASND at erich.triumf.ca) proposed a different + implementation in PR3219 + +2000-06-29 Johannes Braams (babel at latex-project.org) + + * base/babel.dtx (subsubsection{\pkg{ifthen}}): When babel changes + the definition of \ifthenelse in order to give \pageref it's + original definition it needs to revert \pageref to its babel + version inside the 2nd and 3rd arguments; not after the + \ifthenelse instruction. + PR 3224, found by Heiko Oberdiek (oberdiek at ruf.uni-freiburg.de) + +2000-02-29 Johannes Braams (babel at latex-project.org) + + * norsk/norsk.dtx: The shorthands are the same for both spelling + variants; no need to use \CurrentOption in \declare@shorthand. The + way it was done didn't work anyway, + Found by Rune Kleveland (runekl at math.uio.no) + +2000-02-18 Johannes Braams (babel at latex-project.org) + + * base/babel.dtx (subsection{Multiple languages}): Added the + command \providehyphenmins to be used in the .ldf files. It will + check whether the hyphenmin parameters were set by the hypheantion + pattern file. + +2000-02-04 Johannes Braams (babel at latex-project.org) + + * greek/greek.dtx : After \selectlanguage{polutonikogreek} the + fonts were not reset when returning to an english environment + PR3168, found by Maarten Wisse, (mwisse at theo.uu.nl) + +2000-01-28 Johannes Braams (babel at latex-project.org) + + * norsk/norsk.dtx : In the definition of "- we should use + \bbl@allowhyphens instead of \allowhyphens. + Found by Rune Kleveland (runekl at math.uio.no) + +2000-01-21 Johannes Braams (babel at latex-project.org) + + * english/english.dtx : When the option USenglish was used the + format of the date was *not* american. Also, in some cases the + control sequence \l@<\Currentoption> was not properly + defined. Found by Walter Schmidt (walter.schmidt at arcormail.de) + +2000-01-20 Johannes Braams (babel at latex-project.org) + + * swedish/swedish.dtx: Additions from Erik Östhols + (erik_osthols at yahoo.com): + - The unnecessary version of "=, which I really only included at + the time because it was there in germanb.dtx, from whence I stole + most (all?) of my ideas then, has been modified to something that + is actually useful for typesetting Swedish, and which was (again) + stolen from the finnish.dtx file. + - The likewise unnecessary "~, again stolen from germanb without + my having a clear idea of why it would be useful, has been + deleted. + - The new and *very* useful version of \- as found in + e. g. finnish.dtx has been included. + - The definitions of "a, "A, "o etc. have been changed to allow + subsequent hyphenation, as in current versions of germanb. + - As typesetting the date as "20 januari 2000" is, if not + uncommon, then at least much less common than some other varieties + of formatting of dates in Sweden, two commands have been added to + provide for the much more common "20/1 2000" and "2000-01-20". + +2000-01-08 Johannes Braams (babel at latex-project.org) + + * polish/polish.dtx : The definition of \datepolish contained an + unwanted space which appeared in the output., Found by Ilya Beylin + (ilya at cs.chalmers.se). + +1999-12-18 Johannes Braams (babel at latex-project.org) + + * base/babel.dtx (subsection{Shorthands}): Introduced an extra + level of expansion in the definition of an active caret + + * esperant/esperant.dtx : Moved the check for math mode in the + definition of the ^ to babel.def in case some other language needs + to have ^ as a shorthand character as well. + +1999-12-16 Johannes Braams (babel at latex-project.org) + + * catalan/catalan.dtx : Make sure that the shorthand characters + are turned off outside of catalan. Found by Javier Bezos + (jbezos at arrakis.es) + This also holds for other language definitions: basque.dtx, + breton.dtx, danish.dtx, finnish.dtx, galician.dtx, german.dtx, + icelandic.dtx, ngerman.dtx, norsk.dtx, polish.dtx, portuges.dtx, + serbian.dtx, slovene.dtx, swedish.dtx, usorbian.dtx. + +1999-12-01 Johannes Braams (babel at latex-project.org) + + * base/babel.dtx (subsection{Shorthands}): Need to redefine + \prim@s as well as \pr@m@s as plain TeX uses \next and LaTeX uses + \@let@token. Found by Javier Bezos (jbezos at arrakis.es) + +1999-11-29 Johannes Braams (babel at latex-project.org) + + * catalan/catalan.dtx : Make sure the the `-character has catcode + 12 when the .aux file is being read in the second time. If it is + active when \catcode``\active is read errors result. Found by + Javier Bezos (jbezos at arrakis.es) + +1999-11-22 Johannes Braams (babel at latex-project.org) + + * basque/basque.dtx: fixed a few doc errors as suggested by + Jean-François Mertens (jfm at core.ucl.ac.be) + + * norsk/norsk.dtx : Added the french double quotes, changed the + definition of "f based on the german definition; enhanced + documentation; all by Rune Kleveland (runekl at math.uio.no) + +1999-09-30 Johannes Braams (babel at latex-project.org) + + * esperant/esperant.dtx : Added a chack for math mode to the + definition of the active ^. + +1999-09-29 Johannes Braams (babel at latex-project.org) + + * greek/greek.dtx : The greek language support now makes use of + the language attribute feature. But in order not to break older + documents some extra code is needed to make the option + polutonikogreek work. + +1999-09-16 Johannes Braams (babel at latex-project.org) + + * base/bbplain.dtx (section{Support for formats based on + \textsc{plain}\TeX}): Added the command \@ifundefined which is + used in the definition of active charcters since Babel 3.6Z + +1999-09-06 Johannes Braams (babel at latex-project.org) + + * base/babel.dtx (subsection{Shorthands}): The change from 08/27 + was rubbish; now use \let instead of \edef + +1999-08-27 Johannes Braams (babel at latex-project.org) + + * cyrillic/{russianb,ukraineb}.dtx : Made not using the inputenc + package a warning rather than an Error message after user + requests. + +1999-08-19 Johannes Braams (babel at latex-project.org) + + * base/babel.dtx (subsection{Shorthands}): The proposed fix for + PR3050 doesn't work; use \strip@prefix\meaning. + +1999-08-18 Johannes Braams (babel at latex-project.org) + + * frenchb/frenchb.dtx (subsection{Date and clean up}): No longer + use \edef to define \today; the accent commands are not expandable + and generate error messaages. (PR 3083, found by Thomas Esser + (te at informatik.uni-hannover.de)) + +1999-06-22 Johannes Braams (babel at latex-project.org) + + * base/babel.dtx (subsection{Shorthands}): When the shorthand + character is already active make sure it gets expanded once + instead of fully when \normal@char<char> is defined. This can be + acheived by using \expandafter\noexpand (PR 3050, found by Joachim + Becker (jbecker1 at gwdg.de)) + +1999-04-30 Johannes Braams (babel at latex-project.org) + + * base/babel.dtx (subsection{Shorthands}): Only realy initiate a + shorthand once (suggested by Javier Bezos) + + * italian/italian.dtx : Claudio Beccari introduced the " as a + shorthand to insert the compound word mark (when the encoding is + T1) and added support for ISO 31/XI regulations + +1999-04-29 Johannes Braams (babel at latex-project.org) + + * greek/greek.fdd (section{The encoding definition file}): Removed + the refinition of \& from the encoding file as it doesn't belong + there. + + * greek/greek.dtx : Now switch the definition of \& via + \extrasgreek (removed from the font encoding file); the greek + fonts do not contain an &-sign. + +1999-04-22 Johannes Braams (babel at latex-project.org) + + * base/babel.dtx (subsection{Multiple languages}): In some + situations \lefthyphenmin remained equal to -1. This setting is + now inside the group in which patterns are read. Also added the + explicit setting of the hyphenmin paramters for language=0 as this + didn't happen when the first pattern file changes \lefthyphenmin. + For synonym languages the hyphenmin parameters were not set, this + is now accomplished by storing the \languagename in \process@line + Suggested by Vladimir Volovich (vvv at vvv.vsu.ru) + +1999-04-21 Johannes Braams (babel at latex-project.org) + + * base/babel.dtx (subsection{Cross referencing macros}): It was + reported by Richard Walker (Richard.Walker at cs.anu.edu.au) + (PR 3023) and "Igor A. Kotelnikov" (kotelnikov at nsu.ru) that babel + brok the cite package This could be solved by *not* redefining + \bibcite when the cite package is loaded. + During testing it became clear that running the document the first + time produced an error; solved by adding an \AtBeginDocument + action. (babel 3.6v) + +1999-04-20 Johannes Braams (babel at latex-project.org) + + * base/bbcompat.dtx: Added code to issue a sensible error when the + .sty files are loaded from LaTeXe; but made sure the document can + be processed without complaints about \ProvidesLanguage not defined. + (PR3020, Richard Walker (Richard.Walker at cs.anu.edu.au)) + Made sure the .sty and .ldf files can be used from plain TeX + without hyphen.cfg preloaded. + + * base/babel.dtx (section{The Kernel of Babel}): When plain.def is + loaded from switch.def we need to define \adddialect first in + order to access the second part. (babel 3.6u) + +1999-04-20 Johannes Braams (babel at latex-project.org) + + * babel.dtx (subsection{Shorthands}): Removed the braces again + (PR3022) as the cure poses more problems than it solves. Will + need to find a different solution for the active ^ in esperanto. + +1999-04-18 Johannes Braams (babel at latex-project.org) + + * turkish/turkish.dtx : Incorporated corrections received quite + some time ago from "H. Turgut Uyar" (uyar at cs.itu.edu.tr) + +1999-04-16 Johannes Braams (babel at latex-project.org) + + * greek.dtx, babel.dtx : Moved redefinition of \@roman and \@Roman + back the the greek language support because of the problems it + causes with the AMS document classes. This problem needs to be + solved in a different way; \@roman needs to be used in expansion + only places. + Reported by Jean-Francois Mertens (jfm at core.ucl.ac.be)(PR 3017) + +1999-04-13 Johannes Braams (babel at latex-project.org) + + * babel.dtx (subsection{Cross referencing macros}): The + redefinition of \bibcite didn't work for the natbib package; a + redefinition that works for natbib doesn't work without it. + Now bibcite defines itself during the processing of the .aux file + which is done *before* the \AtBeginDocument commands are executed. + Found by Niilo Siljamo (siljamo at sateenkaari.meteo.helsinki.fi) + (PR 3011) (babel 3.6s) + +1999-04-12 Johannes Braams (babel at latex-project.org) + + * babel.dtx (subsection{Language options}): Re-instated the + loading of babel.def right at the begining of babel.sty as it is + needed to define \ProvidesLanguage. The need for postponing it has + gone, because \bbl@redefine is no longer used as a warning + mechanism against missing options (changed in 3.6p dd 9/4/99) + Found by Werner Struckmann (struck at ips.cs.tu-bs.de) (PR 3006) and + "Walter Schmidt" (wschmi at ibm.net) (PR 3014) babel 3.6r + +1999-04-12 Johannes Braams (babel at latex-project.org) + + * babel.dtx (subsection{Encodig issues (part 1)}): The parsing of + \@filelist to determine the latinencoding turend out to fail when a + file with (default) extension .tex has been loaded. Now use + \@ifl@aded, assuming all encoding .def files have a ProvidesFile + entry. Found by "Igor A. Kotelnikov" (kotelnikov at nsu.ru), + suggesion by Vladimir Volovich (vvv at vvv.vsu.ru) babel 3.6q + +1999-04-10 Johannes Braams (babel at latex-project.org) + + * polish.dtx : Replaced the word `Proof' with its translation + supplied by Andrzej Komisarski (andkom at kki.net.pl) + +1999-04-10 Johannes Braams (babel at latex-project.org) + + * babel.dtx (subsection{Language options}): Added the options + ngerman and naustrian to support the new german orthography, as + supplied by "Walter Schmidt" (wschmi at ibm.net) + +1999-04-09 Johannes Braams (babel at latex-project.org) + + * babel.dtx (subsection{marks}): The solution for PR2990 wasn't + perfect; the arguments to the \mark... commands need to be stored + in a token register prior to using \edef. + (subsection{Language options}): Now check for the existence of + \bbl@main@language instead of redefining \bbl@redefine to detect + missing options. + +1999-04-09 Johannes Braams (babel at latex-project.org) + + * bahasa.dtx : February should be Pebruari according to + Mohammad DAMT (mdamt at cakraweb.com) + + * babel.dtx : Changed the argument handlling of \process@line in + order to prevent a trailing space from becoming part of a control + sequence when defining a synonym + (from a line such as `=english %') + Found by Thomas Esser (te at informatik.uni-hannover.de), (PR 2851) + +1999-04-08 Johannes Braams (babel at latex-project.org) + + * babel.dtx (subsection{marks}): Removed th use of \head@lang in + passing the current language into the marks. This didn't work for + amsart.cls. Found a new solution wich works for the stansdard + document classes as well as for amsart. + Reported by Vittorio Coti Zelati (zelati at cds.unina.it) (PR 2990) + +1999-04-07 Johannes Braams (babel at latex-project.org) + + * babel.dtx (subsection{Encodig issues}): Needed to move the + \AtBeginDocument test for the loading of fontenc right up front of + babel.sty; also added a test for `manual' selection of T1 without + loading fontenc (via \renewcommand\encodingdefault{T1}) as + suggested by Claudio Beccari (Beccari at polito.it) + +1999-04-05 Johannes Braams (babel at latex-project.org) + + * babel.dtx : Had to implement a diferent way to check for fontenc + with T1 encoding; now pare \@filelst (PR 3002) + +1999-04-05 Johannes Braams (babel at latex-project.org) + + * babel.dtx (subsection{Multiple languages}): Need to set + default values for lefthyphenmin and righthyphenmin globally now + that the patterns are read in a group. + + * catalan.dtx, danish.dtx, dutch.dtx, estonian.dtx, finnish.dtx, + galician.dtx, polish.dtx, portuges.dtx, spanish.dtx, germanb.dtx, + swedish.dtx usorbian.dtx : changed the definition of "- as + \allowhyphens is a no-op with T1 now. That is alright for accented + letters but *not* for "- in these files. + Found by Niilo Siljamo (siljamo at sateenkaari.meteo.helsinki.fi) + (PR 2993, 2995) + +1999-04-03 Johannes Braams (babel at latex-project.org) + + * greek/greek.dtx : Made \greeknumeral accept a counter as its + argument. found by Andreas Schwab + (schwab at issan.informatik.uni-dortmund.de) (PR 3000) + + * greek/greek.fdd : Got a new version from Apostolos; repaired a + few typo's found by Andreas Schwab + (schwab at issan.informatik.uni-dortmund.de) (PR 2997) + + * cyrillic/ukraineb.dtx (section{The Ukrainian language}): + Replaced \CYRUKRI with \CYRII in \authorname, typo, found by + Andrij Shvaika (ashv at icmp.lviv.ua) + + * babel.dtx (section{The Package File}): Don't load babel.def from + babel.sty, but rather define \LdfInit temporarily in order to load + babel.def at the right time, preventing problems with the + temporary definition of \bbl at redefine; found by + Walter Schmidt (wschmi at ibm.net), PR 2987 and + Andreas Schwab (schwab at issan.cs.uni-dortmund.de), PR 2998 + +1999-03-12 Johannes Braams (babel at latex-project.org) + + * croatian.dtx : Changed an occurence of \od into \or; found by + Damir Medak (medak at geoinfo.tuwien.ac.at) (PR 2918) + + * bahasa.dtx : February is Pebruary in bahasa Indonesia according + to Mohammad DAMT (mdamt at cakraweb.com) + +1999-03-09 Johannes Braams (babel at latex-project.org) + + * babel.dtx : added the ukrainian option, provided by Vladimir + Volovich (TeX at vvv.vsu.ru) and Andrij Shvaika (ashv at icmp.lviv.ua) + +1999-02-28 Johannes Braams (babel at latex-project.org) + + * slovak.dtx : repaired a few spelling mistakes found by + Peter Kral (Peter.Kral at swh.sk) + +1998-07-02 Johannes Braams (babel at latex-project.org) + + * babel.dtx (subsection{Language attributes}): Added support for + language attributes. + + * bbplain.dtx : Added defintion of \in@, needed for language + attributes. + +1998-06-27 Johannes Braams (babel at latex-project.org) + + * babel.dtx (section{The Package File}): Added a definition of + \bbl@redefine before the call to \ProcessOptions. The idea is to + generate a sensible error message when the user forgets to + specifiy a language option. + +1998-06-25 Johannes Braams (babel at latex-project.org) + + * norsk.dtx : Added the suggestions from Rune Kleveland + (runekl at math.uio.no) for the " shorthand. + +1998-06-15 Johannes Braams (babel at latex-project.org) + + * germanb.dtx : Updated the coding for "f from german.dtx version + 2.5d after a discussion about this subject with Heiko Obrerdiek + (oberdiek at ruf.uni-freiburg.de) + +1998-06-09 Johannes Braams (babel at latex-project.org) + + * babel.dtx (subsection{Multiple languages}): Changed definition + of \iflanguage using \bbl@afterelse, \@fristoftwo and + \@secondoftwo in order to evaluate the selected argument *after* + the \fi's have been seen by TeX. (PR 2800) + (oberdiek at ruf.uni-freiburg.de) Heiko Oberdiek) + +1998-06-08 Johannes Braams (babel at latex-project.org) + + * install.txt: Changed installation instructions, *not* + advising them to rename hyphen.tex, but to use bplain.tex as a + replacement for plain.tex. + + * bbplain.dtx: Added the source for the format replacement wrapper + files bplain.tex and blplain.tex. This is the result of a + discussion with a number of people about the permissabillity of + renaming hyphen.tex. Don Knuth doesn't allow it. + + * germanb.dtx, polish.dtx, usorbian.dtx: changed the definition of + \mdqon and \mdqoff to use the new commands \shorthandon and + \shorthandoff. + + * babel.dtx (section{The user interface}: Added two commands, + \shorthandon and \shorthandoff as a more general solution to + PR2627. + +1998-03-28 Johannes Braams (babel at latex-project.org) + + * all language definition files: use \def to define \today, in + order to prevent expansions at the wrong time. + +1998-03-27 Johannes Braams (babel at latex-project.org) + + * babel.dtx (subsection{Cross referencing macros}): Changed the + redefenition of \bibcite to include \@safe@activesfalse in the + definition of the reference. + +1998-03-13 Johannes Braams (babel at latex-project.org) + + * babel.dtx (subsection{Cross referencing macros}): Removed + \@safeactivesfalse from #3 of \@newl@bel and \@testdef + +1998-03-12 Johannes Braams (babel at latex-project.org) + + * babel.dtx (subsection{Multiple languages}): Now also execute + \originalTeX from \foreignlanguage in order to reset a possibly + changed output encoding. + +1998-03-12 Johannes Braams (babel at latex-project.org) + + * babel.dtx (subsection{Encodig issues}): Added the redefinition + of \TeX and \LaTeX to make them encoding independant. + +1998-03-11 Johannes Braams (babel at latex-project.org) + + * babel.dtx (subsection{Encodig issues}): Use the T1 encoding when + it is a known encoding, otherwise use OT1 as latin encoding. + +1997-12-19 Johannes Braams (babel at latex-project.org) + + * babel.dtx (subsection{Cross referencing macros}): Call + \@safe@activestrue instead of \set@display@protect which casued + errors. + +1997-11-19 Johannes Braams (babel at latex-project.org) + + * babel.dtx (subsection{Shorthands}): Removed the check for \write + being primitive. Problem solved in seminar. + +1997-11-13 Johannes Braams (babel at latex-project.org) + + * greek.dtx : Received a new version from Apostolous; replaced the + \greeknumeral coding with an expandable solution + + * babel.dtx (section{The Package File}): Added the option + polutonikogreek for typesetting greek text with all accents. + +1997-11-04 Johannes Braams (babel at latex-project.org) + + * babel.dtx : Removed the braces around #1 of \bbl@tempa in the + redefinition of \ProvidesFile in hyphen.cfg (PR 2659) + clase at mathematik.uni-freiburg.de ( Matthias Clasen ) + +1997-10-08 Johannes Braams (babel at latex-project.org) + + * frenchb.dtx: Received a new frenchb.dtx from Daniel Flippo + +1997-10-02 Johannes Braams (babel at latex-project.org) + + * dutch.dtx : Added "/ for words written together, indicating a + choice as in uitdrukking/opmerking + +1997-10-01 Johannes Braams (babel at latex-project.org) + + * all language definition files: use \edef to define \today; this + save memory, see classses.dtx for the motivation. + +1997-09-29 Johannes Braams (babel at latex-project.org) + + * turkish.dtx : Added and modified a number of translation as + provided by "H. Turgut Uyar" (uyar at cs.itu.edu.tr) + +1997-09-17 Johannes Braams (babel at latex-project.org) + + * frenchb.dtx: Received a new frenchb.dtx from Daniel Flippo. + +1997-09-15 Johannes Braams (babel at latex-project.org) + + * babel.dtx (subsection{Shorthands}): Added a check for \write + still being primitive. If not it might have been redefined as + \immediate\write and in such a case \protected@write needs to set + \protect to \noexpand instead of making it \@unexpandable@protect + in order to prevent a \protet kreeping in the .aux file. This + problem cropped op with the use of seminar.cls and was found by + Daniel FLIPO (flipo at univ-lille1.fr) + +1997-09-11 Johannes Braams (babel at latex-project.org) + + * polish.dtx : Added translation of `Proof' and changed + translation of contents from `Spis rzeczy' as suggested by + Tomasz Michniewski (tomekm at ias.wat.waw.pl) + + * bbplain.dtx : repaired a type (\expoandafter) and added missing + \endcsname (PR 2553, found by Nicolai Langfeldt (janl at math.uio.no)) + + * croatian.dtx : Replaced a number of translations with better + ones, provided by Kresimir Fresl (fresl at grad.hr) + +1997-04-29 Johannes Braams (babel at latex-project.org) + + * greek.dtx : Selecting the greek language produced unwanted + whitespace because of lines such as \babel@save`\". + Found a few typos in the process. + +1997-04-25 Johannes Braams (babel at latex-project.org) + + * babel.dtx (subsection{Shorthands for quotation marks}): The + definitions of \grq and \grqq should be dependent on the + fontencoding. Taken the code from german.sty (and adapted it to + babel). Found by: Stefan Illy (illy at itpgyro1.fzk.de) and + Bjoern Lorenz (lorenz at rz.charite.hu-berlin.de) + +1997-04-20 Johannes Braams (babel at latex-project.org) + + * greek.dtx : made \greek@alph a synonym for \greeknumeral instead + of having it's own definition. + +1997-04-16 Johannes Braams (babel at latex-project.org) + + * babel.dtx: Make multiple loading of babel.def impossible by + adding a check for the existence of \bbl@afterfi. This was + triggered by PR 2447 where french.sty loaded babel.def for a + second time. + +1997-04-03 Johannes Braams (babel at latex-project.org) + + * dutch.dtx (and others): remove empty groups after quote + characters in the shorthand definitions (such as \quotedblbase) in + order to keep possible kerning. + (PR 2454, found by S\o ren Sandmann (sandmann at daimi.aau.dk)) + +1997-04-01 Johannes Braams (babel at latex-project.org) + + * dutch.dtx : The definition of "~ was faulty, (forgot to replace + `german' with `dutch'. + Found by Maarten Gelderman (mgelderman at econ.vu.nl) + +1997-03-21 Johannes Braams (babel at latex-project.org) + + * babel.dtx (section{The Package File}): The option + KeepShorthandsActive no longer defines a control sequence. This + didn't always work because of the order in which options are + processed. The presence of the option is now tested in babel.def + with \@ifpackagewith. (PR 2452) + +1997-03-18 Johannes Braams (babel at latex-project.org) + + * babel.dtx (section{Identification}): Added the macro + \ProvidesLanguage to identify language definition files instead of + using \ProvidesFile. This is done to prevent problems with the + dummy definition of \ProvidesFile for plain based formats. Some + other packages are confused by it. Now make sure that + \ProvidesFile remains undefined in plain based packages. (PR 2444) + +1997-03-15 Johannes Braams (babel at latex-project.org) + + * babel.dtx (section{The Package File}): Added the possibilty to + add option declarations in a file called bblopts.cfg. + + * kannada.dtx: Extended the user documentation with a description + of the various font changing commands. + + * russianb.dtx : Removed the commands \textlatin, \latintext and + \latinencoding as they are now defined by babel.def. + + * babel.dtx (subsection{Encoding issues}): Added the commands + \textlatin, \latintext and \latinencoding to better support + languages that need a different fontencoding. These commands used + to be in russianb.dtx and greek.dtx. + (subsection{marks}): Added redefinition of \markright and + \markboth in order to be able to pass the language attribute to + the headlines. + + * greek.dtx : Removed the commands \textlatin, \latintext and + \latinencoding as they are now defined by babel.def. + Removed the redefinition of \@roman and \@Roman which is also + moved to babel.def + +1997-03-12 Johannes Braams (babel at latex-project.org) + + * babel.dtx (section{The Package File}): Added a default option + that loads the file \CurrentOption.ldf if it exists. If not an + error is signalled. + +1997-03-11 Johannes Braams (babel at latex-project.org) + + * greek.dtx : Added the \greeknumeral and \Greeknumeral macros to + support (old) greek conventions for number notation. + +1997-03-06 Johannes Braams (babel at latex-project.org) + + * greek.dtx : Also change some uppercase codes to get ridd of + accents and breathings in uppercase. (from kdgreek.sty) + +1997-03-01 Johannes Braams (babel at latex-project.org) + + * babel.dtx (subsection{Shorthands}): Make shorthands active + during the processing of the .aux file; this is at least needed to + get citations correct. (PR2428) + (subsection{Cross referencing macros}): Added a redefinition of + \@newl@bel, which replaces the redefinitions of \@lbibitem and + \newlabel. This needed to make the handling of citations correct. + Changed the definition of \@testdef to match \@newl@bel + + +1997-02-28 Johannes Braams (babel at latex-project.org) + + * babel.dtx (subsection{Cross referencing macros}): Added the + setting of the @safe@actives switch in \@testdef; shorthands might + occure in the first or second argument. + +1997-02-25 Johannes Braams (babel at latex-project.org) + + * babel.dtx (subsection{Cross referencing macros}): Now reset the + safe@actives switch *inside* the second and third arguments of + \ifthenelse in order to be able to use shorthands there. + Suggested by Olaf Kummer (kummer at informatik.uni-hamburg.de) in + PR 2421. + +1997-02-24 Johannes Braams (babel at latex-project.org) + + * estonian.dtx : One \changes entry was mistakenly pointing to + dutch. + + * magyar.dtx : One \changes entry was mistakenly pointing to + dutch. + + * dutch.dtx : Changed a \changes entry, replace "\~ with "\~{} to + prevent error messages. + (found by Ingo Saitz (ingo at baer.schneiderberg6.de), PR 2426) + + * babel.dtx (subsection{Shorthands}): Now always start the user + group of shorthands with the name `user' because of the provided + definition for the case with an empty argument. + +1997-02-23 Johannes Braams (babel at latex-project.org) + + * babel.dtx (subsection{Shorthands}): commented out \peek@token + and \test@token because shorthands are made expandable again. + (subsection{Shorthands}): Changed \@decl@short in such a way that + the control sequence that is constructed is different for a + shorthand with no argument and for a shorthand with an empty + argument. + +1997-02-20 Johannes Braams (babel at latex-project.org) + + * babel.dtx (subsection{Shorthands}): Made \bbl@afterelse and + \bbl@afterfi \long in order to be able to handle \par + as the argument of a shorthand. This is needed in order to make + shorthands fully expandable again. + +1997-02-19 Johannes Braams (babel at latex-project.org) + + * greek.dtx : Added command \greek@tilde to stand for the tilde + character; change definition of \~ to produce the tilde character + when in greek typesetting. This is necessary to produce the + desired ligature effect. + Found by Rizos Sakellariou (rizos at cs.man.ac.uk) and by + David Kastrup (dak at neuroinformatik.ruhr-uni-bochum.de) as PR 2422. + +1997-02-12 Johannes Braams (babel at latex-project.org) + + * spanish.dtx : Metion in the user documentation that the + '-character is only active when the option `activeacute' is + specified. + Found by Josep Maria Font (font at cerber.mat.ub.es) + + * catalan.dtx : Added \l.l and \L.L to the table listing the + special definitions for catalan. + Found by Josep Maria Font (font at cerber.mat.ub.es) + +1997-02-11 Johannes Braams (babel at latex-project.org) + + * english.dtx : fixed small documentation bug + Found by Josep Maria Font (font at cerber.mat.ub.es) + +1997-02-07 Johannes Braams (babel at latex-project.org) + + * babel.dtx : Added sanskrit to the driver files + + * bbcompat.dtx: Added sanskrit + + * babel.ins: Added the processing of sanskrit.dtx + +1997-02-06 Johannes Braams (babel at latex-project.org) + + * croatian.dtx : sijev{c}nja should be seij\v{c}nja and there + should be a period after the year. + Found by Ivo Batistic (ivo at ifs.hr) + +1997-01-24 Johannes Braams (babel at latex-project.org) + + * sanskrit.dtx : Update Jan Takashima's original file to babel + release 3.6 + +1997-01-23 Johannes Braams (babel at latex-project.org) + + * babel.dtx (subsection{Multiple languages}): Added a couple of + \expandafters to the end of hyphen.cfg as \toks8 is now cleared by + LaTeX (release 1996/12/01), now copy contents of \toks into + \everyjob instead of reference. + (found by Richard Walker (Richard.Walker at cs.anu.edu.au) PR 2382 + Ulrik Vieth (vieth at thphy.uni-duesseldorf.de) PR 2385 and + Vincent Jalby (jalby at unilim.fr)) + + * babel.ins: Added missing \usepreamble\mainpreamble line; changed + 1996 in 1997. + + * finnish.dtx: Forgot to remove the code that is now part of + \LdfInit; hence babel.def was loaded twice which led to TeX fatal + errors. + (found by Niilo Siljamo (Niilo.Siljamo at Helsinki.FI) PR 2386) + +1997-01-19 Johannes Braams (babel at latex-project.org) + + * bbplain.dtx : Got the order of cs's wrong in the definition of + \@tempcntb (found by Ricardo S. C\'armenes + (carmenes at biosun.quimica.uniovi.es) PR 2376) + +1997-01-17 Johannes Braams (babel at latex-project.org) + + * babel.dtx: Somehow a lonely '+' had found its way into babel.dtx + on a line of its own. Removed + (found by Maarten Gelderman (mgelderman at ECON.VU.NL)) + +1997-01-14 Johannes Braams (babel at latex-project.org) + + * babel.dtx (subsection{Shorthands}): Optionally disable the + restoration of the category code of shorthand characters for those + who want to have them available in the preamble of the document. + (suggested by Tomas Bautista (bautista at cma.ulpgc.es)) + + * dutch.dtx : Added the "~ shorthand (copied from germanb.dtx) as + suggested on TEX-NL at nic.surfnet.nl + + * bbplain.dtx : missing \@undefined added to definition of + \@begindocumenthook; \newcount is an \outer macro, so it can't be + used directly inside an \if test. + (found by Daniel Flippo) + + + * babel.dtx (subsection{Cross referencing macros}): Added + \bbl@redefine@long to be able to redefine \ifthenelse as a + \long-command (PR2372) + Changed redefinition of \ifthenelse to make it a \long-command + (PR2372) + +1997-01-09 Johannes Braams (babel at latex-project.org) + + * frenchb.dtx : allow \l@french and \l@francais to be the `name' + of the hyphenation patterns; make \l@frenchb an alias for that. + Use frenchb.cfg as the name of the .cfg file, regardless of the + option that was used. + (subsection{Formatting numbers}): New macros \nombre \decimalsep + and \thousandsep added to format numbers + (subsection{Extra utilities}): Removed \AllTeX, \fup, \french and + \english + + * babel.ins: Added .fd files to instructions at the end + (found by Piet van Oostrum (piet at cs.ruu.nl) PR 2367) + + * greek.fdd (section{The encoding definition file}): Added + (re)definitins of the \TeX and \LaTeX commands to make them + encoding independant; added LGR versions of \copyright, + \texttrademark, \textregistered and \ss + + * cyrillic.fdd (section{The encoding definition files}): Added + (re)definitins of the \TeX and \LaTeX commands to make them + encoding independant; added LCY/LWN versions of \copyright, + \texttrademark, \textregistered and \ss + (found by J"org Knappen (tex at dzdmza.zdv.uni-mainz.de), PR 2357) + +1997-01-08 Johannes Braams (babel at latex-project.org) + + * spanish.dtx,galician.dtx : Added \leavevmode to the definitinos + of "a and "o because TeX generated an error when they were used in + vertical mode. + (found by Eric Gamess (eric at borabora.univalle.edu.co), PR 2363) + + * babel.dtx (section{The Package File}): Added the options + frenchb, UKenglish and USenglish (all aliases) + (found by Daniel Flippo and Vincent Jalby (jalby at unilim.fr)) + +1997-01-08 Johannes Braams (babel at latex-project.org) + + * galician.dtx : Removed unwanted space tokens by adding a + %-token at the end of the lines with babel@save in the definition + of \extrasgalician. They turned up in the output. (just like for + spanish.dtx) + + * catalan.dtx : Removed unwanted space tokens by adding a + %-token at the end of the lines with babel@save in the definition + of \extrascatalan. They turned up in the output. (just like for + spanish.dtx) + +1997-01-07 Johannes Braams (babel at latex-project.org) + + * greek.fdd (section{The font definition files}): In some font + substitutions kdgr hadn't been replaced with cmr. + (found by J"org Knappen, PR2358) + + * babel.dtx (subsection{Multiple languages}): Introduced + \foreign@language for the shared code between the otherlanguage* + environment and the \foreignlanguage command. + Switch off language shorthands before activating the extras (to + prevent that the shorthands from one language are still available + in the other. + Add \relax after the setting of the hyphenmin parameters to + prevent the disappearance of a token (when it happens to be a + digit, such as \number\day). + (found by Daniel Hempel (daniel at math.uni-hamburg.de) PR2362) + + * spanish.dtx : Removed two unwanted space tokens by adding a + %-token at the end of the lines with babel@save in the definition + of \extrasspanish. They turned up in the output. + (found by Daniel Hempel (daniel at math.uni-hamburg.de) PR2362) + + * bbplain.dtx (section{Support for formats based on + \textsc{plain}\TeX}): add definition of \@begindocumenthook to the + LaTeX2.09 format; otherwise it won't function without one of the + languages loaded. + (found by Olaf Weber (Olaf.Weber at cwi.nl)) + +1997-01-06 Johannes Braams (babel at latex-project.org) + + * dutch.dtx (section{The Dutch language}): Use Bew"ys instead of + Bewijs (PR 2360, J"org Knappen) + + * esperant.dtx (section{The Esperanto language}): Fixed typo in + table caption (funtion -) function) (PR 2360, Knappen) + + * tb1202.tex, tb1401.tex: fixed a few typos found by Ulrik Vieth, + (vieth at thphy.uni-duesseldorf.de) (PR 2356) + +1997-01-05 Johannes Braams (babel at latex-project.org) + + * babel.dtx (section{The Package File}): When \LdfInit is + undefined we need to load babel.def from babel.sty. + When \file{hyphen.cfg} is not loaded in the format \cs{l@english} + might not be defined; assume english is language 0 before calling + \main@language{english}. + (found by J"org Knappen (tex at mzdmza.zdv.uni-mainz.de) PR2354) + +1997-01-02 Johannes Braams (babel at latex-project.org) + + * bbplain.dtx : The redefinition of \dump tried to detect + LaTeX2.09; it did that with \document; that cs is also defined by + AMSTeX, hence an error occured building a Babel-AMSTeX format. + Now use \@ztryfc to detect LaTeX2.09 (Hope that is obscure + enough). (Found by Thomas Esser) + +1996-12-30 Johannes Braams (babel at latex-project.org) + + * babel.dtx (subsection{Support for extending macros}): Added a + check for an expansion of \relax to the definition of \addto; + \addto\x{...} yields \x -> {\x ...} when \x expands to \relax. + This results in a stack overflow when \x is called. + +1996-12-29 Johannes Braams (babel at latex-project.org) + + * italian.dtx, russian.dtx : Added braces around second argument + of \LdfInit + (found by (tim at maths.tcd.ie) (Timothy Murphy), PR 2384) + + -------------------------------------------------------- +1996-12-24 Johannes Braams (babel at latex-project.org) + + Release 3.6 + +1996-12-14 Johannes Braams (babel at latex-project.org) + + * babel.dtx (section{The Package File}): Added the option + `welsh'. + +1996-11-07 Johannes Braams (babel at latex-project.org) + + * babel.dtx (subsection{Multiple languages}): \selectlanguage now + checks for the existence of \date<lang> instead of \l@<lang>. The + latter might be defined, without the language definition file + being loaded. + +1996-10-29 Johannes Braams (babel at latex-project.org) + + * babel.dtx (subsection{Multiple languages}): Renamed \init@ldf + and \finish@ldf to \LdfInit, \ldf@finish and introduce + \quit@ldf. The second argument of \ldf@init can now be either a + control sequence or a string to be passed to \csname. + (subsection{Cross referencing macros}): Added (conditional) + redefinition of \@@vpageref (varioref internal macro) to prevent + problems with active characters (PR 2292) + +1996-10-17 Johannes Braams (babel at latex-project.org) + + * babel.dtx (subsection{Multiple languages}): Added the commands + \init@ldf and \finish@ldf to ease the maintenance of the + .ldf-files. + +1996-10-16 Johannes Braams (babel at latex-project.org) + + * babel.dtx (subsection{Multiple languages}): \main@language now + also sets \languagename and \l@<languagename> for use by other + packages in the preamble of a document + (suggested by Jan Vroonhof (vroonhof at math.ethz.ch)) + +1996-10-08 Johannes Braams (babel at latex-project.org) + + * bbplain.dtx : Make this file be processed twice, once during + format generation, but only a small portion of the file is loaded + into the format, the second time the file is processed is when it + is loaded from babel.def. This way some code that is not needed in + the format gets removed and the plain format with babel is no + longer incompatible with german.sty. + +1996-10-04 Johannes Braams (babel at latex-project.org) + + * dutch.dtx: Merged in the definitions for `afrikaans' as supplied + by Stoffel Lombard (lombc at b31pc87.up.ac.za) + + * bbcompat.dtx: Added support for `afrikaans' + + * babel.dtx (section{The Package File}): Added option `afrikaans' + +1996-09-21 Johannes Braams (babel at latex-project.org) + + * slovene.dtx : removed shorthand for \texttt{"L} as it is not + needed for slovenian according to Primoz Peterlin + (peterlin at biofiz.mf.uni-lj.si). + +1996-09-20 Johannes Braams (babel at latex-project.org) + + * catalan.dtx : Added a check for mathmode to the definitino of + \lgem and \Lgem, as the use of these in mathmode makes no sense + according to Goncal Badenes. Not having the check led to an error + message (PR 2261) + +1996-08-18 Johannes Braams (babel at latex-project.org) + + * polish.dtx : The macros \sob, \spb and \skb need to call + \leavevmode; when they are encountered in vertical mode TeX issues + an error about \lower not being allowed in vertical mode. (found + by Wlodzimierz Macewicz (macewicz at ia.pw.edu.pl)) + + * babel.dtx (subsection{Cross referencing macros}): In order to + prevent problems while reading .fd files in the middle of a + document we need to add the " and ' characters to \nfss@catcodes + untill LaTeX does that herself. (found by Tomas Bautista + (bautista at cma.ulpgc.es)) + +1996-08-15 Johannes Braams (babel at latex-project.org) + + * bbplain.dtx : Added default (semi-NFSS2) definition of \ss and + \i because german.sty in combination with a babel format creates + an endless lopp on those glyphs. (Found by Bernd Raichle) + + * danish.dtx : According to Peter Busk Laursen the shorthand "' + needs to typeset the german closing double quote (``). He also + suggested to add the definitions for "~ and "= + +1996-08-13 Johannes Braams (babel at latex-project.org) + + * babel.dtx (subsection{Shorthands}): Top level expansion of + \normal@char<char> where the shorthand character is already active + should be the expansion of the active character, not the active + character itself as this causes an endless loop (found by Tomas + Bautista (bautista at cma.ulpgc.es)) + +1996-08-11 Johannes Braams (babel at latex-project.org) + + * babel.dtx (subsection{Cross referencing macros}): Redefinition + of \ifthenelse added to circumvent problems with \pageref in the + argument of \isodd (PR's 947, 2053, 2150, 2225) + +1996-08-09 Johannes Braams (babel at latex-project.org) + + * bahasa.dtx: Added the setting of the hyphenmin parameters + (PR2232) + +1996-07-13 Johannes Braams (babel at latex-project.org) + + * bbcompat.dtx: Added .sty files and definition of \CurrentOption + for language definition files that are loaded by more than one + option + +1996-07-12 Johannes Braams (babel at latex-project.org) + + * frenchb.dtx: moved support for multiple options using the same + .ldf file out of babel.sty into .ldf file. + Rearranged .dtx file to remove long lines of documentation and + code. + +1996-07-11 Johannes Braams (babel at latex-project.org) + + * babel.dtx (section{The Package File}): Moved all code necessary + to support multiple options to load the same language definition + file into those language definition files. (PR2213) + + * portuges.dtx, norsk.dtx, magyar.dtx: moved support for multiple + options using the same .ldf file out of babel.sty into .ldf + files. + +1996-07-10 Johannes Braams (babel at latex-project.org) + + * bbplain.dtx : Added the definition of \scriptsize, + \textquoteright and \textquotedblright (PR 2216) + + * language definition files : Consistently use \@undefined instead + of \undefined and \@empty instead of \empty (PR 2213) + + * english.dtx, german.dtx : moved support for multiple options + using the same .ldf file out of babel.sty into .ldf files. + +1996-07-09 Johannes Braams (babel at latex-project.org) + + * bbplain.dtx : Consistently use \@undefined instead of \undefined + and remove the use of \patterns@loaded (PR 2213) + Added definition of \@empty; use it instead of \empty + + * babel.dtx (subsection{Multiple languages}): Removed the use of + the control sequence \bbl@eq@ (PR 2213) + (section{Identification}): Save a few csnames by using \bbl@tempa + instead of \@ProvidesFile store the \everyjob message immediately + in \toks8 (PR 2213) + Consistently use \@undefined instead of \undefined (PR 2213) + Use \@empty instead of \empty to be consistent with \LaTeX + (PR 2133) + + * bahasa.dtx : Added translation of `Proof' as suggested by + knappen at vkpmzd.kph.uni-mainz.de (J"org Knappen) (PR 2214) + + ** released Babel 3.6-beta ** + +1996-07-06 Johannes Braams (babel at latex-project.org) + + * babel.dst: Added the generation of the font description files to + the main installation file. (PR 2208) + + * babel.dtx : added greek to the driver files, input russianb.dtx + instead of russian.dtx, define \Babel in driver file (PR 2209) + Removed an extra closing brace in changes entry for \dj (PR 2208) + + * esperant.dtx : Added translation of `Proof' as suggested by + knappen at vkpmzd.kph.uni-mainz.de (J"org Knappen) (PR 2207) + +1996-05-30 Johannes Braams (babel at latex-project.org) + + * germanb.dtx : added \allowhyphens in the definitions of "a, "o, + "u, "A, "O, "U, because the underlying macro \lower@umlaut can not + cntain a \allowhyphens. The reason is that for *dutch* we need to + use discretionaries for these same characters in order to make the + trema disappear at a word break. A \allowhyphens inside one of the + arguments of \discretiionary leads to a TeX error. + +1996-05-29 Johannes Braams (babel at latex-project.org) + + * babel.dtx (subsection{Multiple languages}): Added an environment + otherlanguage* wich does not switch the captions and date strings, + only hyphenation and extras. + +1996-04-18 Johannes Braams (babel at latex-project.org) + + * magyar.dtx : Added translation of `Proof' as suggested by + Alexin Zoltan (alexin at sol.cc.u-szeged.hu) and changed some of the + translations as suggested by Peter Rajczy (rajczy at caesar.elte.hu). + +1996-04-09 Johannes Braams (babel at latex-project.org) + + * babel.dtx (subsection{Cross referencing macros}): + \bbl@redefinerobust made non-robust macros; fixed adding \space in + the final line of code. + +1996-04-02 Johannes Braams (babel at latex-project.org) + + * babel.dtx (subsection{Umlauts and trema's}): Added a + \allowhyphens in the definition of \lower@umlaut + +1996-04-01 Johannes Braams (babel at latex-project.org) + + * norsk.dtx : Added translation of `Proof' as suggested by + Orjan Johansen (oerjan at matstat.unit.no) + +1996-03-28 Johannes Braams (babel at latex-project.org) + + * babel.dtx (subsection{Letters}): Replaced the definitions of + \dj@ and \DJ@ with the ones found in PR 2058 (contributed by + Sime Ungar (ungar at math.hr) and David Carlisle) + +1996-03-06 Johannes Braams (babel at latex-project.org) + + * babel.dtx (subsection{Shorthands}): Added a system level + shorthand for the ` to prevent an endless loop when the user + enters `{}blah in his document. + + * catalan.dtx : Added `` as a shorthand for the double left quote; + getting a single quote and an accented letter from the input ``a + is not quit what would be expected. + +1996-02-12 Johannes Braams (babel at latex-project.org) + + * czech.dtx (section{The Czech language}): Fixed tow errors found + by Petr Sojka (sojka at daeron.fi.muni.cz) (PR #2082) and added + translation for `Proof' + +1996-01-25 Johannes Braams (babel at latex-project.org) + + * babel.dtx (subsection{Shorthands}): Store and restore the lccode + of the ~-character so it remains unchanged by + \initiate@active@char + +1996-01-24 Johannes Braams (babel at latex-project.org) + + * babel.dtx (subsection{Macros common to a number of languages}): + Moved \german@dq@disc, \usorbian@dq@disc and \swedish@dq@disc to + babel.def, changing the name to \bbl@disc + +1996-01-21 Johannes Braams (babel at latex-project.org) + + * babel.dtx (subsection{Cross referencing macros}): Revert the + previous change; \@setref gets expanded too late which results in + TeX errors because the active character isn't redefined when TeX + tries to use it in constructing a csname. + +1996-01-19 Johannes Braams (babel at latex-project.org) + + * babel.dtx (subsection{Cross referencing macros}): Redefine + \@setref instead of \ref and \pageref for LaTeX2e. This (partly) + solves PR0947 which complains about pageref being used in the + argument of \ifthenelse. This now works as long as the label + doesn't contain active characters. + +1996-01-18 Johannes Braams (babel at latex-project.org) + + * croatian.dtx : Added translation of the word `Proof' and changed + the definition of \datecroatian according to the suggestion by + Sime Ungar (ungar at math.hr) in bug report 2060. + +1996-01-16 Johannes Braams (babel at latex-project.org) + + * babel.dtx (subsection{Cross referencing macros}): Use + \strip@prefix only on bbl@tempa (in \@testdef) when \bbl@tempa <> + \relax! + +1996-01-15 Johannes Braams (babel at latex-project.org) + + * bbplain.dtx: Added the code that implements \newcommand (or + enough of it to make \ProvideTextCommandDefault and friends + work). + +1996-01-10 Johannes Braams (babel at latex-project.org) + + * babel.dtx (section{The Package File}): Now use frenchb.dtx from + Daniel Flipo as the source for french support in Babel. + +1996-01-09 Johannes Braams (babel at latex-project.org) + + * babel.dtx (subsection{Shorthands}): Deal with charcters that are + already active: define the top level expansion inside the \if + branch of the category code test; define all lower level expansion + macros needed for the shorthand stuff after of the \else branch + (subsection{Cross referencing macros}): Complete rewrite of + \@testdef using meaning to prevent endless complaints from LaTeX + about possibly changed labels. + +1995-12-01 Johannes Braams (babel at latex-project.org) + + * babel.dtx (subsection{Shorthands}): Reset the category code of a + shorthand char at the end of the package and re-activate it at + begin document. + +1995-11-25 Johannes Braams (babel at latex-project.org) + + * tb1202.tex, tb1401.tex: Made it possible to run it through LaTeX + without having ltugboat.cls available; also updated address + information. + + * portuges.dtx : Added translation of the word `Proof' for both + Portuguese and Brazilian + +1995-11-19 Johannes Braams (babel at latex-project.org) + + * bbplain.dtx: Add execution of the begin document hook to + \@preamblecmds for LaTeX2.09 + +1995-11-17 Johannes Braams (babel at latex-project.org) + + * bbplain.dtx: Added \@onlypreamble and handling of this + +1995-11-16 Johannes Braams (babel at latex-project.org) + + * babel.dtx (subsection{Multiple languages}): Changed the + definition of \selectlanguage and \selectlanguage_; the former no + longer processes its argument, that task is now performed by + \selectlanguage_ + +1995-11-15 Johannes Braams (babel at latex-project.org) + + * babel.dtx (subsection{Cross referencing macros}): Added the + commands \bbl@redefine and \bbl@redefinerobust and used them to + redefine \newlabel, \@testdef, \ref, \pageref, \label, \@citex, + \nocite, \bibcite, \@bibitem, \@lbibitem + +1995-11-11 Johannes Braams (babel at latex-project.org) + + * francais.dtx : Added setting of the lowercase code of the ' to + improve hyphenation + +1995-11-11 Johannes Braams (babel at latex-project.org) + + * galician.dtx : Added '' as shorthand to produce the expected + effect. + +1995-11-10 Johannes Braams (babel at latex-project.org) + + * catalan.dtx : Added setting of the lowercase code of the ' to + improve hyphenation + (As suggested by Claudio Beccari (BECCARI at polito.it)) + + * italian.dtx : Added setting of the lowercase code of the ' to + improve hyphenation + (As suggested by Claudio Beccari (BECCARI at polito.it)) + + * romanian.dtx : Added translation of the word `Proof' + +1995-11-08 Johannes Braams (babel at latex-project.org) + + * bbplain.dtx: Added the code that `snatched' \dump as it is still + needed for LaTeX 2.09 + + * babel.dtx (subsection{Multiple languages}): Removed the code + that `snatched' \dump as it is no longer needed for LaTeX. + +1995-11-06 Johannes Braams (babel at latex-project.org) + + * babel.dtx (subsection{Cross referencing macros}): No longer use + \bblref_ as a cs; instead use \ref_ and check if it isn't defined + already. (PR 1851) + +1995-11-03 Johannes Braams (babel at latex-project.org) + + * slovene.dtx : New translation of Index; replaced slovanian with + slovenian. + + * swedish.dtx : Added translation of Proof (PR 1904) + +1995-09-05 Johannes Braams (babel at latex-project.org) + + * germanb.dtx : Use \glqq, \grqq, \flqq and \frqq in the + definitions of "` "' "< and "> + + * babel.dtx (subsection{Shorthands for quotation marks}): Use + \textormath in the definitions; added some kerning for german + right quotation marks. + + * catalan.dtx: Added '| to disable the accent when an apostrophe + is wanted. + +1995-08-31 Johannes Braams (babel at latex-project.org) + + * germanb.dtx : Added \allowhyphens to the accent producing + shorthands. Not having it prevented hyphenation for accented words + in OT1 encoding. Having it means that TeX possibly misses a + possible breakpoint. Putting \allowhyphens into the definition of + \lower@umlaut (which would make it not appear at all in T1 + encoding) is a no-no because it leads to improper discretionary + errors for dutch (were trema's have to disappear when the word is + hyphenated next to the trema). (PRs 1118, 1147, 1714, 1846) + +1995-08-30 Johannes Braams (babel at latex-project.org) + + * babel.dtx (subsection{Multiple languages}): Added a missing + %-character in the definition of \selectlanguage (PR1841) + + * francais.dtx : Added a missing %-character in the definition of + \captionsfrancais (PR1841) + +1995-08-17 Johannes Braams (babel at latex-project.org) + + * spanish.dtx, catalan.dtx, galician.dtx: Combining + \initiate@active@char and \bbl@activate in one \@ifpackagewith + statement leads to an error message about an \inaccessible control + sequence from \select@language. For now split these statements. + +1995-08-07 Johannes Braams (babel at latex-project.org) + + * babel.dtx (subsection{Shorthands for quotation marks}): + Corrected the spelling of \quil... to \guil... + +1995-07-29 Johannes Braams (babel at latex-project.org) + + * francais.dtx : Removed the \space from the definition of the + shorthands. It is not necessary. + +1995-07-27 Johannes Braams (babel at latex-project.org) + + * esperant.dtx: Added a few ^-shorthands + + * estonian.dtx : Removed the code to change category and oher + codes. + + * italian.dtx : Added translation of the word `Proof' + + * estonian.dtx : Added translation of the word `Proof'; fixed bug + where the second argument of \DeclareShorthand was missing. + +1995-07-25 Johannes Braams (babel at latex-project.org) + + * slovene.dtx,finnish.dtx : Added translation of the word `Proof' + + * irish.dtx : load irish.cfg instead of danish.cfg + + * babel.dtx (subsection{Multiple languages}): Use \empty instead + of \@empty in the test for the hyphenation exception file; \@empty + is undefined in plain. + + * bbplain.dtx: Added definition of \loadlocalcfg for plain (found + by Enn Saar) + +1995-07-10 Johannes Braams (babel at latex-project.org) + + * catalan.dtx : Added translation of the word `Proof' + +1995-07-09 Johannes Braams (babel at latex-project.org) + + * spanish.dtx, galician.dtx: made the use of the active acute + accent optional. + +1995-07-08 Johannes Braams (babel at latex-project.org) + + * catalan.dtx: Removed support for ~n; add `` and '' as + shorthands. + +1995-07-07 Johannes Braams (babel at latex-project.org) + + * francais.dtx, breton.dtx: Postpone the declaration of the + TextCompositeCommands untill \AtBeginDocument + +1995-07-04 Johannes Braams (babel at latex-project.org) + + * babel.dtx (section{The Package File}): Added the options + activegrave and activeacute. + + * catalan.dtx: Made the activation of the grave and acute accents + optional + + * esperant.dtx, dutch.dtx, english.dtx, germanb.dtx, breton.dtx, + irish.dtx, scottish.dtx, italian.dtx, portuges.dtx, swedish.dtx, + magyar.dtx, croatian.dtx, czech.dtx, estonian.dtx, polish.dtx, + romanian.dtx, slovak.dtx, slovene.dtx, turkish.dtx, lsorbian.dtx, + usorbian.dtx, bahas.dtx: Added \proofname to captions and added + loading local configuration file. + + * babel.dtx (subsection{Cross referencing macros}): Use a + different control sequence for making \ref and \pageref robust to + prevent a clash with the showkeys package. + +1995-07-03 Johannes Braams (babel at latex-project.org) + + * galician.dtx: Changed behaviour of 'a etc. to expand to + "^{\prime} a" in mathmode. + + * spanish.dtx: Changed behaviour of 'a etc. to expand to + "^{\prime} a" in mathmode; added \proofname to captions; added + loading local configuration file. + + * catalan.dtx: Added Goncal's changes; changed behaviour of 'a + etc. to expand to "^{\prime} a" in mathmode; added \proofname to + captions; added \llgem and \Lgem; added loading local + configuration file. + +1995-07-02 Johannes Braams (babel at latex-project.org) + + * galician.dtx: Added comments from Manual Carriba, added + \proofname to captions; added seting of \frenchspacing and added + loading local configuration file. + + * francais.dtx: Also allow the hyphenation patterns to be loaded + for `french', added \proofname to captions; and added loading + local configuration file. + + * finnish.dtx: Now also has active double quote; added by Niilo + Siljamo (siljamo at cc.helsinki.fi), added \proofname to captions; + and added loading local configuration file. + + * danish.dtx : Added \proofname to captions; added seting of + \frenchspacing and added loading local configuration file. + + * babel.dtx (section{The Package File}): Load language definition + files *after* manipulating with the identifaction of the + hyphenation patterns; load french.ldf (from Bernard Gaulle's + french package) if it exists. + +1995-06-19 Johannes Braams (babel at latex-project.org) + + * babel.dtx (subsection{Multiple languages}): Added missing brace + in definition of \@activated for plain TeX, found by + te at informatik.uni-hannover.de + +1995-06-16 Johannes Braams (babel at latex-project.org) + + * estonian.dtx: corrected typos + +1995-06-14 Johannes Braams (babel at latex-project.org) + + * babel.dtx : Changed the order of typesetting the documentation + for the various languages (PR1652) + + * scottish, irish.dtx, esperant.dtx, spanish.dtx, babel.dtx, + glyphs.dtx: corrected typos (PR1652) + + * language.dat: finally corrected typo langauge (PR1656) + + * babel.dst: corrected typos (ldfle -> style, PR1654) + + * install.txt: corrected typo (PR1653) + +1995-06-08 Johannes Braams (babel at latex-project.org) + + * danish.dtx: Added active double quote character as suggested by + Peter Busk Laursen. + +1995-06-06 Johannes Braams (babel at latex-project.org) + + * estonian.dtx: New language definition file, provided by Enn + Saar, updated for Babel release 3.5 + + * scottish.dtx: New language definition file + +1995-06-04 Johannes Braams (babel at latex-project.org) + + * polish.dtx: Update for babel release 3.5 + + * slovene.dtx : Introduced the active " for this language; used + for accessing hacek characters and other common usage. + + * portuges.dtx: Added brasilian captions, the usage of + "-shorthands and macros for ordinals. + + * dutch.dtx : added "" shorthand + +1995-06-03 Johannes Braams (babel at latex-project.org) + + * francais.dtx : Added system level shorthands for the active + characters to prevent them from gobbling up a following space + +1995-06-02 Johannes Braams (babel at latex-project.org) + + * swedish.dtx: Use \finnishhyphenmins to store the correct values + of \lefthyphenmin and \righthyphenmin as suggested in PR1606. + +1995-05-29 Johannes Braams (babel at latex-project.org) + + * swedish.dtx: Updated for release 3.5 + +1995-05-28 Johannes Braams (babel at latex-project.org) + + * swedish.dtx: Updated for release 3.5 + + * usorbian.dtx: Updated for release 3.5 + + * italian.dtx: Updated for release 3.5 + +1995-05-25 Johannes Braams (babel at latex-project.org) + + * babel.dtx (section{The Package File}): Added the option + brazilian as an alternative for brazil; added the copying of + \<lang>hyphenmins when alternatives are provided. + + * romanian.dtx: Updated for release 3.5 + +1995-05-15 Johannes Braams (babel at latex-project.org) + + * turkish.dtx: Updated for release 3.5 + + * finnish.dtx: Added setting of \frenchspacing for finnish text + +1995-05-13 Johannes Braams (babel at latex-project.org) + + * finnish.dtx: Use \finnishhyphenmins to store the correct values + of \lefthyphenmin and \righthyphenmin as suggested in PR1606; + also set a number of hyphenation parameters, as suggested in + PR1027. + + * germanb.dtx: Use \germanhyphenmins to store the correct values + of \lefthyphenmin and \righthyphenmin. + + * dutch.dtx: Use \dutchhyphenmins to store the correct values of + \lefthyphenmin and \righthyphenmin. + + * babel.dtx (subsection{Multiple languages}): Changed + \selectlanguage to first store the name of the current language in + a control sequence and then passing the contents of the control + sequence to \selectlanguage_ instead of passing the entire + construct which strips the optional escape character. + Seperated the setting of \lefthyphenmin and \righthyphenmin, using + the new macro \set@hyphenmins. The values shoud be stored in + \<language>hyphenmins. + No longer store the values of \lefthyphenmin and \righthyphenmin + which were set in the pattern file through code in + \extras<language>, but store them in \<language>hyphenmins. + +1995-05-05 Johannes Braams (babel at latex-project.org) + + * finnish.dtx: Updated for release 3.5 + * bahasa.dtx: Updated for release 3.5 + +1995-05-03 Johannes Braams (babel at latex-project.org) + + * tb1401.tex: Changed name from babel-new.tex and updated the + coding to make it processable with LaTeX2e + + * tb1202.tex: Changed name from tb-article.tex and updated the + coding to make it processable with LaTeX2e + +1995-04-28 Johannes Braams (babel at latex-project.org) + + * babel.dtx (subsection{Multiple languages}): Added the + possibility to add a the name of a file with hyphenation + exceptions to the configuration file language.dat. Now also + support `synonyms' for languages. Both on request from Bernard + Gaulle. + +1995-03-14 Johannes Braams (babel at latex-project.org) + + * babel.dtx (section{The Package File}): Changed the extension of + the languages definition files to .ldf to clearly distinguish them + for the files in the previous release. + + * magyar.dtx: Updated for release 3.5 + * galician.dtx: Updated for release 3.5, using the new active + character handling mechanism. + * catalan.dtx: Updated for release 3.5, using the new active + character handling mechanism. + * spanish.dtx: Updated for release 3.5, using the new active + character handling mechanism. + * portuges.dtx: Updated for release 3.5 + * lsorbian.dtx: new file in release 3.5 + * languages.skeleton: Updated for release 3.5 + +1995-03-10 Johannes Braams (babel at latex-project.org) + + * babel.dtx (subsection{Support for active characters}): Added a + check for the ' in \initiate@active@char + Replaced 16 system level shorthands to deal with hexadecimal + numbers by one. + Added a system shorthand for the '; when it is active its usage in + mathmode needs special care. + +1995-03-07 Johannes Braams (babel at latex-project.org) + + * babel.dtx (subsection{Cross referencing macros}): Made \ref and + \pageref robust to prevent the problem reported in PR 1353. + +1995-03-04 Johannes Braams (babel at latex-project.org) + + * babel.dtx (subsection{Multiple languages}): Changed the name of + \p@selectlanguage to \csname selectlanguage \endcsname; + Rewrote the entire handling of active chars. + +1995-02-17 Johannes Braams (babel at latex-project.org) + + * babel.dtx (subsection{Multiple languages}): Added \main@language + to be able to postpone the execution of \selectlanguage. It now + also happens only once, not for every language loaded. + +1995-02-16 Johannes Braams (babel at latex-project.org) + + * babel.dtx (subsubsection{Support for active `hat'}): this + section added. + +1995-02-15 Johannes Braams (babel at latex-project.org) + + * germanb.dtx: Removed a lot of code that is now present in + babel.def (things like \flqq, the double quote mechanism, etc.); + Use \Declaredq now. + Brought up to date with german.sty version 2.5b + + * babel.dtx (subsection{Multiple languages}): Added the command + \@activated to be used for logging when characters are made + active. Introduced the \if@safe@actives switch which should be + checked on the highest level expansion of an active + character. This first expansion is defined by \UseActive. + (subsection{Cross referencing macros}): Removed the meaning trick + and introduced the use of the \if@safe@actives switch. Not all + cross referencing macros need to be aware of this switch. + + * dutch.dtx: Moved the definition of the opening quote character + and \ij and \IJ to glyphs.dtx + + * glyphs.dtx (section{Making glyphs available}): New file to + collect all definitions of missing glyphs for all languages. The + code will be part of babel.def + +1995-02-12 Johannes Braams (babel at latex-project.org) + + * babel.dtx (subsection{Support for active characters}): Added + \Activate and \Deactivate instead of \Activatedq and \Deactivatedq + as this form is more generic. + +1995-02-11 Johannes Braams (babel at latex-project.org) + + * english.dtx: Moved identification code to the top. + +1995-02-09 Johannes Braams (babel at latex-project.org) + + * esperant.dtx: Moved identification code to the top. + +1995-02-04 Johannes Braams (babel at latex-project.org) + + * dutch.dtx: Updated this language definition file to make use of + the new support macros. Also implemented support for both OT1 and + T1 encoding. Changed the kerning in the faked ij-characters to + match the dc-versions more closely. + + * babel.dtx (subsection{Support for active double quote}): Added + this section with generic macros to support making the double + quote character active. A language definition file now only needs + call \Activatedq and use \Declaredq{}{}{} to define its actions. + +1995-02-01 Johannes Braams (babel at latex-project.org) + + * english.dtx (section{The English language}): Only define + american as a dialect when no patterns have been loaded for it. + (PR #735) + +1995-01-31 Johannes Braams (babel at latex-project.org) + + * polish.dtx (section{The Polish language}): The definition of "C + incorrectly used \'c instead of \'C. (PR #1401) + + * turkish.dtx (section{The Turkish language}): removed an extra + closing brace and added a missing \def (PR #1397) + \mont should be \month (PR #1398) + +1995-01-25 Johannes Braams (babel at latex-project.org) + + * babel.dtx (section{Identification}): lthyphen.cfg has changed + its name; now called hyphen.cfg. + (section{The Package File}): Added a warning about using T1 + fontencoding giving unexpected results. + +1994-11-09 Johannes Braams (babel at latex-project.org) + + * galician.dtx (section{The Catalan language}): Added a few + missing translations and corrected marzal to marzo in the date. + + * catalan.dtx (section{The Catalan language}): Added a few + missing translations. + + * portuges.dtx (section{The Portuguese language}): Added a few + missing translations. + +1994-08-30 Johannes Braams (babel at latex-project.org) + + * babel.dtx (subsection{Cross referencing macros}): Moved the last + %</def> inside the macrocode environment. Noted by Frank Poppe + (poppe at swov.nl) + +1994-08-26 Johannes Braams (babel at latex-project.org) + + * babel.dst: fixed typo (lhyphen -> lthyphen) + +1994-07-12 Johannes Braams (babel at latex-project.org) + + * finnish.dtx: Added a `.' after the day in the output of \today + for finnish + +1994-07-03 Johannes Braams (babel at latex-project.org) + + * babel.dtx (section{Identification}): The line with \ProvidesFile + was missing from both babel.drv and user.drv. + Added code to \process@language to detect whether the patterns + file also contains assignments to \left- and \righthyphenmin. When + it doesn't supply a default setting of 2 and 3; store the setting + in \extras<language>. Added \@nopatterns, to be used in the + language specific files. + Also use \PackageError and \PackageWarning when they are + available. + + * language.dat : Commented out dutch, used the default name for + the american english hyphenation patterns, hyphen.tex. Added a + (commented out) line showing ukhyphen.tex. + +1994-06-30 Johannes Braams (babel at latex-project.org) + + * language.skeleton: Removed the use of \filedate, moved the + identification after the loading of babel.def and use \@nopatterns + to produce the warning + + * slovak.dtx: Removed the references to babel.com + + * finnish.dtx: Removed the references to babel.com + +1994-06-26 Johannes Braams (babel at latex-project.org) + + * bahasa.dtx: Removed the use of \filedate, moved the + identification after the loading of babel.def and use \@nopatterns + to produce the warning + + * turkish.dtx: Removed the use of \filedate, moved the + identification after the loading of babel.def and use \@nopatterns + to produce the warning + + * slovene.dtx: Removed the use of \filedate, moved the + identification after the loading of babel.def and use \@nopatterns + to produce the warning + + * romanian.dtx: Removed the use of \filedate, moved the + identification after the loading of babel.def and use \@nopatterns + to produce the warning + + * polish.dtx: Removed the use of \filedate, moved the + identification after the loading of babel.def and use \@nopatterns + to produce the warning + + * czech.dtx: Removed the use of \filedate, moved the + identification after the loading of babel.def and use \@nopatterns + to produce the warning + + * magyar.dtx: Removed the use of \filedate, moved the + identification after the loading of babel.def and use \@nopatterns + to produce the warning + + * finnish.dtx: Removed the use of \filedate, moved the + identification after the loading of babel.def and use \@nopatterns + to produce the warning + + * swedish.dtx: Removed the use of \filedate, moved the + identification after the loading of babel.def and use \@nopatterns + to produce the warning + + * norsk.dtx: Removed the use of \filedate, moved the + identification after the loading of babel.def and use \@nopatterns + to produce the warning + + * danish.dtx: Removed the use of \filedate, moved the + identification after the loading of babel.def and use \@nopatterns + to produce the warning + + * galician.dtx: Removed the use of \filedate, moved the + identification after the loading of babel.def and use \@nopatterns + to produce the warning + Renamed \acute and \tilde to \texacute and \texttilde because of a + clash with \mathaccent's + + * catalan.dtx: Removed the use of \filedate, moved the + identification after the loading of babel.def and use \@nopatterns + to produce the warning + Renamed \acute and \tilde to \texacute and \texttilde because of a + clash with \mathaccent's + + * spanish.dtx: Removed the use of \filedate, moved the + identification after the loading of babel.def and use \@nopatterns + to produce the warning + + * portuges.dtx: Removed the use of \filedate, moved the + identification after the loading of babel.def and use \@nopatterns + to produce the warning + + * italian.dtx: Removed the use of \filedate, moved the + identification after the loading of babel.def and use \@nopatterns + to produce the warning + + * francais.dtx: Removed the use of \filedate, moved the + identification after the loading of babel.def and use \@nopatterns + to produce the warning + + * germanb.dtx: Removed the use of \filedate, moved the + identification after the loading of babel.def and use \@nopatterns + to produce the warning + + * english.dtx: Removed the use of \filedate, moved the + identification after the loading of babel.def and use \@nopatterns + to produce the warning + + * dutch.dtx: Removed the use of \filedate, moved the + identification after the loading of babel.def and use \@nopatterns + to produce the warning + +1994-06-25 Johannes Braams (babel at latex-project.org) + + * esperant.dtx: Removed the use of \filedate, moved the + identification after the loading of babel.def and use \@nopatterns + to produce the warning + + * babel.dtx (subsection{Multiple languages}): Added \@nopatterns, + to be used in the language specific files. Also use \PackageError + and \PackageWarning when they are available. + +1994-06-24 Johannes Braams (babel at latex-project.org) + + * babel.dtx (section{Identification}): redid this bit and made + sure the files are processable with plain TeX. Supply a dummy + definition of \ProvidesFile. + (subsection{Multiple languages}): Added code to + \process@language to detect whether the patterns file also + contains assignments to left- and righthyphenmin. When it doesn't + supply a default setting of 2 and 3; store the setting in + \extras<language>. + + +1994-06-09 Johannes Braams (babel at latex-project.org) + + * esperant.dtx: Removed a superfluous | from the code that + activates the ^ + +1994-06-08 Johannes Braams (babel at latex-project.org) + + * Makefile: added install.txt + +1994-06-05 Johannes Braams (babel at latex-project.org) + + * babel.dtx: Repaired mal-formed changes entries (`babel~' was + missing. + + * italian.dtx: Repaired mal-formed changes entry (`italian-' was + missing. + + * danish.dtx: Repaired mal-formed changes entry (`danish-' was + missing. + + * swedish.dtx: Repaired mal-formed changes entry (`swedish-' was + missing). + + * babel.dst: Added a few missing } + + * install.txt: Added a remark about producing the full source + listing. + + * babel.dst: Added the production if bbidx.ist and bbglo.ist + + * Makefile: Added bbidxglo + + * slovene.dtx (section{The Slovanian language}): Removed < and > + from a \changes entry to prevent a problem when generating the + glossary file. + + * babel.dtx (subsection{Identification}): Wrong docstrip guard + nesting resulted in a superfluous line in lthyphen.cfg + Updated Checksum + +1994-06-04 Johannes Braams (babel at latex-project.org) + + * language.skeleton: Updated for LaTeX2e; included the small + driver. + + * czech.dtx: Added a small driver to the top of the file. + Removed the use of \wlog from native mode. + + * croatian.dtx: Added a small driver to the top of the file. + Removed the use of \wlog from native mode. + + * slovene.dtx: Added a small driver to the top of the file. + Removed the use of \wlog from native mode. + (section{The Slovanian language}): Added extra tranlations from + Josef Leydold, (leydold at statrix2.wu-wien.ac.at + + * romanian.dtx: Added a small driver to the top of the file. + Removed the use of \wlog from native mode. + + * turkish.dtx: Added a small driver to the top of the file. + Removed the use of \wlog from native mode. + (section{The Turkish language}): Added braces behind the use of \i + to prevent a lot of undefined macros. + + * norsk.dtx: Added a small driver to the top of the file. + Removed the use of \wlog from native mode. + + * swedish.dtx: Added a small driver to the top of the file. + Removed the use of \wlog from native mode. + + * babel.ins: lhyphen.cfg has now to be called lthyphen.cfg. + + * babel.dtx (subsection{Macros common to a number of languages}): + An end of line ended up in the middle of a || expression. + + * slovak.dtx: Added a small driver to the top of the file. + Removed the use of \wlog from native mode. + Added setting of \lefthyphenmin and \righthyphenmin. + + * finnish.dtx: Added a small driver to the top of the file. + Removed the use of \wlog from native mode. + + * magyar.dtx: Added a small driver to the top of the file. + Removed the use of \wlog from native mode. + + * polish.dtx: Added a small driver to the top of the file. + Removed the use of \wlog from native mode. + Changed the table describing the conventions to really describe + what is iomplemented. + Tried to initialize polish letters by calling \texptl; this should + have been \textpl. + + * danish.dtx: Added a small driver to the top of the file. + Removed the use of \wlog from native mode. + (section{The Danish language}): Peter Busk Larsen proposed a few + changes to the translations. + +1994-05-19 Johannes Braams (babel at latex-project.org) + + * galician.dtx: Added a small driver to the top of the file. + Removed the use of \wlog from native mode. + + * catalan.dtx: Added a small driver to the top of the file. + Removed the use of \wlog from native mode. + + * spanish.dtx: Added a small driver to the top of the file. + Removed the use of \wlog from native mode. + + * portuges.dtx: Added a small driver to the top of the file. + Removed the use of \wlog from native mode. + + * italian.dtx: Added a small driver to the top of the file. + Removed the use of \wlog from native mode. Added some of the + suggestions from Claudio Beccari. The others wil have to wait. + + * francais.dtx: Added a small driver to the top of the file. + Removed the use of \wlog from native mode. + + * germanb.dtx: Added a small driver to the top of the file. + Removed the use of \wlog from native mode. + +1994-05-18 Johannes Braams (babel at latex-project.org) + + * dutch.dtx: Added a small driver to the top of the file. + Removed the use of \wlog from native mode. + + * esperant.dtx: Added a small driver to the top of the file. + Removed the use of \wlog from native mode. + + * bahasa.dtx: Added a small driver to the top of the file. + Added missing \begin{macrocode}. + Removed the use of \wlog from native mode. + + * babel.dtx (driver): use the ltxdoc class + Added a small driver to the top of the file as an addition to the + large drivers. + Removed the use of \wlog from native mode. + diff --git a/Master/texmf-dist/doc/generic/babel/esbst.tex b/Master/texmf-dist/doc/generic/babel/esbst.tex new file mode 100644 index 00000000000..7be9dbc31d4 --- /dev/null +++ b/Master/texmf-dist/doc/generic/babel/esbst.tex @@ -0,0 +1,103 @@ +%% +%% This is file `esbst.tex', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% spanish.dtx (with options: `bblbst') +%% This is a generated file. +%% +%% Copyright 1989-2005 Johannes L. Braams and any individual authors +%% listed elsewhere in this file. All rights reserved. +%% +%% This file was generated from file(s) of the Babel system. +%% --------------------------------------------------------- +%% +%% It may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3 +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of LaTeX +%% version 2003/12/01 or later. +%% +%% This work has the LPPL maintenance status "maintained". +%% +%% The Current Maintainer of this work is Johannes Braams. +%% +%% This file may only be distributed together with a copy of the Babel +%% system. You may however distribute the Babel system without +%% such generated files. +%% +%% The list of all files belonging to the Babel distribution is +%% given in the file `manifest.bbl'. See also `legal.bbl for additional +%% information. +%% +%% The list of derived (unpacked) files belonging to the distribution +%% and covered by LPPL is defined by the unpacking scripts (with +%% extension .ins) which are part of the distribution. +%% File `spanish.dtx' +%% Babel package for LaTeX version 2e +%% Copyright (C) 1989 - 2004 +%% by Johannes Braams, TeXniek +%% Spanish Language Definition File +%% Copyright (C) 1997 - 2005 +%% by Javier Bezos (jbezos at wanadoo.es) +%% Apartado 116.035 +%% E-28080 Madrid +%% Espa\~na / Espagne +%% and +%% by CervanTeX (www.cervantex.org) +%% Please report errors to: Javier Bezos (preferably) +%% jbezos at wanadoo.es +%% J.L. Braams +%% babel at braams.cistron.nl +%% \section{\textsf{spanish} como lengua principal} +\def\bbland{y} +\def\bbleditors{directores} \def\bbleds{dirs.\@} +\def\bbleditor{director} \def\bbled{dir.\@} +\def\bbledby{dirigido por} +\def\bbledition{edici\'on} \def\bbledn{ed.\@} +\def\bbletal{y otros} +\def\bblvolume{vol\'umen} \def\bblvol{vol.\@} +\def\bblof{de} +\def\bblnumber{n\'umero} \def\bblno{n\sptext{o}} +\def\bblin{en} +\def\bblpages{p\'aginas} \def\bblpp{p\'ags.\@} +\def\bblpage{p\'gina} \def\bblp{p\'ag.\@} +\def\bblchapter{cap\'itulo} \def\bblchap{cap.\@} +\def\bbltechreport{informe t\'ecnico} +\def\bbltechrep{inf.\@ t\'ec.\@} +\def\bblmthesis{proyecto de fin de carrera} +\def\bblphdthesis{tesis doctoral} +\def\bblfirst {primera} \def\bblfirsto {1\sptext{a}} +\def\bblsecond{segunda} \def\bblsecondo{2\sptext{a}} +\def\bblthird {tercera} \def\bblthirdo {3\sptext{a}} +\def\bblfourth{cuarta} \def\bblfourtho{4\sptext{a}} +\def\bblfifth {quinta} \def\bblfiftho {5\sptext{a}} +\def\bblth{\sptext{a}} +\let\bblst\bblth \let\bblnd\bblth \let\bblrd\bblth +\def\bbljan{enero} \def\bblfeb{febrero} \def\bblmar{marzo} +\def\bblapr{abril} \def\bblmay{mayo} \def\bbljun{junio} +\def\bbljul{julio} \def\bblaug{agosto} \def\bblsep{septiembre} +\def\bbloct{octubre}\def\bblnov{noviembre}\def\bbldec{diciembre} +%% +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} +%% +\endinput +%% +%% End of file `esbst.tex'. diff --git a/Master/texmf-dist/doc/generic/babel/fixes.txt b/Master/texmf-dist/doc/generic/babel/fixes.txt new file mode 100644 index 00000000000..520a52ff113 --- /dev/null +++ b/Master/texmf-dist/doc/generic/babel/fixes.txt @@ -0,0 +1,4 @@ + Fixes since last major release (3.8a) + + 20 February 2004 + diff --git a/Master/texmf-dist/doc/generic/babel/howtoget.txt b/Master/texmf-dist/doc/generic/babel/howtoget.txt new file mode 100644 index 00000000000..3673c3ed454 --- /dev/null +++ b/Master/texmf-dist/doc/generic/babel/howtoget.txt @@ -0,0 +1,33 @@ + Babel Distribution Guide + + 29 March 2005 + + +This file gives you some information as to where to get the latest +version of Babel and other related software. + +The main distribution of Babel is done through the Comprehensive TeX +Archive Network (CTAN). The main CTAN hosts are: + ftp://ftp.dante.de/ + ftp://ftp.tex.ac.uk/ +In order to reduce network load, it is recommended that you use the +CTAN host or mirror which is located in the closest proximity to your +site. See /tex-archive/CTAN.sites for a list of CTAN mirrors. + +You can find the latest version of Babel in: + /tex-archive/macros/latex/required/babel/ + +Hyphenation pattern files are not normally part of the Babel distribution. +You can find hyphenation pattern files on CTAN, in the directory: + /tex-archive/language/hyphenation/ + +OTHER RELATED PACKAGES +For the french language Benard Gaulle distributes his french package. +It provides extensive support for typesetting french documents. + +For the german language Bernd Raichle maintains `German-Style'. It is +located in: + /tex-archive/language/german/ + +In one of the directories below /tex-archive/language you can +sometimes find support for languages not (yet) supported by Babel. diff --git a/Master/texmf-dist/doc/generic/babel/install.OzTeX-4 b/Master/texmf-dist/doc/generic/babel/install.OzTeX-4 new file mode 100644 index 00000000000..615c989009a --- /dev/null +++ b/Master/texmf-dist/doc/generic/babel/install.OzTeX-4 @@ -0,0 +1,85 @@ +Babel installation guide for the Mac with OzTeX. +These instructions apply for OzTeX versions 4.0+ +Filedate: september 26, 2000 + +(Originally provided by Andrew Trevorrow <akt@netspace.net.au>) + + +This document explains how to install Babel from the files provided in +the OzTeX distribution. See install.txt if you need more information. +(Ignore the old install.OzTeX-pre4 file!) + +Copy the following folders from the OzTeX Distribution to corresponding +locations in your local texmf folder: + + :texmf:source:generic:babel: (*.ins, *.dtx, etc) + :texmf:tex:generic:hyphen: (hyphenation files) + +If you prefer to use a different folder structure then you'll need to +make suitable changes to the search paths in "Add Babel" (included below). + +Copy the "Add Babel" config file to your config folder (eg. myconfigs), +make any necessary changes, then add this line at the start of your +Local config file: + + load_config = ":myconfigs:Add Babel" + +"Add Babel" increases some TeX parameters, so you'll also need to +increase OzTeX's preferred memory size to at least 4500K. + +Start up OzTeX, tick the LaTeX format in the TeX menu, then TeX the +babel.ins file in the :texmf:source:generic:babel: folder. +Answer "y" to any request to overwrite an existing file. +Lots of files will be generated (*.ldf, *.sty, *.def, *.cfg, *.fd). +There is no need to move these files into another folder; it makes +life simpler if the files are kept in :texmf:source:generic:babel: +(that's where "Add Babel" assumes they'll be kept). + +Edit the language.dat file in :texmf:source:generic:babel: and +create an entry for each language that you want to hyphenate. +See the example entries and use the names of hyphenation files +provided in the :texmf:tex:generic:hyphen: folder. + +Now you need to generate a new LaTeX format file. This needs to +be done in the :texmf:source:generic:babel: folder so that INITEX +will use the hyphen.cfg file created in the above step. +Select "TeX..." and make sure the open dialog shows files in +the :texmf:source:generic:babel: folder, then hit Cancel. +Select INITEX and type "LaTeX.ltx" in response to the ** prompt. + +You can save LaTeX.fmt in the default location for format files +(:TeX:Formats:) but it is better if you put it in a new folder +called something like :texmf:formats: and then set + + format_folder = :texmf:formats: + +in the OzTeX-only section of your Local config file. (You'll +also need to move the other format files into this folder.) +That way you will avoid clobbering your own formats when you +install a new version OzTeX. + +You are now ready to use Babel (see user.dvi). + +------------------------------------------- +Save the text below as the file 'Add Babel +------------------------------------------- +% This config file installs the Babel macros for use with OzTeX 4.0 and later. +% Copy this file to your own config folder (eg. myconfigs), make any necessary +% changes, then add this line at the start of your Local file: +% +% load_config = ":myconfigs:Add Babel" + +current_app = OzTeX OzTtH +input_folders = $c :texmf:source:generic:babel: | + :texmf:tex:generic:hyphen: + +current_app = OzTeX +% Babel needs some larger TeX parameters. You'll also need to increase +% OzTeX's preferred memory size to at least 4500K. +trie_size = 65000 +trie_op_size = 5000 +% If you need to increase other TeX parameters then do it here. + +% Best to restore all apps when finished. +current_app = OzTeX OzMF OzMP OzTtH + diff --git a/Master/texmf-dist/doc/generic/babel/install.OzTeX-pre4 b/Master/texmf-dist/doc/generic/babel/install.OzTeX-pre4 new file mode 100644 index 00000000000..f0d7e4de8cf --- /dev/null +++ b/Master/texmf-dist/doc/generic/babel/install.OzTeX-pre4 @@ -0,0 +1,123 @@ + +Babel installation guide for the Mac with OzTeX. +These instructions apply for OzTeX versions 2.1 as well as 3.0. +Filedate: April 30, 1999 + +(Originally provided by Jan Geenen, <geenenjw@cobweb.nl> for OzTeX 1.9; + updated for 2.1 by Giuseppe P. Cavarretta, <gc@gea.geo.uniroma1.it>) + + 1. To create a workable babel package, first create a folder named Babel + and put it in the TeX-inputs folder; in this new folder you must + download from a CTAN site the following files: + a. babel.dtx + b. babel.ins + c. language.dat + d. <language>.dtx; For every <language> you want to use in your + documents, ie. dutch.dtx, english.dtx, etc. + e. hyphenation files; You need these for every language for which + you want to produce the right hyphenation. + ie. nehyph2.tex. + f. bbidxglo.dtx + g. documentation files. 00readme, install.txt, tb-article.tex, etc, + see manifest.txt + + If you are in doubt, you have much hard-disk space and low-cost + connection to the internet, get the entire babel directory (a good + practice anyway). Remember that the hyphenation files, i.e. ithyph.tex + or nehyph.tex, are not included in the babel package; you have to + get them from ctan/tex-archive/language/<your_language>. + + 2. Read the documentation: + a. install.txt + b. 00readme + c. OzTeX User Guide version 2.1 + + 3. Check your files if they obey the Mac-conventions for end of line. + If not, then edit them and save as same with the option LF Macintosh. + If you got them by dowloading directly from CTAN into the Mac they + should be OK. + + 4. Open the file language.dat and for every language that you will + hyphenate make an entrance, for example: + + % Any comment you like + dutch nehyph2.tex %nederlands + latin lahyph.tex %latin + english hyphen.tex %english + + 5. Put the file nehyph.tex (and/or whateverhyph.tex) in the folder Plain. + + 6. TeX the file babel.ins. A lot of files will be generated ! + Eventually, delete those related to languages that you think you + will never use (never say never !). The following files should be + produced by this: + a. babel.sty + b. babel.def + c. switch.def + d. hyphen.cfg + e. plain.def + f. For all the languages for which you downloaded a .dtx-file the + run will produce a .ldf-file and a .sty-file. + If you didn't download them all, the installation process will + stop, telling you it can't find a .dtx-file; after the prompt + type: r and hit the Return-key. The install program will resume + ie. dutch.dtx gives dutch.ldf and dutch.sty + g. the bbind.ist and bbglo.ist files are for printing the + documentation. + + 7. The install-run ends with these remarks: + a. To finish the installation you have to move all the files with + names ending in .ldf, .sty, .def or.fd into a directory + searched by TeX. + Action: If you hadn't done it before, create a new folder, call it + Babel and put in the files ending with the mentioned suffixes. + Drag and drop the Babel-folder into the TeX-inputs-folder. + b. For making a format the following files have to be in a + directory which is searched by Initex: hypen.cfg, language.dat + and files with the hyphenation patterns. + Action: Create a new folder, call it InitexBabel and put in it the + recommended files. Drag and drop the InitexBabel folder into + the TeX-inputs folder. + The language.sty files which you do not need throw them in the + thrashcan. + + 8. The goal is to generate a new latex-format file. To gain some + experience in generating such a format file use only one + hyphenation by disableing the others by putting in front of every + line a %-sign in the file language.dat. Relax, if you follow the + instructions listed here it should work immediately. You may get + an out of memory error during format building when you trie to + load many languages: if this happens, try to increase the + trie_size in the file Configs:Default. After that, run INITeX + anew. + + 9. Disable the file hyphen.ltx by adding a %-sign in front of the filename. + :TeX-inputs:LaTeX:hyphen.ltx. + (LaTeX will search for another. cfg file) + + 8. Choose in the TeX menu LaTeX + + 9. Choose in the TeX-menu INITEX and after the two ** type + latex.ltx and push the <return> button. You will readily notice if + the hyphenation files you selected have been used. + You will now be asked into which folder you want to save the new + format file you created: choose the folder TeX-formats. + Rename the new format file from latex.fmt to LaTeX.fmt; + this will overwrite the pre-existing LaTeX.fmt. + If you wish to keep the original LaTeX.fmt file, + choose a different name or rename the pre-existing LaTeX.fmt to + whatever_name.fmt you like. Remember that if you want to use format + files having new names, you must add such new names into the file + Configs:Default as follows: + + format_files = LaTeX AMSTeX Plain Your_new_format + +10. Start using babel. + a. Put the command \usepackage[your language]{babel} in the + preamble of your production file product.tex + b. TeX product.tex + +Good luck! + + + diff --git a/Master/texmf-dist/doc/generic/babel/install.txt b/Master/texmf-dist/doc/generic/babel/install.txt new file mode 100644 index 00000000000..ee83d65b9d8 --- /dev/null +++ b/Master/texmf-dist/doc/generic/babel/install.txt @@ -0,0 +1,157 @@ + Babel Installation Guide + + 20 February 2004 + + + When you install the babel system you have first to decide + whether you want to make a new format file. If you don't, you + miss some of the functionality of the babel system, but you + can then skip steps 2 through 6 . If you do want to build a + new format, start with step 1. + + When you want to produce the full listing of all the source + files in the babel system run babel.drv through LaTeX, then + use MakeIndex to produce babel.ind using the command: + makeindex -s bbind.ist babel + and use MakeIndex to produce babel.gls using the command: + makeindex -s bbglo.ist -o babel.gls babel.glo + Then run LaTeX on babel.drv again. + + 1 Make sure that you have the Docstrip (version 2) program + available (it is part of the LaTeX2e distribution); then + run the file babel.ins through TeX. + This strips all the .dtx files of the comments and produces + fast loadable versions of the files. + The installation files that are part of the babel + distribution all contain \usedir{tex/generic/babel} + commands. The effect of this is that TeX will attempt to + write the files it produces into your TDS compliant + directory tree. If you have a different tree you should + either change these commands or comment them out. Using the + file docstrip.cfg you can instruct docstrip about the `root' + of the TDS tree. On my Win95 TeX-Live installation I have: +\BaseDirectory{D:/TeX-Local/texmf} +%\BaseDirectory{D:/TeX-Live/texmf} +\UseTDS + whereas on my Linux installation I use: +\BaseDirectory{/usr/local/TeX} +%\BaseDirectory{/usr/TeX/texmf} +\UseTDS + If all of these are correct and TeX still complains about + not being able to store the files it is possible that the + file texmf.cnf prohibits writing into the system trees. + Look for the line with openout_any; if it's value is 'p' + (paranoid) change it to 'r' (restricted). + If all of the above doesn't work for you (or you commented + out the \usedir lines) you will have to move the resulting + .ldf, .sty, .def, .cfg and .fd files yourself into a + directory where TeX can find them. + Do that now. + On some operating systems you might get an error message + such as: + +! I can't write on file `./catalan.sty'. +<to be read again> + \edef +l.455 } + +Please type another output file name: + + In such a case you have run into a maximum number of open + files limit in your computer. You can get around this by + telling docstrip to open less files at a time (from bug + report Babel/2592, answer by David Carlisle): + + As long as you have a reasonably new copy of docstrip, + you can make a docstrip.cfg file at your site to tell + docstrip that you have operating system limits on the + number of open files. + Make a file docstrip.cfg with the two lines: + +\maxfiles{8} +\maxoutfiles{8} + + and docstrip will keep below 8 the number of files it has + open. (You may need to experiment to see how large your + system lets you make these numbers, the default is 16) + See docstrip.dtx + % \subsection{Setting maximum numbers of streams} + for more details. + + Docstrip also produces two files called babel.drv and + user.drv. You can use babel.drv to produce the full + documented source listing of the babel system. (Which is + also provided as babel.dvi) You can use user.drv to produce + a short document that describes the features of each + language specific file. + + 2 Make sure you have the hyphenation patterns available for + the languages that you intend to use. If you don't have + them, you may be able to find them in CTAN, in the directory: + /tex-archive/language/hyphenation. + If you happen to have a set of patterns that is not + available there you could make it available by either + putting it in the /incoming directory or sending it to me. + + 3 The docstripping process will have produced a file called + hyphen.cfg. This file will be loaded when you build a + LaTeX format. To build a plain format with the babel system + preloaded you can use the file bplain.tex as a wrapper for + plain.tex. When you run it through iniTeX plain.tex will be + loaded, as well as hyphen.cfg. When you type \dump at the + end you will get bplain.fmt which you can use as your + plain TeX format. Renaming hyphen.tex to something else is + not permitted by Don Knuth. + + 4 Check the hyphenation patterns that you have available and + want to load into the format. For each language that you + want to hyphenate correctly you need a hyphenation pattern. + List them all in the file `language.dat'. The file that is + in the distribution serves as an example of what you have to + put in there. + The files containing hyphenation patterns should be found + somewhere on TeX's `input path'. What that means depends on + the implementation of TeX you use: + - With emTeX there is an environment variable TEXINPUT in + which you can list the directories to search through, + adding a ! to a directory will make emTeX do a recursive + search through the directory tree. + - With Unix TeX the `system directories' do not need to be + specified in the environment variable TEXINPUTS; there + adding a double / to a directory name means recursive + searching of the directory tree. + + 5 Run iniTeX, telling it to load your favorite macro package + (ie plain or latex). + When you build a LaTeX format iniTeX will find the file + hyphen.cfg (provided that you have stored it in the + correct place). + When you build a plain TeX format using the supplied file + bplain.tex iniTeX will also find hyphen.cfg. + + *Beware*: some implementations of TeX only look in the + current directory when the \openin primitive is used. If + your TeX does that you need to put the file `languages.dat' + in the same directory where you build your format. + + 6 When the iniTeX run in step 5 stops with a message about + not enough memory (trie_size = ...) and "you can ask a + wizard to enlarge me" You have tried to load more + hyphenation patterns into TeX's memory then it has room for. + In that case you can either remove one or more languages + from the file language.dat or be your own wizard and enlarge + TeX. I can not tell you how to do that for all + implementations of TeX as it differs with each + implementation. Your distribution should contain a + description of what to. + - With emTeX you can influence the size of some of the + memory arrays with command line switches (/mt:65000 for + the trie_size). + - With Unix TeX you have to change a file called tex.ch and + rebuild TeX using the supplied Makefile. The change you + need to make is to enlarge the trie_size and + trie_op_size. + - With Web2C TeX (version 7 and newer) you can change the + value of the trie_size in the file web2c/texmf.cnf. + +--- Copyright 2004 Johannes Braams. All rights reserved --- diff --git a/Master/texmf-dist/doc/generic/babel/language.dat b/Master/texmf-dist/doc/generic/babel/language.dat new file mode 100644 index 00000000000..75141062f8c --- /dev/null +++ b/Master/texmf-dist/doc/generic/babel/language.dat @@ -0,0 +1,12 @@ +% File : language.dat +% Purpose : specify which hypenation patterns to load +% while running iniTeX +=USenglish +american ushyphen.tex +=english +UKenglish ukhyphen.tex +=british +french frhyphen.tex +dutch nehyph2.tex +german dehypht.tex +ngerman dehyphn.tex diff --git a/Master/texmf-dist/doc/generic/babel/language.skeleton b/Master/texmf-dist/doc/generic/babel/language.skeleton new file mode 100644 index 00000000000..e893b3b660f --- /dev/null +++ b/Master/texmf-dist/doc/generic/babel/language.skeleton @@ -0,0 +1,221 @@ +% \iffalse meta-comment +% +% Copyright 1989-2005 Johannes L. Braams and any individual authors +% listed elsewhere in this file. All rights reserved. +% +% This file is part of the Babel system. +% -------------------------------------- +% +% It may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.3 +% of this license or (at your option) any later version. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3 or later is part of all distributions of LaTeX +% version 2003/12/01 or later. +% +% This work has the LPPL maintenance status "maintained". +% +% The Current Maintainer of this work is Johannes Braams. +% +% The list of all files belonging to the Babel system is +% given in the file `manifest.bbl. See also `legal.bbl' for additional +% information. +% +% The list of derived (unpacked) files belonging to the distribution +% and covered by LPPL is defined by the unpacking scripts (with +% extension .ins) which are part of the distribution. +% \fi +% \CheckSum{0} +%%% docstring = " This file can act as a template for +%%% people who want to provide extra +%%% languages to be included in the babel +%%% distribution. +% +% \iffalse +% Tell the \LaTeX\ system who we are and write an entry on the +% transcript. +%<*dtx> +\ProvidesFile{<language>.dtx} +%</dtx> +%<code>\ProvidesLanguage{<language>} +%\fi +%\ProvidesFile{<language>.dtx} + [2005/02/20 v1.6 <Language> support from the babel system] +%\iffalse +%% Babel package for LaTeX version 2e +%% Copyright (C) 1989 -- 2005 +%% by Johannes Braams, TeXniek +% +%% Please report errors to: J.L. Braams +%% babel at braams.cistron.nl +% +% This file is part of the babel system, it provides the source code for +% the <Language> language definition file. +%<*filedriver> +\documentclass{ltxdoc} +\newcommand*{\TeXhax}{\TeX hax} +\newcommand*{\babel}{\textsf{babel}} +\newcommand*{\langvar}{$\langle \mathit lang \rangle$} +\newcommand*{\note}[1]{} +\newcommand*{\Lopt}[1]{\textsf{#1}} +\newcommand*{\file}[1]{\texttt{#1}} +\begin{document} + \DocInput{<language>.dtx} +\end{document} +%</filedriver> +%\fi +% \GetFileInfo{<language>.dtx} +% +% \changes{v1.1}{1994/02/27}{Rearranged the file a little} +% \changes{v1.2}{1994/06/04}{Update for \LaTeXe} +% \changes{v1.3}{1995/05/13}{Update for \babel\ release 3.5} +% \changes{v1.4}{1996/10/30}{Update for \babel\ release 3.6} +% \changes{v1.5}{1997/03/18}{Update for \babel\ release 3.7} +% \changes{v1.6}{2004/02/20}{Update for \babel\ release 3.8} +% +% \section{The <Language> language} +% +% The file \file{\filename}\footnote{The file described in this +% section has version number \fileversion\ and was last revised on +% \filedate.} defines all the language definition macros for the +% <Language> languagee. +% +% \StopEventually{} +% +% The macro |\LdfInit| takes care of preventing that this file is +% loaded more than once, checking the category code of the +% \texttt{@} sign, etc. +% \begin{macrocode} +%<*code> +\LdfInit{<language>}{captions<language>} +% \end{macrocode} +% +% When this file is read as an option, i.e. by the |\usepackage| +% command, \texttt{<language>} could be an `unknown' language in +% which case we have to make it known. So we check for the +% existence of |\l@<language>| to see whether we have to do +% something here. +% +% \begin{macrocode} +\ifx\undefined\l@<language> + \@nopatterns{<Language>} + \adddialect\l@<language>0\fi +% \end{macrocode} +% For the <Dialect> version of these definitions we just add a +% ``dialect''. Also, the macros |\captions<dialect>| and +% |\extras<dialect>| are |\let| to their \texttt{<language>} +% counterparts when these parts are defined. +% \begin{macrocode} +\adddialect\l@<dialect>\l@<language> +% \end{macrocode} +% The next step consists of defining commands to switch to (and +% from) the <Language> language. +% +% Now we declare the |<attrib>| language attribute. +% \begin{macrocode} +\bbl@declare@ttribute{<language>}{<attrib>}{% +% \end{macrocode} +% This code adds the expansion of |\extras<attrib><language>| to +% |\extras<language>|. +% \begin{macrocode} + \expandafter\addto\expandafter\extras<language> + \expandafter{\extras<attrib><language>}% + \let\captions<language>\captions<attrib><language> + } +% \end{macrocode} +% +% \begin{macro}{\<language>hyphenmins} +% This macro is used to store the correct values of the hyphenation +% parameters |\lefthyphenmin| and |\righthyphenmin|. +% \begin{macrocode} +\providehyphenmins{<language>}{\tw@\thr@@} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\captions<language>} +% The macro |\captions<language>| defines all strings used in the +% four standard documentclasses provided with \LaTeX. +% \begin{macrocode} +\def\captions<language>{} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\captions<dialect>} +% \begin{macrocode} +\let\captions<dialect>\captions<language> +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\date<language>} +% The macro |\date<language>| redefines the command |\today| to +% produce <Language> dates. +% \begin{macrocode} +\def\date<language>{% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\date<dialect>} +% The macro |\date<dialect>| redefines the command |\today| to +% produce <Dialect> dates. +% \begin{macrocode} +\def\date<dialect>{% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\extras<language>} +% \begin{macro}{\noextras<language>} +% The macro |\extras<language>| will perform all the extra +% definitions needed for the <Language> language. The macro +% |\noextras<language>| is used to cancel the actions of +% |\extras<language>|. For the moment these macros are empty but +% they are defined for compatibility with the other +% language definition files. +% +% \begin{macrocode} +\addto\extras<language>{} +\addto\noextras<language>{} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\extras<dialect>} +% \begin{macro}{\noextras<dialect>} +% Also for the ``<dialect>'' variant no extra definitions are +% needed at the moment. +% \begin{macrocode} +\let\extras<dialect>\extras<language> +\let\noextras<dialect>\noextras<language> +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% The macro |\ldf@finish| takes care of looking for a +% configuration file, setting the main language to be switched on +% at |\begin{document}| and resetting the category code of +% \texttt{@} to its original value. +% \begin{macrocode} +\ldf@finish{<language>} +%</code> +% \end{macrocode} +% +% \Finale +%\endinput +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} +%% diff --git a/Master/texmf-dist/doc/generic/babel/romanidx.tex b/Master/texmf-dist/doc/generic/babel/romanidx.tex new file mode 100644 index 00000000000..bc50735db31 --- /dev/null +++ b/Master/texmf-dist/doc/generic/babel/romanidx.tex @@ -0,0 +1,216 @@ +%% +%% This is file `romanidx.tex', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% spanish.dtx (with options: `indexes') +%% This is a generated file. +%% +%% Copyright 1989-2005 Johannes L. Braams and any individual authors +%% listed elsewhere in this file. All rights reserved. +%% +%% This file was generated from file(s) of the Babel system. +%% --------------------------------------------------------- +%% +%% It may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3 +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of LaTeX +%% version 2003/12/01 or later. +%% +%% This work has the LPPL maintenance status "maintained". +%% +%% The Current Maintainer of this work is Johannes Braams. +%% +%% This file may only be distributed together with a copy of the Babel +%% system. You may however distribute the Babel system without +%% such generated files. +%% +%% The list of all files belonging to the Babel distribution is +%% given in the file `manifest.bbl'. See also `legal.bbl for additional +%% information. +%% +%% The list of derived (unpacked) files belonging to the distribution +%% and covered by LPPL is defined by the unpacking scripts (with +%% extension .ins) which are part of the distribution. +%% File `spanish.dtx' +%% Babel package for LaTeX version 2e +%% Copyright (C) 1989 - 2004 +%% by Johannes Braams, TeXniek +%% Spanish Language Definition File +%% Copyright (C) 1997 - 2005 +%% by Javier Bezos (jbezos at wanadoo.es) +%% Apartado 116.035 +%% E-28080 Madrid +%% Espa\~na / Espagne +%% and +%% by CervanTeX (www.cervantex.org) +%% Please report errors to: Javier Bezos (preferably) +%% jbezos at wanadoo.es +%% J.L. Braams +%% babel at braams.cistron.nl +%% \section{\textsf{spanish} como lengua principal} +\makeatletter + +\newcount\es@converted +\newcount\es@processed + +\def\es@encap{`\|} +\def\es@openrange{`\(} +\def\es@closerange{`\)} + +\def\es@split@file#1.#2\@@{#1} +\def\es@split@ext#1.#2\@@{#2} + +\typein[\answer]{^^JArchivo que convertir^^J% + (extension por omision .idx):} + +\@expandtwoargs\in@{.}{\answer} +\ifin@ + \edef\es@input@file{\expandafter\es@split@file\answer\@@} + \edef\es@input@ext{\expandafter\es@split@ext\answer\@@} +\else + \edef\es@input@file{\answer} + \def\es@input@ext{idx} +\fi + +\typein[\answer]{^^JArchivo de destino^^J% + (archivo por omision: \es@input@file.eix,^^J% + extension por omision .eix):} +\ifx\answer\@empty + \edef\es@output{\es@input@file.eix} +\else + \@expandtwoargs\in@{.}{\answer} + \ifin@ + \edef\es@output{\answer} + \else + \edef\es@output{\answer.eix} + \fi +\fi + +\typein[\answer]{% + ^^J?Se ha usado algun esquema especial de controles^^J% + de MakeIndex para encap, open_range o close_range?^^J% + [s/n] (n por omision)} + +\if s\answer + \typein[\answer]{^^JCaracter para 'encap'^^J% + (\string| por omision)} + \ifx\answer\@empty\else + \edef\es@encap{% + `\expandafter\noexpand\csname\expandafter\string\answer\endcsname} + \fi + \typein[\answer]{^^JCaracter para 'open_range'^^J% + (\string( por omision)} + \ifx\answer\@empty\else + \edef\es@openrange{% + `\expandafter\noexpand\csname\expandafter\string\answer\endcsname} + \fi + \typein[\answer]{^^JCaracter para 'close_range'^^J% + (\string) por omision)} + \ifx\answer\@empty\else + \edef\es@closerange{% + `\expandafter\noexpand\csname\expandafter\string\answer\endcsname} + \fi +\fi + +\newwrite\es@indexfile +\immediate\openout\es@indexfile=\es@output + +\newif\ifes@encapsulated + +\def\es@roman#1{\romannumeral#1 } +\edef\es@slash{\expandafter\@gobble\string\\} + +\def\indexentry{% + \begingroup + \@sanitize + \es@indexentry} + +\begingroup + +\catcode`\|=12 \lccode`\|=\es@encap\relax +\catcode`\(=12 \lccode`\(=\es@openrange\relax +\catcode`\)=12 \lccode`\)=\es@closerange\relax + +\lowercase{ +\gdef\es@indexentry#1{% + \endgroup + \advance\es@processed\@ne + \es@encapsulatedfalse + \es@bar@idx#1|\@@ + \es@idxentry}% +} + +\lowercase{ +\gdef\es@idxentry#1{% + \in@{\es@roman}{#1}% + \ifin@ + \advance\es@converted\@ne + \immediate\write\es@indexfile{% + \string\indexentry{\es@b|\ifes@encapsulated\es@p\fi esromanindex% + {\ifx\es@a\@empty\else\es@slash\es@a\fi}}{#1}}% + \else + \immediate\write\es@indexfile{% + \string\indexentry{\es@b\ifes@encapsulated|\es@p\es@a\fi}{#1}}% + \fi} +} + +\lowercase{ +\gdef\es@bar@idx#1|#2\@@{% + \def\es@b{#1}\def\es@a{#2}% + \ifx\es@a\@empty\else\es@encapsulatedtrue\es@bar@eat#2\fi} +} + +\lowercase{ +\gdef\es@bar@eat#1#2|{\def\es@p{#1}\def\es@a{#2}% + \edef\es@t{(}\ifx\es@t\es@p + \else\edef\es@t{)}\ifx\es@t\es@p + \else + \edef\es@a{\es@p\es@a}\let\es@p\@empty% + \fi\fi} +} + +\endgroup + +\input \es@input@file.\es@input@ext + +\immediate\closeout\es@indexfile + +\typeout{*****************} +\typeout{Se ha procesado: \es@input@file.\es@input@ext } +\typeout{Lineas leidas: \the\es@processed} +\typeout{Lineas convertidas: \the\es@converted} +\typeout{Resultado en: \es@output} +\ifnum\es@converted>\z@ + \typeout{Genere el indice a partir de ese archivo} +\else + \typeout{No se ha realizado ningun tipo de conversion} + \typeout{Se puede generar el archivo directamente^^J% + de \es@input@file.\es@input@ext} +\fi +\typeout{*****************} +\@@end +%% +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} +%% +\endinput +%% +%% End of file `romanidx.tex'. diff --git a/Master/texmf-dist/doc/generic/babel/tb1202.tex b/Master/texmf-dist/doc/generic/babel/tb1202.tex new file mode 100644 index 00000000000..0cedd222ba2 --- /dev/null +++ b/Master/texmf-dist/doc/generic/babel/tb1202.tex @@ -0,0 +1,961 @@ +% \iffalse meta-comment +% +% Copyright 1989-2005 Johannes L. Braams and any individual authors +% listed elsewhere in this file. All rights reserved. +% +% This file is part of the Babel system. +% -------------------------------------- +% +% It may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.3 +% of this license or (at your option) any later version. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3 or later is part of all distributions of LaTeX +% version 2003/12/01 or later. +% +% This work has the LPPL maintenance status "maintained". +% +% The Current Maintainer of this work is Johannes Braams. +% +% The list of all files belonging to the Babel system is +% given in the file `manifest.bbl. See also `legal.bbl' for additional +% information. +% +% The list of derived (unpacked) files belonging to the distribution +% and covered by LPPL is defined by the unpacking scripts (with +% extension .ins) which are part of the distribution. +% \fi +%%% ==================================================================== +%%% @TeX-file{ +%%% author = "Johannes L. Braams", +%%% version = "1.04", +%%% date = "06 January 1997", +%%% time = "23:15:14 MET", +%%% filename = "tb1202.tex", +%%% address = "TeXniek, +%%% Kersengaarde 33 +%%% 2723 BP Zoetermeer +%%% The Netherlands", +%%% telephone = "+31 79 352 28 19", +%%% FAX = "+31 70 343 23 95", +%%% checksum = "19810 933 5016 39417", +%%% email = "babel@braams.cistron.nl (Internet)", +%%% codetable = "ISO/ASCII", +%%% keywords = "", +%%% supported = "yes", +%%% abstract = "", +%%% docstring = "The article on babel that apeared in +%%% TuGboat Volume 12, No. 2. +%%% +%%% The checksum field above contains a CRC-16 +%%% checksum as the first value, followed by the +%%% equivalent of the standard UNIX wc (word +%%% count) utility output of lines, words, and +%%% characters. This is produced by Robert +%%% Solovay's checksum utility.", +%%% } +%%% ==================================================================== +% tb32braa.ltx + +\NeedsTeXFormat{LaTeX2e} +\IfFileExists{ltugboat.cls}{% + \documentclass{ltugboat} + \def\rtitlex{TUGboat, Volume 12 (1991), No. 2} + \def\midrtitle{} + \def\PrelimDraftfooter{} + \let\TBmaketitle\maketitle + \SelfDocumenting + \setcounter{page}{291} + }{% + \documentclass{article} + \newcommand\address[1]{} + \newcommand\netaddress[1]{} + \newcommand\TUB{\textsl{TUGboat\/}} + \newcommand\TeXhax{\TeX hax}} +\usepackage{shortvrb} +\MakeShortVerb{\|} +\newcommand{\file}[1]{\texttt{#1}} +\newcommand{\Lopt}[1]{\textsf{#1}} +\newcommand{\babel}{\textsf{babel}} +\makeatletter +% ------------------------------------------------- +% Definitions copied from doc.sty by FMi +% ------------------------------------------------- +{\obeyspaces% +\gdef\meta{\begingroup\obeyspaces% +\def {\egroup\space\hbox\bgroup\it}\m@ta}} +\def\m@ta#1{\hbox\bgroup$\langle$\it#1\/$\rangle$\egroup\endgroup} + +% ------------------------------------------------- +% define \dlqq so that we can give an example of "' +% ------------------------------------------------- +\gdef\dlqq{{\setbox\tw@=\hbox{,}\setbox\z@=\hbox{''}% + \dimen\z@=\ht\z@ \advance\dimen\z@-\ht\tw@ + \setbox\z@=\hbox{\lower\dimen\z@\box\z@}\ht\z@=\ht\tw@ + \dp\z@=\dp\tw@ \box\z@\kern-.04em}} +% +% ------------------------------------------------- +% To demonstrate german double quotes (from german.tex) +% ------------------------------------------------- +\def\allowhyphens{\penalty\@M \hskip\z@skip} +\def\set@low@box#1{\setbox\tw@\hbox{,}\setbox\z@\hbox{#1}\dimen\z@\ht\z@ + \advance\dimen\z@ -\ht\tw@ + \setbox\z@\hbox{\lower\dimen\z@ \box\z@}\ht\z@\ht\tw@ \dp\z@\dp\tw@ } +% (this lowers the german left quotes to the same level as the comma.) + +\def\@glqq{{\ifhmode \edef\@SF{\spacefactor\the\spacefactor}\else + \let\@SF\empty \fi \leavevmode + \set@low@box{''}\box\z@\kern-.04em\allowhyphens\@SF\relax}} +\def\glqq{\protect\@glqq} +\def\@grqq{\ifhmode \edef\@SF{\spacefactor\the\spacefactor}\else + \let\@SF\empty \fi \kern-.07em``\kern.07em\@SF\relax}%'' +\def\grqq{\protect\@grqq} +% +% ------------------------------------------------- +% To demonstrate french double quotes (from german.tex) +% ------------------------------------------------- +\def\@flqq{\ifhmode \edef\@SF{\spacefactor\the\spacefactor}\else + \let\@SF\empty \fi + \ifmmode \ll \else \leavevmode + \raise .2ex \hbox{$\scriptscriptstyle \ll $}\fi \@SF\relax} +\def\flqq{\protect\@flqq} +\def\@frqq{\ifhmode \edef\@SF{\spacefactor\the\spacefactor}\else + \let\@SF\empty \fi + \ifmmode \gg \else \leavevmode + \raise .2ex \hbox{$\scriptscriptstyle \gg $}\fi \@SF\relax} +\def\frqq{\protect\@frqq} +%+ +% Some extra definitions needed in the article +%- +\def\bsl{\char'134} +\makeatother + +\begin{document} +\title {Babel, a multilingual style-option system for use + with \LaTeX's standard document styles% + \thanks{During the development ideas from Nico Poppelier, + Piet van Oostrum and many others have been used.} + } + +\author{Johannes Braams} +\address{% + \TeX niek\\ + Kersengaarde 33\\ + 2723 BP Zoetermeer\\ + The Netherlands} +\netaddress{babel@braams.cistron.nl} +\date{06 January 1997 \\ + Version 1.04} + +\maketitle + +\begin{abstract} + The standard distribution of \LaTeX\ contains a number of document + styles that are meant to be used, but also serve as examples for + other users to create their own document styles. These styles have + become very popular among \LaTeX\ users. But it should be kept in + mind that they were designed for American tastes and contain a + number of hard-wired texts. This article describes a set of + document-style options that can be used in combination with the + standard styles, which makes the latter adaptable to other + languages. +\end{abstract} + +\section{Introduction} + +Although Leslie Lamport has stated~\cite{LLth} that one should not try +and write \emph{one} document-style option to be used with \emph{all} +the standard document styles of \LaTeX, that is exactly what I~have +done with this system of style options. The reasons for this approach +will be explained in section~\ref{why}. + +A lot of the ideas incorporated in this set of files come from the +work of Hubert Partl~\cite{HP}, \file{german.tex}. Some parts in the +implementation are different, others are the same. It will be shown +that \file{german.tex} can be modified to fit into this scheme of +style options. + +\section{Why \babel?}\label{why} + +When I~first started using \LaTeX\ I~was very happy with just the +style files that are distributed with the standard distributions of +\TeX\ and \LaTeX. That means, as long as I~made texts in English I~was +happy. Then as other users found out about \LaTeX\ and its advantages, +they started using it for texts in languages other than English. As +I~was the most experienced \LaTeX\ user at the time, they came to me +and asked me `When I'm writing a report in Dutch I~don't want chapters +to be named ``Chapter'', I~want them to be named ``Hoofdstuk'', how do +you change that?'. At that time I~didn't know, but I soon found out. +The first thing I~found was that Leslie Lamport states~\cite[pages +85--86]{LLbook} that you have to redefine the command |\@chapapp| +to get the desired result. This looked rather promising to me, so +I~had a look at the style files to find out how other such strings as +``Figure'' might be redefined. It was then that I~found out that +|\@chapapp| is the \emph{only} string defined this way, whereas +all others are hard-wired into the style. + +My first solution to this problem was to create a new document style +file called \file{artikel.sty} as a ``Dutch'' counterpart to +\file{article.sty}. The same was done for \file{report.sty}. This is +exactly what Leslie Lamport suggests~\cite{LLth}. This approach has +one major drawback however: you get two copies of basically the same +file to maintain. This was discovered when newer releases of the +styles reached our site. The standard styles had to be replaced +\emph{and} edited all over again to get the ``Dutch'' versions back. +About the same time, in early 1988, a discussion on this subject +appeared in \TeXhax. One of the persons commenting was Hubert Partl. +The method he suggested was to modify the standard document styles by +replacing the hard-wired texts by macros such as |\@chapapp|. This +led me to my second attempt at a solution. I~modified the standard +styles (all four of them) as suggested, but while doing that added an +option, implemented like the option \texttt{draft}, by defining a +command |\ds@dutch|. This command would set a variable to indicate +which language was requested. This variable I~used later on in a +|\case| statement. In this |\case| statement a choice is made between +English, Dutch and possibly other languages for texts such as +``Figure'' and ``Contents''. Unfortunately, some of this implied +changing the secondary style files \file{xxx10.sty}, \file{xxx11.sty} +and \file{xxx12.sty}. This was unfortunate because one of the +research groups in our laboratories complained their document style +didn't work properly. It turned out that their style was a modified +\file{article.sty} that had been given a different name, but it still +loaded \file{art10.sty} etc. I~found a temporary solution, but I +still wasn't exactly happy with the situation. Besides this, the +drawback of replacing the document styles with newer versions still +existed. + +When after a while a new version of the \LaTeX\ distribution arrived +at our site, I~began to think about a different way to solve the +problem. In the meantime Hubert Partl had his \file{german.sty} +published in \TUB~\cite{HP}. His article pointed the way to a +different solution. Triggered by the discussion in \TeXhax\ in early +1989 about how to detect which is the main (primary) style when +processing a document, I~started work on what is now available as +\file{dutch.sty} version~1.0, dated may 1989\footnote{This file is + available from \texttt{listserv@hearn.bitnet} as file + \file{dutch.old}.}. While working on this style option I~discovered +that some parts could be borrowed from \file{german.sty}. This +`discovery' and some discussions I had with others at Euro\TeX89, the +fourth European \TeX\ Conference, held in september 1989 in Karlsruhe, +led me towards a more universal approach. The basic idea behind it +was, starting from the algorithm to detect the main style, to design +an approach with one common file that contained macro definitions +needed by a number of language-specific style options. Users specify +the name of any of these language-specific options as an option to the +|\documentstyle| command, and internally the common file is read. + +%This is the situation as it stands now. The rest of this article is +%devoted to a description of how the system of style options described +%above is implemented and what the possibilities are. I~realize that +%with the new \TeX\ 3.0 around and work being done on a new version of +%\LaTeX\ as well some of this work may become obsolete in the near +%future. But, taking into consideration the widespread use of the +%current versions of \TeX\ and \LaTeX\, I~think it may take some time +%before {\em everybody} is working with the new releases. + +%------------------------------------------------------------ +% All text above here was copied from babel.doc, the following +% section is new for this version of the article +%------------------------------------------------------------ +\section{\LaTeX\ and document-style files}\label{lat-docstyle} + +Before the I discuss some of the code in the \babel{} system I would +like to discuss the document-style mechanism used by \LaTeX. Every +\LaTeX\ document should start with a line like: +\begin{verbatim} +\documentstyle[opt1,opt2,...]{docstyle} +\end{verbatim} +This line of code instructs \LaTeX\ to first load the file +\file{docstyle.sty}. When that is done the `options' are processed +\emph{in the order specified}, by reading the files +\file{opt1.sty}\footnote{Except when the documentstyle defines the + control sequence {\tt\bsl ds@\meta{opt1}}; in that case this control + sequence will be executed.}, \file{opt2.sty}, etc. This implies that +definitions, made in the file \file{docstyle.sty} can be overridden in +one of the option files. It is even possible to redefine code from the +very kernel of \LaTeX, but you have to know what you are doing. + +Some care has to be taken in writing document-style options, because a +number of problems can occur. First of all, if a document-style option +should be modest in size; if it tries to redefine most of the code in +\file{docstyle.sty} I think you should write (and maintain) your own, +complete, document style. Next, as it was possible to override +definitions from the main file in an option file, it is of course also +possible to override definitions made in another option file. When +this happens, your document might depend on the order in which you +have specified your document-style options. + +This mechanism of overriding definitions from the main document style +is exploited in the \babel{} system. The macros that contain the +hard-wired texts are redefined in the common part of \babel{}, +replacing each of these texts with a unique macro. These macros have +to be defined in the language-specific files. + +\section{\LaTeX\ and multilingual documents}\label{lat-lingual} + +In a european environment it sometimes happens that one wants to write +a document that contains more than \emph{one} language. I have an +example of a document, published by the {\sc eec}, that contains 9 +(nine) different languages. Also in linguistics one can find documents +written in more than one language, i.e. to compare two languages. + +If you have to write such a multilingual document you should try to +conform to the typographical conventions in use for each language. A +well known example is the type of quotation marks used. \TeX\ supplies +the user with ``quoted text'', but a Dutch user might want to have +\dlqq quoted text'', whereas a German text should contain \glqq quoted +text\grqq\ and a frenchman would perhaps like to see something like +\flqq quoted text\frqq. These language specific conventions should be +implemented in a document-style option file for each language. These +files should then be useable with \emph{all} document styles. + +In such a multilingual document a user would specify the languages +used as options to the |\documentstyle| command. He would also want a +mechanism to be able to switch between these languages in a simple +way. When he would use \TeX\ version 3.0 for the processing of his +document, he would also want the hyphenation to come out right for the +different languages. + +\section{Overview of the \babel{} solution} + +\subsection{The core of the system} + +The problems described in sections~\ref{lat-docstyle} +and~\ref{lat-lingual} can be solved using the \babel{} system of +document-style options. + +The core of this system currently performs three functions. +\begin{enumerate} + +\item\label{switch} It defines a user interface for switching between + languages; + +\item\label{hyphs} It contains code to dynamically load several sets + of hyphenation patterns; + +\item\label{repair} It `repairs' the document styles provided in the + standard distribution of \LaTeX. + +\end{enumerate} + +Obviously part~\ref{hyphs} can only be used while running ini\TeX\ to +create a new format, whereas part~\ref{repair} should \emph{not} be +read by ini\TeX. Part~\ref{repair} should even disappear when \LaTeX\ +version 3.0 arrives, as the style files supplied with the new \LaTeX\ +will no longer be language specific. Part~\ref{switch} can either be +loaded into the format with multiple hyphenation patterns, or it can +be read while processing a document. + +For this reason the core of the \babel{} system is stored in two +separate files, \file{babel.switch}, containing parts~\ref{switch} +and~\ref{hyphs}, and \file{babel.sty} which contains +part~\ref{repair}. The file \file{babel.sty} will instruct \LaTeX\ to +load \file{babel.switch} if necessary, the file \file{babel.switch} +checks the format to see if hyphenation patterns \emph{can} be loaded. + +\subsection{Language specifics} + +The language switching mechanism contains a couple of hooks for the +developers of language-specific document-style options. + +First of all the macro |\originalTeX| should be defined. Its function +is to disable special definitions made for a language to bring \TeX\ +into a `defined' state. A language-specific document-style option +might, for example, introduce an extra active character. It would then +also modify the definitions of |\dospecials| and |\@sanitize|. Such an +option would then define a macro to restore the original definitions +of these macros and restore the extra active character to its normal +category code. It would then |\let \originalTeX| to this `restoration' +macro. + +To enable the language-specific definitions three macros are provided +in the switching mechanism, |\captions|\meta{language}, +|\date|\meta{language} and |\extras|\meta{language}. + +The macro |\captions|\meta{language} should provide definitions for +the macros that replaced the hard-wired texts in the document style +and the macro |\date|\meta{language} should provide a definition for +|\today|. The real fun starts with the macro +|\extras|\meta{language}. This macro should activate all definitions +needed for \meta{language}. + +\section{The user interface} + +The user interface to the \babel{} system is quite simple. He should +specify the languages he wants to use in his document in the list of +document-style options. For instance, for a document in which both the +English and the Dutch language are used, the first line could read: +\begin{verbatim} +\documentstyle[a4,dutch,english]{artikel1} +\end{verbatim} +Please note that in this case the Dutch-specific definitions are +inactive when \LaTeX\ has finished processing document-style option +files. + +If the user then wants to switch from English to Dutch he would +include the command +\begin{verbatim} +\selectlanguage{dutch} +\end{verbatim} +before starting to write Dutch. + +If a user wants to write a document-style option of his own he might +like to define a macro that checks which language is in use at the +time the macro is executed. For this purpose the macro +|\iflanguage{|\meta{language}|}{|\meta{then-clause}|}{|% +\meta{else-clause}|}| is available. + +\section{Implementation of the core of the system} + +In this section I would like to discuss some parts of the +implementation of the \babel{} system. Not all code will be shown, +because some parts of it are just series of slightly modified code +from the standard document styles. The files are fully documented and +interested readers can print them if they have access to the +\texttt{doc} option, described by Frank Mittelbach. + +The description of the macros that follows is based on an environment +using \TeX~3.x, together with a version of \file{lplain.tex} based on +\file{plain.tex} version~3.x. The actual implementation allows for +other situations as well, i.e a version of \file{babel.sty} for +\TeX~2.x will be available. + +\subsection{Switching languages}\label{lang-switch} + +For each language to be used in a document a control sequence of the +form |\l@|\meta{language} has to be defined. This will either be done +while loading hyphenation patterns or while loading the +language-specific file. The implementation of +\hbox{|\selectlanguage{|\meta{language}|}|} and\\ +\hbox{|\iflanguage{|\meta{language}|}{|\meta{then case}|}{|\meta{else + case}|}|} is based on the existence of +\hbox{|\l@|\meta{language}}. + +\begin{figure*}[htb] +\begin{verbatim} +\def\selectlanguage#1{% + \@ifundefined{l@#1} + {\@nolanerr{#1}} + {\originalTeX + \language=\expandafter\csname l@#1\endcsname\relax + \expandafter\csname captions#1\endcsname + \expandafter\csname date#1\endcsname + \expandafter\csname extras#1\endcsname + \gdef\originalTeX{\expandafter\csname noextras#1\endcsname} + } +} +\end{verbatim} +\caption{The definition of {\tt\bsl selectlanguage}.} +\label{select} +\end{figure*} + +To switch from one language to another the macro |\selectlanguage| is +available. Its definition can be seen in figure~\ref{select}. The +first action it takes is to check whether the \meta{language} is +known, if it is not an error is signalled. If the language is known +|\originalTeX| is called upon to reset any previously set +language-specific definitions. Next the register |\language| is +updated and the three macros that should activate all +language-specific definitions are executed. Finally the macro +|\originalTeX| receives a new replacement text in order to be able to +deactivate the definitions just activated. + +\begin{figure*}[htb] +\begin{verbatim} +\def\iflanguage#1#2#3{% + \@ifundefined{l@#1} + {\@nolanerr{#1}} + {\ifnum\language=\expandafter\csname l@#1\endcsname\relax + #2 \else #3 + \fi} +} +\end{verbatim} +\caption{The definition of {\tt\bsl iflanguage}} +\label{if} +\end{figure*} + +The macro |\iflanguage| (see figure~\ref{if}) will issue a warning +when its argument is an `unkown' language. It then goes on to compare +the value of |\language| and |\l@|\meta{language} and executes either +its secon or third argument. + +\subsection{Dynamically loading patterns} + +With the advent of \TeX~3.0 it has become possible to build a format +with more than one hyphenation pattern preloaded. The core of the +\babel\ system provides code, to be executed by ini\TeX\ \emph{only}, +to dynamically load hyphenation patterns. The only restriction is that +the implementation of \TeX\ that you use has to have rather high +settings of \texttt{trie\_size} and \texttt{trie\_op\_size} to +actually load several hyphenation patterns. + +For the purpose of dynamically loading hyphenation patterns a +`configuration file' has to be introduced. This file will be read by +ini\TeX. Each line should contain either a comment, nothing or the +name of a language and the name of the file that contains the +hyphenation patterns for that language. In figure~\ref{config} an +example of such a file, instructing ini\TeX\ to load patterns for +three languages, English, Dutch and German. + +\begin{figure*}[htb] +\begin{verbatim} +% File : language.dat +% Purpose : tell iniTeX what files with patterns to load. +english english.hyphenations + +dutch hyphen.dutch % Nederlands +german hyphen.ger +\end{verbatim} +\caption{An example configuration file}\label{config} +\end{figure*} + +The configuration file will be read line by line using \TeX's |\read| +primitive. Because the name of a file might be followed by a +space-token and comment (as in the example) a macro to process each +line is needed. The definition of this macro, |\process@language|, can +be found in figure~\ref{process}. As can be seen in the definition of +this macro, its second argument \emph{always} has to be followed by a +space-token. The effect of this is that any trailing spaces are +removed. +\begin{figure*}[htb] +\begin{verbatim} +\def\process@language#1 #2 {% + \expandafter\addlanguage\csname l@#1\endcsname + \expandafter\language\csname l@#1\endcsname + \input #2} +\end{verbatim} +\caption{The definition of {\tt\bsl process@language}.} +\label{process} +\end{figure*} +The macro strips all spaces following its arguments. It's first +argument is used to define |\l@|\meta{language}. The macro +|\addlanguage| is basically a non-outer version of the plain \TeX\ +macro |\newlanguage|. The second argument of |\process@language| is +the name of the file containing the hyphenation patterns. Before the +file can be read, the register |\language| has to updated. + +The configuration file is read in a |\loop| (see figure~\ref{loop}). +When a record is read from the input file a check is done whether the +record was empty. If it was not, a space token is added to the end of +the string of tokens read. The reason for this is that we have to be +sure there always is at least \emph{one} space token present. When +that has been taken care of the data just read can be processed. The +last thing to do is to check the status of the input file, in order to +decide whether \TeX\ has to continue processing the |\loop|. When all +patterns have been processed the value of |\language| is restored. + +\begin{figure*}[htb] +\begin{verbatim} +\loop + \read1 to \@config@line + \ifx\@config@line\empty + \else + \edef\@config@line{\@config@line\space} + \expandafter\process@language\@config@line + \fi + \ifeof1 \@morefalse \fi + \if@more\repeat +\language=0 +\end{verbatim} +\caption{Reading the configuration file line by line} +\label{loop} +\end{figure*} + +\subsection{`Repairing' \LaTeX's standard document styles} + +A large part of the core of the \babel{} system is dedicated to +`repair' the standard document styles. This means redefining the +macros in table~\ref{macros}. + +\begin{table*}[htb] +\DeleteShortVerb{\|} +\begin{center} +\begin{tabular}{l | c c c c} +macro & article & report & book & letter \\ +\hline +\tt\bsl fnum@figure & $\times$ & $\times$ & $\times$ & $\times$ \\ +\tt\bsl fnum@table & $\times$ & $\times$ & $\times$ & $\times$ \\ +\tt\bsl tableofcontents & $\times$ & $\times$ & $\times$ & \\ +\tt\bsl listoffigures & $\times$ & $\times$ & $\times$ & \\ +\tt\bsl listoftables & $\times$ & $\times$ & $\times$ & \\ +\tt\bsl thebibliography & $\times$ & $\times$ & $\times$ & \\ +\tt\bsl theindex & $\times$ & $\times$ & $\times$ & \\ +\tt\bsl abstract & $\times$ & $\times$ & $\times$ & \\ +\tt\bsl part & $\times$ & $\times$ & $\times$ & \\ +\tt\bsl chapter & & $\times$ & $\times$ & \\ +\tt\bsl appendix & & $\times$ & $\times$ & \\ +\tt\bsl cc & & & & $\times$ \\ +\tt\bsl encl & & & & $\times$ \\ +\tt\bsl ps@headings & & & & $\times$ \\ +\end{tabular} +\caption{macros that need to be redefined for the four standard document + styles.} +\label{macros} +\end{center} +\MakeShortVerb{\|} +\end{table*} + +As an example of the way the macros have to be redefined, the +redefinition of |\tableofcontents| is shown in figure~\ref{content}. +\begin{figure*}[htb] +\begin{verbatim} +\@ifundefined{contentsname} + {\def\tableofcontents + {\section*{\contentsname + \@mkboth{\uppercase\expandafter{\contentsname}} + {\uppercase\expandafter{\contentsname}} + } + \@starttoc{toc} + } + } + {} +\end{verbatim} +\caption{An example of redefining a command}\label{content} +\end{figure*} + +The standard styles can be distinguished by checking the existence of +the macros |\chapter| (not in \file{article} and \texttt{letter}) and +|\opening| (only in \texttt{letter}). The result of these checks is +stored in the macro |\doc@style|. When |\doc@style| already exists +(which is the case when for instance \file{artikel1.sty} is +used~\cite{BEP}) it is not superseded (see figure~\ref{maindoc}). + +\begin{figure*}[htb] +\begin{verbatim} +\@ifundefined{doc@style} + {\def\doc@style{0} + \@ifundefined{opening} + {\@ifundefined{chapter} + {\def\doc@style{1}} + {\def\doc@style{2}} + }{\def\doc@style{3}} + }{\relax} +\end{verbatim} +\caption{Determining the main document style} +\label{maindoc} +\end{figure*} + +\section{Implementing a language specific document-style option file} + +To illustrate the way a language specific file can be implemented the +file \file{dutch.sty} is discussed here. Note that not all of the code +containde in the file \file{dutch.sty} is shown here, only those parts +that are of interest for the scope of this article are included. If +the reader would like to see the complete code, he can print all files +in the \babel{} system, using the file \file{doc.sty}, described by +Frank Mittelbach in~\cite{docsty}. + +\subsection{Compatibilty with plain \TeX} +The file \file{german.tex}~\cite{HP} was written in such a way that it +can be used by both plain \TeX\ users and \LaTeX\ users. This seemed a +good idea, so all files in the \babel{} system can be processed by +both plain \TeX\ and \LaTeX. But some of the ``useful hacks'' from +\LaTeX\ are used, so for a plain \TeX\ user they have to be defined. +For this purpose the format is checked at the start of a language +specific file. If the format is \texttt{plain} an extra file, called +\file{latexhax.sty} is read. +\begin{figure*}[htb] +\begin{verbatim} +{\def\format{plain} +\ifx\fmtname\format + \expandafter\ifx\csname @ifundefined\endcsname\relax + \gdef\next{latexhax.sty} + \aftergroup\input\aftergroup\next + \fi +\fi} +\end{verbatim} +\caption{Conditonal loading of \file{latexhax.sty}} +\end{figure*} + +This file should be read only once, so another check is done on the +existence of one of the commands defined there. + +A new group is started to keep the definition of the macro +|\format|, which is used in the following if statement, local. +When the current format turns out to be plain \TeX\ the file +\file{latexhax.sty} has to be read. But the definitions in that file +should remain valid after the group is closed. This could be +accomplished by making all definitions \texttt{global}, but another +solution is to tell \TeX\ to process the file \file{latexhax.sty} +\emph{after} the current group has been closed. The command +|\aftergroup| puts the next token on a list to be processed after +the group. + +\subsection{Switching to the Dutch language} +In section~\ref{lang-switch} the names of macros needed to switch to a +language have been described. In figure~\ref{switchdutch} these macros +and their definition are shown for the Dutch language. +\begin{figure*}[htb] +\begin{verbatim} +\def\captionsdutch{\gdef\refname{Referenties}% + \gdef\abstractname{Samenvatting}% + \gdef\bibname{Bibliografie}% + ... + \gdef\pagename{Pagina}} + +\def\datedutch{% + \gdef\today{\number\day~\ifcase\month\or + januari\or februari\or maart\or april\or + mei\or juni\or juli\or augustus\or + september\or oktober\or november\or december\fi + \space \number\year}} +\begingroup \catcode`\"\active + +\gdef\extrasdutch{% + \global\let\dospecials\dutch@dospecials + \global\let\@sanitize\dutch@sanitize + \catcode`\"\active + \gdef"{\protect\dutch@active@dq} + \gdef\"{\protect\@umlaut} +}\endgroup + +\def\noextrasdutch{% + \catcode`\"12 + \global\let\dospecials\original@dospecials + \global\let\@sanitize\original@sanitize + \global\let\"\dieresis +} +\end{verbatim} +\caption{The macros needed to switch to the Dutch language} +\label{switchdutch} +\end{figure*} + +The definitions of |\captionsdutch| and |\datedutch| are pretty +straightforward and need not be discussed. The macro |\extrasdutch| +will be discussed in some more detail. + +First, because for Dutch (as well as for German) the \texttt{"} +character is made active, the \LaTeX\ macros |\dospecials| and +|\@sanitize| have to be redefined to include this character as well. +The new definitions are implemented as two special commands, so we +globally |\let| the originals to their new versions. Then the +\texttt{"} character is made active and is defined. Then, to prevent +an error when |\"| appears in a moving argument, the macro |\"| is +redefined and made robust. All this is done inside a group to keep the +category code change for the \texttt{"} character local. + +The macro |\extrasdutch| has a counterpart, |\noextrasdutch|, that +cancels the extra definitions made by |\extrasdutch|. It changes the +|\catcode| of the \texttt{"} character back to `other' and globally +|\let|s the macros |\dospecials| and |\@sanitize| to their original +definitions. The original definition of |\"| is restored as well. + +In figure~\ref{specials} the code needed to redefine |\dospecials| and +|\@makeother| is shown. +\begin{figure*}[htb] +\begin{verbatim} +\begingroup + \def\do{\noexpand\do\noexpand}% + \xdef\dutch@dospecials{\dospecials\do\"}% + \expandafter\ifx\csname @sanitize\endcsname\relax +% do nothing if \@sanitize is undefined... + \else + \def\@makeother{\noexpand\@makeother\noexpand}% + \xdef\dutch@sanitize{\@sanitize\@makeother\"}% + \fi +\endgroup + +\global\let\original@dospecials\dospecials +\global\let\original@sanitize\@sanitize +\end{verbatim} +\caption{Code needed for the redefinition of {\tt\bsl dospecials} and + {\tt\bsl @makeother}.} +\label{specials} +\end{figure*} + +\subsection{An extra active character} + +All the code disccussed sofar is necessary because we need an extra +active character. This character is then used as indicated in +table~\ref{dutch-quote}. One of the reasons for this is that in the +Dutch language a word with an umlaut can be hyphenated just before the +letter with the umlaut, but the umlaut has to disappear if the word is +broken between the previous letter and the accented letter. + +\begin{table*}[htb] +\centering +\begin{tabular}{lp{8cm}} +\verb="a= & \verb=\"a= which hyphenates as \verb=-a=; + also implemented for the other letters. \\ +\verb="|= & disable ligature at this position. \\ +\verb="-= & an explicit hyphen sign, allowing hyphenation + in the rest of the word. \\ +\verb="`= & lowered double left quotes (see example below).\\ +\verb="'= & normal double right quotes. \\ +\verb=\-= & like the old \verb=\-=, but allowing hyphenation + in the rest of the word. +\end{tabular} +\caption{The extra definitions made by \file{dutch.sty}} +\label{dutch-quote} +\end{table*} + +In~\cite{treebus} the quoting conventions for the Dutch language are +discussed. The preferred convention is the single-quote Anglo-American +convention, i.e. `This is a quote'. An alternative is the slightly +old-fashioned Dutch method with initial double quotes lowered to the +baseline, \dlqq This is a quote'', which should be typed as +\texttt{"`This is a quote"'}. + +\subsubsection{Supporting macro definitions} + +The definition of the active \texttt{"} character needs a couple of +support macros. The macro |\allowhyphens| is used make hyphenation of +word possible where it otherwise would be inhibited by \TeX. Basically +its definition is nothing more than |\nobreak \hskip 0pt plus 0pt|. +\begin{verbatim} +\gdef\allowhyphens{\penalty\@M \hskip\z@skip} +\end{verbatim} + +Then a macro is defined to lower the Dutch left double quote to the +same level as the comma. It prepares a low double opening quote in box +register~0. This macro was copied form \file{german.tex}. +\begin{verbatim} +\gdef\set@low@box#1{% + \setbox\tw@\hbox{,} \setbox\z@\hbox{#1} + \dimen\z@\ht\z@ \advance\dimen\z@ -\ht\tw@ + \setbox\z@\hbox{\lower\dimen\z@ \box\z@} + \ht\z@\ht\tw@ \dp\z@\dp\tw@} +\end{verbatim} +The macro |\set@low@box| is used to define low opening quotes. Since +it may be used in arguments to other macros it needs to be protected. +\begin{verbatim} +\gdef\dlqq{\protect\@dlqq} +\gdef\@dlqq{{% + \ifhmode + \edef\@SF{\spacefactor\the\spacefactor} + \else + \let\@SF\empty + \fi + \leavevmode\set@low@box{''} + \box\z@\kern-.04em\allowhyphens\@SF\relax}} +\end{verbatim} +For reasons of symmetry we also define |"'|. This command is defined +similar to |\dlqq|, except that the quotes aren't lowered to the +baseline. +\begin{verbatim} +\gdef\@drqq{{% + \ifhmode + \edef\@SF{\spacefactor\the\spacefactor} + \else + \let\@SF\empty + \fi + ''\@SF\relax}} +\end{verbatim} +The original double quote character is saved in the macro |\dq| to +keep it available. +\begin{verbatim} +\begingroup \catcode`\"12 + \gdef\dq{"} +\endgroup +\end{verbatim} +The original definition of |\"| is stored as |\dieresis|. The resason +for this is that if a font with a different encoding scheme is used +the definition of |\"| might not be the plain \TeX\ one. +\begin{verbatim} +\global\let\dieresis\" +\end{verbatim} + +In the Dutch language vowels with a dieresis or umlaut accent are +treated specially. If a hyphenation occurs before a vowel-plus-umlaut, +the umlaut should disappear. To be able to do this, the hyphenation +break behaviour for the five vowels, both lowercase and uppercase, +could be defined first in terms of |\discretionary|. But this results +in a large |\if|-construct in the definition of the active |"|. + +As both Knuth and Lamport have pointed out, a user should not use |"| +when he really means something like |''|. For this reason no +distinction is made between vowels and consonants. Therefore one +macro, |\@umlaut|, specifies the hyphenation break behaviour for all +letters. +\begin{verbatim} +\def\@umlaut#1{% + \allowhyphens% + \discretionary{-}{#1}{\dieresis #1}% + \allowhyphens} +\end{verbatim} + +The last support macro to be defined is |\dutch@active@dq|. +\begin{verbatim} +\gdef\dutch@active@dq#1{% + \if\string#1`\dlqq{}% +\else\if\string#1'\drqq{}% +\else\if\string#1-\allowhyphens-\allowhyphens% +\else\if\string#1|\discretionary{-}{}{\kern.03em}% +\else\if\string#1i\allowhyphens\discretionary{-}{i}{\dieresis\i}% + \allowhyphens% +\else\if\string#1j\allowhyphens\discretionary{-}{j}{\dieresis\j}% + \allowhyphens% +\else \@umlaut{#1}\fi\fi\fi\fi\fi\fi} +\end{verbatim} +The macro reads the next token and performs some appropriate action. +If no special action is defined, it will produce an umlaut accent on +top of argument~1. + +The last definition needed is a replacement for |\-|. The new version +of |\-| should indicate an extra hyphenation position, while allowing +other hyphenation positions to be generated automatically. The +standard behaviour of \TeX\ in this respect is very unfortunate for +languages such as Dutch and German, where long compound words are +quite normal and all one needs is a means to indicate an extra +hyphenation position on top of the ones that \TeX\ can generate from +the hyphenation patterns. +\begin{verbatim} +\def\-{\allowhyphens\discretionary{-}{}{}\allowhyphens} +\end{verbatim} + +\subsection{Activating the definitions} + +The last action that should be performed by a language specific file, +is activating it's definitions. Before doing that the macro +|\originalTeX| should be definined. +\begin{verbatim} +\@ifundefined{originalTeX}{\let\originalTeX\relax}{} +\end{verbatim} + +Also, the macro |\l@|\meta{language} should be defined. If it hasn't +already been defined, this means that no hyphenation patterns were +loaded for this language. +% This means that \emph{no} hyphenation will take place +\begin{verbatim} +\@ifundefined{l@dutch}{\addlanguage{dutch}}{} +\selectlanguage{dutch} +\end{verbatim} + +\section{Conclusion} + +In this article a system of document-style option files has been +presented that supports the multilingual use of \LaTeX. Some of the +code involved has been discussed. The actual files will me made +available through the international networks. They will be stored in +the fileserver in the Netherlands (address: +\texttt{LISTSERV@HEARN.BITNET}), the file \file{babel readme} will +explain what you need to get to be able to use the system. The system +was developed using the \Lopt{doc} option, so the files available are +fully documented. + +\begin{thebibliography}{9} + \bibitem{DEK} Donald E. Knuth, + \emph{The \TeX book}, Addison-Wesley, 1986. + \bibitem{LLbook} Leslie Lamport, + \emph{\LaTeX, A document preparation System}, Addison-Wesley, 1986. + \bibitem{treebus} K.F. Treebus. + \emph{Tekstwijzer, een gids voor het grafisch verwerken van tekst.} + SDU Uitgeverij ('s-Gravenhage, 1988). A Dutch book on layout + design and typography. + \bibitem{HP} Hubert Partl, + \emph{German \TeX}, \emph{TUGboat} 9 (1988) \#1, p.~70--72. + \bibitem{LLth} Leslie Lamport, + in: \TeXhax\ Digest, Volume 89, \#13, 17 februari 1989. + \bibitem{docsty}Frank Mittelbach, + \emph{The \Lopt{doc}-option}, + \emph{TUGboat} 10 (1989) \#2, p.~245--273. + \bibitem{BEP}Johannes Braams, Victor Eijkhout and Nico Poppelier, + \emph{The development of national \LaTeX\ styles}, + \emph{TUGboat} 10 (1989) \#3, p.~401--406. + \bibitem{ilatex}Joachim Schrod, + \emph{International \LaTeX\ is ready to use}, + \emph{TUGboat} 11 (1990) \#1, p.~87--90. +\end{thebibliography} + +\end{document} diff --git a/Master/texmf-dist/doc/generic/babel/tb1401.tex b/Master/texmf-dist/doc/generic/babel/tb1401.tex new file mode 100644 index 00000000000..7d8b0903592 --- /dev/null +++ b/Master/texmf-dist/doc/generic/babel/tb1401.tex @@ -0,0 +1,266 @@ +% \iffalse meta-comment +% +% Copyright 1989-2005 Johannes L. Braams and any individual authors +% listed elsewhere in this file. All rights reserved. +% +% This file is part of the Babel system. +% -------------------------------------- +% +% It may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.3 +% of this license or (at your option) any later version. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3 or later is part of all distributions of LaTeX +% version 2003/12/01 or later. +% +% This work has the LPPL maintenance status "maintained". +% +% The Current Maintainer of this work is Johannes Braams. +% +% The list of all files belonging to the Babel system is +% given in the file `manifest.bbl. See also `legal.bbl' for additional +% information. +% +% The list of derived (unpacked) files belonging to the distribution +% and covered by LPPL is defined by the unpacking scripts (with +% extension .ins) which are part of the distribution. +% \fi +%%% ==================================================================== +%%% @TeX-file{ +%%% author = "Johannes L. Braams", +%%% version = "1.02", +%%% date = "06 January 1997", +%%% time = "23:18:11 MET", +%%% filename = "tb1401.tex", +%%% address = "TeXniek, +%%% Kersengaarde 33 +%%% 2723 BP Zoetermeer +%%% The Netherlands", +%%% telephone = "+31 79 352 28 19", +%%% FAX = "+31 70 343 23 95", +%%% checksum = "33086 238 1209 9472", +%%% email = "babel@braams.cistron.nl (Internet)", +%%% codetable = "ISO/ASCII", +%%% keywords = "", +%%% supported = "yes", +%%% abstract = "", +%%% docstring = "The update article on babel that appeared +%%% in TUGboat Volume 14 No 1. +%%% +%%% The checksum field above contains a CRC-16 +%%% checksum as the first value, followed by the +%%% equivalent of the standard UNIX wc (word +%%% count) utility output of lines, words, and +%%% characters. This is produced by Robert +%%% Solovay's checksum utility.", +%%% } +%%% ==================================================================== +\NeedsTeXFormat{LaTeX2e} +\IfFileExists{ltugboat.cls}{% + \documentclass{ltugboat} + \def\rtitlex{TUGboat, Volume 14 (1993), No. 1} + \def\midrtitle{} + \def\PrelimDraftfooter{} + \let\TBmaketitle\maketitle + \setcounter{page}{60} + }{% + \documentclass{article} + \newcommand\address[1]{} + \newcommand\netaddress[1]{} + \newcommand\TUB{\textsl{TUGboat\/}} + \newcommand\TeXhax{\TeX hax} + \newcommand{\plain}{\texttt{plain}}} +\usepackage{shortvrb} +\MakeShortVerb{\|} +% +\newcommand{\file}[1]{\texttt{#1}} +\newcommand{\Lopt}[1]{\textsf{#1}} +\newcommand{\babel}{\textsf{babel}} +\makeatletter +% ------------------------------------------------- +% Definitions copied from doc.sty by FMi +% ------------------------------------------------- +{\obeyspaces% +\gdef\meta{\begingroup\obeyspaces% +\def {\egroup\space\hbox\bgroup\it}\m@ta}} +\def\m@ta#1{\hbox\bgroup$\langle$\it#1\/$\rangle$\egroup\endgroup} +% +{\catcode`\|=\z@ \catcode`\\=12|gdef|bslash{\}} +% +\makeatother +\newcommand{\bsl}{\protect\bslash} + + +\begin{document} +\title{An update on the \babel\ system} +\author{Johannes Braams} +\address{% + \TeX niek\\ + Kersengaarde 33\\ + 2723 BP Zoetermeer\\ + The Netherlands} +\netaddress{babel@braams.cistron.nl} +\date{06 January 1997 \\ + Version 1.02} +\maketitle + +\begin{abstract} + This article describes the changes that have been made to the + \babel\ system, since the article describing the system appeared in + \TUB\ Volume 12, number 2. This article announces the release of a + new version of the \babel\ system. +\end{abstract} + +\section{Introduction} + +Since the publication of the \babel\ system in \TUB~\cite{bab} several +changes have occurred. With the new release of \LaTeX\ -- which +appeared at the end of 1991 -- the internationalised version I\LaTeX, +prepared by Joachim Schrod~\cite{ilatex} was withdrawn. But some of +its functionality was still needed, so a modification of the \babel\ +system was necessary. + +Besides this a couple of bugs were reported and had to be fixed. The +major problem was that the language changing commands were not +`local', they contained global definitions. In the current version +these commands obey grouping correctly. + +Some macros that formerly were in language-specific files have been +moved to the core of the system, because they are being used in +several language-specific files. + +\section{Changes to the core of \babel} + +The changes to the core of the \babel\ system are the most extensive. + +\subsection*{{\tt\bsl selectlanguage}} +The \babel\ user-command |\selectlanguage| now also accepts a control +sequence as its argument. This was included to provide compatibility +for users who were used to the syntax of the original +\file{german.tex}, but wanted to switch to \babel. The escape +character is `peeled off' and the name of the control sequence is then +used as the name of the language to select. + +Another change to the |\selectlanguage| macro is that it now stores +the name of the current language in the control sequence +|\languagename|. The contents of this control sequence could be tested +in the following way: + +\begin{verbatim} + \edef\tmp{\string english} + \ifx\languagename\tmp + ... + \else + ... + \fi +\end{verbatim} + +The construction with |\string| is necessary because +|\languagename| returns the name with characters of category code +\texttt{12} (other). + +\subsection*{Saving macro definitions} + +A new way of handling macros that are temporarily \emph{re}defined was +developed by Bernd Raichle and included in the core of the \babel\ +system. Two new macros, for use in the language-specific files have +been introduced.\\ +These macros, |\babel@savevariable|\meta{register} and +|\babel@save|\meta{macro}, append code to |\originalTeX|. This code +restores the value (or meaning) of what was saved when |\originalTeX| +was executed. + +\subsection*{Special characters} + +Some of the language-specific files introduce one or more characters +that are special in some way. Such characters have to be added to +|\dospecials| (and |\@sanitize| too for \LaTeX) whenever their special +meaning is activated. But, they may have to be removed again when +another language, which doesn't use them, is in effect. + +To this end two new control sequences, that are meant to be used in +the language-specific files are introduced. They are +|\babel@add@special| and |\babel@remove@special| and perform the +necessary tasks. + +\subsection*{Additional facilities} + +A specific request from Joachim Schrod for \babel, was the possibility +to extend the definition of a control sequence on the fly. It should, +for instance, be possible that the user adds a macro of his own to the +definition of |\extrasenglish|. + +This feature is now provided by the macro\\ + |\addto{|\meta{control sequence}|}{|\meta{\TeX\ code}|}|. + It is now used throughout the +language-specific files to build the macros |\extras|\meta{lang} and +|\noextras|\meta{lang}. + +The support macros |\allowhyphens|,\\ |\set@low@box| and |\save@sf@q| +have been moved from the language-specific files to the core of the +\babel\ system. + +\subsection{The files} + +In the previous release a file called \file{latexhax.com} was +provided. This was needed to provide some macros normally defined by +\LaTeX, to \plain~\TeX\ users. The need for this file has been removed +in the current release of the \babel\ system. + +In the previous release of the system, four different files were +provided (all derived from \file{hyphen.doc} that were needed for +different combinations of versions of \TeX\ and \file{plain.tex} or +\file{lplain.tex}. This has been changed. In the current version only +two different files are derived from \file{hyphen.doc}. They are +\file{babel.switch} and \file{babel.hyphen}.\\ +The file \file{babel.switch} is needed for people who can't build a +new format or don't have \TeX\ version 3. The file \file{babel.hyphen} +should be loaded into the format by ini\TeX. It provides the macros +from \file{babel.switch}, but additionally it reads the file +\file{language.dat}, which specifies the languages for which +hyphenation patterns should be loaded. + +In the previous release the file \file{babel.com} contained +redefinitions for a lot of \LaTeX\ macros to replace texts with +control sequences. This has been removed, because it is no longer +necessary for releases of \LaTeX\ dated december 1991 or later. Those +who still have an older release of \LaTeX\ can produce a special +version of \file{babel.com} by including the docstrip option +\meta{names} when stripping the file \file{babel.doc}. + +With the release of the new version of Frank Mittelbach's \texttt{doc} +package the stripped files are no longer distributed. The distribution +of babel now includes a file \file{install.babel} with which you can +produce them (give the command \file{tex install.babel}). + +\section{Changes to the language specific files} + +Bernd Raichle has invented a solution for things like |\char"45| +when the |"| is active. His solution (from german 2.3e) has been +included in germanb and is copied for other language specific files +that have an active |"|. + +A few terms have been added to the |\captions|\meta{...} macros, +again following \file{german.tex}. These terms are |\prefacename|, +|\seename| and |\seealsoname|. I don't have the correct +translations for all languages yet, but that will be repaired as soon +as someone provides them to me. + +For the dutch language the behaviour of the active double quote has +been slightly modified. It has been noted that there is a difference +between |"e|, where a `trema' should be produced and |\"u|, where we +should get an `umlaut'. The difference between the two is that the +`trema' should disappear at a hyphenation point, whereas the `umlaut' +should not. + +\begin{thebibliography}{9} + \bibitem{bab} Johannes Braams, + \emph{Babel, a multilingual style-option system for use with + \LaTeX's standard document styles}, + \emph{TUGboat} 12 (1991) \#2, p.~291--301. + \bibitem{ilatex}Joachim Schrod, + \emph{International \LaTeX\ is ready to use}, + \emph{TUGboat} 11 (1990) \#1, p.~87--90. +\end{thebibliography} +\end{document} diff --git a/Master/texmf-dist/doc/generic/babel/tb1604.tex b/Master/texmf-dist/doc/generic/babel/tb1604.tex new file mode 100644 index 00000000000..0538716f82a --- /dev/null +++ b/Master/texmf-dist/doc/generic/babel/tb1604.tex @@ -0,0 +1,448 @@ +% \iffalse meta-comment +% +% Copyright 1989-2005 Johannes L. Braams and any individual authors +% listed elsewhere in this file. All rights reserved. +% +% This file is part of the Babel system. +% -------------------------------------- +% +% It may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.3 +% of this license or (at your option) any later version. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3 or later is part of all distributions of LaTeX +% version 2003/12/01 or later. +% +% This work has the LPPL maintenance status "maintained". +% +% The Current Maintainer of this work is Johannes Braams. +% +% The list of all files belonging to the Babel system is +% given in the file `manifest.bbl. See also `legal.bbl' for additional +% information. +% +% The list of derived (unpacked) files belonging to the distribution +% and covered by LPPL is defined by the unpacking scripts (with +% extension .ins) which are part of the distribution. +% \fi +%%% ==================================================================== +%%% @TeX-file{ +%%% author = "Johannes", +%%% version = "1.0", +%%% date = "05 December 1995", +%%% time = "22:43:54 MET", +%%% filename = "tbstatus.tex", +%%% address = "TeXniek, +%%% Kersengaarde 33 +%%% 2723 BP Zoetermeer +%%% The Netherlands", +%%% telephone = "+31 79 352 28 19", +%%% FAX = "+31 70 343 23 95", +%%% checksum = "", +%%% email = "babel@braams.cistron.nl (Internet)", +%%% codetable = "ISO/ASCII", +%%% keywords = "", +%%% supported = "yes", +%%% abstract = "", +%%% docstring = "This article is derived from my +%%% presentation at the EuroTeX'95 conference +%%% and will appear in a future issue of +%%% TuGboat. +%%% +%%% The checksum field above contains a CRC-16 +%%% checksum as the first value, followed by the +%%% equivalent of the standard UNIX wc (word +%%% count) utility output of lines, words, and +%%% characters. This is produced by Robert +%%% Solovay's checksum utility.", +%%% } +%%% ==================================================================== +\NeedsTeXFormat{LaTeX2e} +\IfFileExists{ltugboat.cls}{% + \documentclass{ltugboat} + \def\rtitlex{TUGboat, Volume 16 (1995), No. 4} + %\def\midrtitle{} + %\def\PrelimDraftfooter{} + %\let\TBmaketitle\maketitle + %\SelfDocumenting + \setcounter{page}{1} + }{% + \documentclass{article} + \newcommand\address[1]{} + \newcommand\netaddress[1]{} + \newcommand\TUB{\textsl{TUGboat\/}} + \newcommand\TeXhax{\TeX hax}} +\usepackage{shortvrb} +\MakeShortVerb{\|} + +\newcommand\figrule{\kern3pt\hrule\kern3pt} +\newcommand*{\file}[1]{\texttt{#1}} +\newcommand*{\cls}[1]{\texttt{#1}} +\newcommand*{\pkg}[1]{\texttt{#1}} +\newcommand*{\Lenv}[1]{\textsf{#1}} +\newcommand*{\opt}[1]{\textsf{#1}} +\newcommand*{\meta}[1]{\mbox{$\langle$\it #1\/$\rangle$}} +\newcommand*\babel{\textsf{babel}} +\newcommand*\bs{\char'134} +\let\osn\oldstylenums + +\begin{document} + +\title{The status of \babel} +\author{Johannes L. Braams} +\address{% + \TeX niek\\ + Kersengaarde 33\\ + 2723 BP Zoetermeer\\ + The Netherlands} +\netaddress{babel@braams.cistron.nl} +\date{september 1995} +\maketitle + +\begin{abstract} + In this article I will give an overview of what has happened to + \babel\ lately. First I will briefly describe the history of \babel; + then I will introduce the concept of `shorthands'. New ways of + changing the `language' have been introduced and \babel\ can now + easily be adapted for local needs. Finally I will discuss some + compatibility issues. +\end{abstract} + +\section{A brief history of \babel} + +The first ideas of developing a set of macros to support typesetting +documents with \TeX\ in languages other than English developed around +the time of the Euro\TeX\ conference in Karls\-ruhe (\osn{1989}). Back +then I had created support for typesetting in Dutch by stealing +\file{german.tex} (by Hubert Partl c.s.) and modifying it for Dutch +conventions. This worked, but I was not completely satisfied as I hate +the duplication of code. Soon after that I found that more `copies' of +\file{german.tex} existed to support other languages. This led me to +the idea of creating a package that combined these kind of language +support packages. It would have to consist of at least two `layers': +all the code the various copies of \file{german.tex} had in common in +one place, loaded only once by \TeX, and a set of files with the code +needed to support language specific needs. During the Karlsruhe +conference the name `\babel' came up in discussions I had. It seemed +an appropriate name and I sticked to it. + +\begin{table}[hbt] + \begin{center} + \begin{tabular}{l} + \hline + First ideas at Euro\protect\TeX'89 Karlsruhe\\ + First published in TUGboat 12--2\\ + Update article in TUGboat 14--1\\ + Presentation of new release at Euro\protect\TeX'95\\ + \hline + \end{tabular} + \caption{A brief history of \babel} + \end{center} +\end{table} + +After the conference I started to work on ``\babel, a multilingual +style-option system for use with \LaTeX' standard document styles''. +The first release with support for about half a dozen languages +appeared in the first half of \osn{1990}. In TUGboat volume \osn{12} +number \osn{2} an article appeared describing \babel. Soon thereafter +people started contributing translations for the `standard terms' for +languages not yet present in \babel. The next big update appeared in +\osn{1992}, accompanied by an article in TUGboat volume \osn{14} +number \osn{1}. The main new features were that an interface was added +to `push' and `pop' macro definitions and values of registers. Also +some code was moved from language files to the core of \babel. In +\osn{1994} some changes were needed to get \babel\ to work with +\LaTeXe. As it turned out a lot of problems were still unsolved, +amongst which the incompatibility between \babel\ and the use of +\textsc{T}\osn{1} encoded fonts was most important. + +\noindent Therefore \babel\ version \osn{3}.\osn{5} has appeared. +It's main features are: + +\begin{itemize} +\item complete rewrite of the way active characters are dealt with; +\item new ways to switch the language; +\item A language switch is also written to the \file{.aux} file; +\item possibility to `configure' the language specific files; +\item extended syntax of \file{language.dat}; +\item compatibility with both the \pkg{inputenc} and\\ + \pkg{fontenc} packages; +\item new languages (breton, estonian, irish, scottish, lower and + upper sorbian). +\end{itemize} + +\noindent These changes are described in the remainder of this article. + +\section{Shorthands and active characters} + +During \babel's lifetime the number of languages for which one or more +characters were made active has grown. Until \babel\ release +\osn{3}.\osn{4} this needed a lot of duplication of code for each +extra active character. A situation with which I obviously was not +very happy as I hate the duplication of code. Another problematic +aspect of the way \babel\ dealt with active characters was the way +\babel\ made it possible to still use them in the arguments of cross +referencing commands. \textsf{Babel} did this with a trick that +involves the use of |\meaning|. This resulted in the fact that the +argument of |\label| was no longer expanded by \TeX. + +Because of these problems I set out to find a different implementation +of active characters. A starting point was that a character that is +made active should remain active for the rest of the document; only +it's definition should change. During the development of this new +implementation it was suggested in discussions I had within the +\LaTeX3 team to devise a way to have `different kinds' of active +characters. Out of this discussion came the current `shorthands'. + +\begin{quote} + \textsl{A shorthand is a sequence of one or two characters that + expands to arbitrary \TeX\ code.} +\end{quote} + +These shorthands are implemented in such a way that there are three +levels of shorthands: + +\begin{itemize} +\item user level +\item language level +\item system level +\end{itemize} + +\noindent Shorthands can be used for different kinds of things: +\begin{itemize} +\item the character \verb=~= is redefined by \babel\ as a one + character, system level shorthand; +\item In some languages shorthands such as \verb="a= are defined to be + able to hyphenate the word; +\item In some languages shorthands such as \verb=!= are used to insert + the right amount of white space. +\end{itemize} + +When you want to use or define shorthands you should keep the +following in mind: +\begin{itemize} +\item User level takes precedence over language level; +\item Language level takes precedence over system level; +\item One character shorthands take precedence over two character + shorthands; +\item Shorthands are written unexpanded to \file{.aux} files. +\end{itemize} + +\noindent In table~\ref{tab:sh-ov} an overview is given of the +various shorthand characters that are used for different languages. + +\begin{table}[ht] + \begin{center} + \begin{tabular}{ll} + \hline + \texttt{\char'176} & system, catalan, estonian, galician, spanish \\ + \texttt{:} & breton, francais, turkish \\ + \texttt{;} & breton, francais \\ + \texttt{!} & breton, francais, turkish \\ + \texttt{?} & breton, francais \\ + \texttt{"} & catalan, danish, dutch, estonian, finnish\\ + & galician, german, polish, portuguese, slovene\\ + & spanish, upper~sorbian\\ + \texttt{`} & catalan (optional)\\ + \texttt{'} & catalan, galician, spanish (optional)\\ + \texttt{\char'136} & esperanto\\ + \texttt{=} & turkish \\ + \hline + \end{tabular} + \caption{Overview of shorthands}\label{tab:sh-ov} + \end{center} +\end{table} + +Note that the acute and grave characters are only used as shorthand +characters when the options \opt{activeacute} and \opt{activegrave} +are used. + +On the user level three additional commands are available to deal with +shorthands: +\begin{description} +\item[\texttt{\bs useshorthands}] This command takes one argument, the + character that should become a shorthand character. +\item[\texttt{\bs defineshorthand}] This command takes two arguments, + the first argument being the shorthand character sequence, the + second argument being the code the shorthand should expand to. +\item[\texttt{\bs languageshorthands}] This last command (which takes + one argument, the name of a language) can be used to switch to the + shorthands of another language, \emph{not} switching other language + facilities. Of course this only works if both languages were + specified as an option when loading the package \babel. +\end{description} + +On the level of the language definition files four new commands are +introduced to interface with the shorthand code. +\begin{description} +\item[\texttt{\bs initiate@active@char}] This command is used to tell + \LaTeX\ that the character in its argument is going to be used as a + shorthand character. It makes the character active, but lets it + expand to its non-active self. +\item[\texttt{\bs bbl@activate}] This can be used to switch + the expansion of an active character to its active code. +\item[\texttt{\bs bbl@deactivate}] This command resets the expansion + of an active character to expand to its non-active self. +\item[\texttt{\bs declare@shorthand}] This command is the internal + command for (and also used by) |\defineshorthand|; it has + \emph{three} arguments: the first argument is the name of the + language for which to define the shorthands, the other two are the + same as for |\defineshorthand|. +\end{description} + +One of the goals of the introduction of shorthands was to reduce the +amount of code needed in the language definition files to support +active characters. This goal has been reached; when a language needs +the double quote character (\texttt{"}) to be active all one has to +put into the language definition file are code fragments such as shown +in figure~\ref{fig:dq}. + +\begin{figure}[ht] + \figrule +\begin{verbatim} +\initiate@active@char{"} +\addto\extrasdutch{% + \languageshorthands{dutch}% + \bbl@activate{"}} +... +\declare@shorthand{dutch}{"`}{% + \textormath{\quotedblbase{}}% + {\mbox{\quotedblbase}}} +... +\end{verbatim} + \figrule + \caption{Example of defining a shorthand}\label{fig:dq} +\end{figure} + +Apart from removing a lot of code from language definition files by +introducing shorthands, some other code has been moved to +\file{babel.def} as well. In some language definition files it was +necessary to provide access to glyphs that are not normally easily +available (such as the |\quotedblbase| in the example in +figure~\ref{fig:dq}. Some of these glyphs have to be `constructed' for +\textsc{ot}\osn{1} encoding while they are present in +\textsc{t}\osn{1} encoded fonts. Having all such (encoding dependent) +code together in one place has the advantage these glyphs are the same +for all the language definition files of \babel; also maintenance is +easier this way. + +\section{Switching the language} + +Until release \osn{3}.\osn{5} \babel\ only had \emph{one} command to +switch between languages: |\selectlanguage|. It takes the name of the +language to switch to as an argument; the command is used as a +declaration and always switches everything\footnote{that means the + hyphenation pattern, the \texttt{\bs lefthyphenmin} and \texttt{\bs + righthyphenmin} parameters, the translations of the words, the + date and the specials}. Two new ways to switch to another language +have now been introduced. + +\begin{description} +\item[\texttt{\bs selectlanguage}] This command was available in + \babel\ from the start. +\item[\texttt{\bs foreignlanguage}] This new command is meant to be + used when a short piece of text (such as a quote) comes from another + language. This text should not be longer than \emph{one} paragraph. + For the text the hyphenation patterns and the specials are switched. + The command has two arguments: the name of the language and the text + from that language. +\item[environment `otherlanguage'] This new environment switches the + same aspects as the command |\selectlanguage| does. The difference + is that the switches are local to the environment whereas one either + has to use |\selectlanguage| in a group to get the same effect or + one has to issue multiple |\selectlanguage| commands. Also the + environment is one of the things needed to enable the development of + language definition files that support right-to-left typesetting. +\end{description} + +An aspect of some multilingual documents might be that they have +section titles or figure captions in different languages. For this to +work properly \babel\ now writes some information on the \file{.aux} +file when a language switch from either |\selectlanguage| or the +\Lenv{otherlanguage} environment occurs. \textsf{Babel} nows about +the \file{.toc}, \file{.lof} and \file{.lot} files; if you have added +an extra table of contents you should be aware of this. + +\section{Adapting \babel\ for local usage} + +In the past people have had to find ways to adapt \babel\ to document +classes that have been developed locally (implementing house style for +instance). Some have found ways to that without changing any of the +babel files, others have modified language definition files and have +found themselves having to make these changes each time a new release +of \babel\ is made available\footnote{which doesn't happen too often + \texttt{;-)}.}. It has been suggested to provide an easier way of +doing this. Therefore I have copied the concept of configuration files +from \LaTeXe\ and introduced language configuration files. For each +language definition file that is loaded \LaTeX\ will try to find a +configuration file. Such files have the same name as the language +definition file; except for their extension which has to be +\file{.cfg}. + +\section{Loading hyphenation patterns} + +An important change to the core of \babel\ is that the syntax of +\file{language.dat} has been extended. This was suggested by Bernard +Gaulle, author of the package \pkg{french}. His package supports an +enhanced version of \file{language.dat} in which one can optionally +indicate that a file with a list of hyphenation excpetions has to be +loaded. It is also possible to have more than one name for the same +hyphenation pattern register. + +\begin{figure}[ht] + \figrule +\begin{verbatim} +% File : language.dat +% Purpose : specify which hypenation +% patterns to load while running +% iniTeX +=american +english hyphen.english exceptions.english +=USenglish +french fr8hyph.tex +english ukhyphen.tex +=UKenglish +=british +dutch hyphen.dutch +german hyphen.german +\end{verbatim} + \figrule + \caption{Example of \file{language.dat}}\label{fig:l.d} +\end{figure} + +As you can see in the example of \file{language.dat} in +figure~\ref{fig:l.d}, an equals sign ($=$) on the beginning of a line +now has a significant meaning. It tells \LaTeX\ that the name which +follows the equals sign is to be an alternate name for the hyphenation +patterns that were loaded last. As you probably expect, there is one +exception to this rule: when the first (non-comment) line starts with +an equals sign it will be an alternate name for the \emph{next} +hyphenation patterns that will be loaded. Hence, in the example the +hyphenation patterns stored in the file \file{hyphen.english} will be +known to \TeX\ as: `american', `english' and `USenglish'. You can also +see in figuree~\ref{fig:l.d} that for `english' an extra file is +specified. It will be loaded after \file{hyphen.english} and should +contain some hyphenation exceptions. + +\section{Compatibility with other formats} + +This release of \babel\ has been tested with \LaTeXe; with and +without either of the packages \pkg{inputenc} or \pkg{fontenc}. There +should no longer be any problems using one (or both) of these packages +together with \babel. + +\noindent This release has also been tested with \textsc{Plain}~\TeX, it should +not provide any problems when used with that format. Therefore +\babel~version \osn{3}.\osn{5} should not pose any problems when used +with any format which is based on \textsc{Plain}~\TeX; this has +\emph{not} been tested by me though. Some provisions are made to make +\babel~\osn{3}.\osn{5} work with \LaTeX$\:$\osn{2}.\osn{09}; but not +all features may work as expected as I haven't tested this fully. + +Please note that although it was necessary to copy parts of +\pkg{inputenc} and \pkg{fontenc} this does not mean that you get +\textsc{t}\osn{1} support in \textsc{Plain}~\TeX, simply by adding +\babel. To acheive that much more work is needed. + +\end{document} diff --git a/Master/texmf-dist/doc/generic/babel/todo.txt b/Master/texmf-dist/doc/generic/babel/todo.txt new file mode 100644 index 00000000000..30f0ddc4fb8 --- /dev/null +++ b/Master/texmf-dist/doc/generic/babel/todo.txt @@ -0,0 +1,37 @@ +Things that still need to be done (2001/02/22) : +================================================ + +- Vladimir Volovich suggested to have a babel option mechanism. + This may be implemented using something like: + \languageoption[<option>,<option>,...]{<language>} + (See PR 2814) + +- The language attribute mechanism is not completely mature yet. It is + currently not possible to switch attibutes on and off in the middle + of a document. This restriction might be lifted in a future release. + +- I started work on support for hyphenation patterns depending on + the encoding. So far this only works when loading the pattern file. + The encoding information isn't then subsequently stored as an + attribute for that hyphenation register. + +- An interface is needed to be able to change the definition of + things like \figurename and keep the change over language + switches. (PR3291) + +- Jean-François Mertens <jfm@core.ucl.ac.be> has developped a fully + expandable way of `sanitizing' active characters. It needs thorough + testing by a larger number of users before it could be included in + the ditribution. + +- A suggestion has been made by Ole Laursen <olau@hardworking.dk> to + make the comma active to be used as decimal delimiter instead of the + dot. This could be provided as an option as more European languages + need the comma for that purpose. + +- I have a contribution wich provides support for typesetting the + Serbian language in the Cyrillic alphabet; this is not yet + integrated. + +- I have a contribution with support for the Thai language which also + needs attntion to integrate it with babel
\ No newline at end of file diff --git a/Master/texmf-dist/doc/generic/babel/usage.tex b/Master/texmf-dist/doc/generic/babel/usage.tex new file mode 100644 index 00000000000..1c3573bdb0f --- /dev/null +++ b/Master/texmf-dist/doc/generic/babel/usage.tex @@ -0,0 +1,243 @@ +% \iffalse meta-comment +% +% Copyright 1989-2005 Johannes L. Braams and any individual authors +% listed elsewhere in this file. All rights reserved. +% +% This file is part of the Babel system. +% -------------------------------------- +% +% It may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.3 +% of this license or (at your option) any later version. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3 or later is part of all distributions of LaTeX +% version 2003/12/01 or later. +% +% This work has the LPPL maintenance status "maintained". +% +% The Current Maintainer of this work is Johannes Braams. +% +% The list of all files belonging to the Babel system is +% given in the file `manifest.bbl. See also `legal.bbl' for additional +% information. +% +% The list of derived (unpacked) files belonging to the distribution +% and covered by LPPL is defined by the unpacking scripts (with +% extension .ins) which are part of the distribution. +% \fi +\documentclass[11pt]{article} +\usepackage[american,greek]{babel} +\languageattribute{greek}{polutoniko} +\usepackage{athnum,grmath} +\newcommand{\sg}{\selectlanguage{greek}} +\newcommand{\sa}{\selectlanguage{american}} +\begin{document} +\show\extrasgreek +%\show\extraspolutonikogreek +\selectlanguage{american} + +\title{Writing Greek with the \ttfamily greek\rmfamily\ option of the +\ttfamily babel\rmfamily\ package} +\author{Apostolos Syropoulos\\ + 366, 28th October Str.\\ + GR-671 00 Xanthi, GREECE\\ + e-mail: \texttt{apostolo@platon.ee.duth.gr}} +\date{October 15, 1997} +\maketitle +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Overview} +The \texttt{greek} option of the \texttt{babel} package is an attempt to +make it possible for someone to write Greek text with \LaTeX. The current +version of the \texttt{greek} option supports the \sg polutonik'o \sa\ +accentual system of the Greek language. +Moreover, there is now support for Greek numerals. One can produce easily +valid Greek numerals both in uppercase and lowercase forms, e.g, +\textgreek{\greeknumeral{1997}}\ and \textgreek{\Greeknumeral{1997}}. The +labels in second and fourth level enumerations are lowercase +and uppercase Greek numerals correspondingly. +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Typing Greek Text} +\TeX\ understands only the basic ASCII characters, so it is not possible +to enter directly Greek letters. Instead, someone enters Latin letters +which are mapped to their Greek ``counterparts'' by \TeX. The following +table shows the transliteration employed: +\begin{center} +\begin{tabular}{|lllllllllllll|}\hline +\textgreek{a}& +\textgreek{b}& +\textgreek{g}& +\textgreek{d}& +\textgreek{e}& +\textgreek{z}& +\textgreek{h}& +\textgreek{j}& +\textgreek{i}& +\textgreek{k}& +\textgreek{l}& +\textgreek{m}& +\textgreek{n}\\ +a& b& g& d& e& z& h& j& i& k& l& m& n\\ +\hline +\textgreek{x}& +\textgreek{o}& +\textgreek{p}& +\textgreek{r}& +\textgreek{sv}& +\textgreek{t}& +\textgreek{u}& +\textgreek{f}& +\textgreek{q}& +\textgreek{y}& +\textgreek{w}& +\textgreek{c}& \hbox{ } \\ +x& o& p& r& s& +t& u& f& q& y& w& c& \hbox{ }\\ \hline +\end{tabular} +\end{center} +Please, note that in order to produce the letter \textgreek{sv} in isolation +on has to type \texttt{sv}. This feature is due to the strong ligature +that \TeX\ employs. +In the ``modern'' \textgreek{monotonik'o} accentual system only one accent is +used---\textgreek{oxe'ia} (acute). In the traditional \textgreek{polutonik'o} +accentual system we +need more accents and breathing signs. We can produce an accented letter by +prefixing the letter with he symbol that denotes the accent, e.g., +\texttt{>a'erac} produces the word \sg >a'erac.\sa\footnote{For the +technically inclined reader, we must say that \TeX\ uses the ligature table of +the font in order to determine the character that corresponds to the +input character sequence.} Here are the symbols that are recognized: + +\begin{center} +\begin{tabular}{cccc}\hline +Accent & Symbol & Example & Output\\ \hline +acute & \texttt{'} & \texttt{g'ata} & \textgreek{g'ata}\\ +grave & \texttt{`} & \texttt{dad`i} & \textgreek{dad`i}\\ +circumflex & \verb+~+ & \verb+ful~hc+ & \sg\textgreek{ful~hc}\sa\\ +rough breathing & \verb+<+ & \verb+<'otan+ & \sg\textgreek{<'otan}\sa\\ +smooth breathing & \verb+>+ & \verb+>'aneu+ & \sg\textgreek{>'aneu}\sa\\ +subscript & \texttt{|} & \verb+>anate'ilh|+ & \sg\textgreek{>anate'ilh|}\\ +dieresis & \texttt{"}& \texttt{qa"ide'uh|c} & \sg\textgreek{qa"ide'uh|c}\\ +\hline +\end{tabular} +\end{center} +Note that the subscript symbol is placed \textbf{after} the letter. +The last thing someone must know in order to be able to write normal Greek +text is the punctuation marks used in the language: +\begin{center} +\begin{tabular}{ccc}\hline +Punctuation Sign & Symbol & Output\\ \hline +period & \texttt{.} & \sg\textgreek{.}\sa\\ +semicolon & \texttt{;} & \sg\textgreek{;}\sa\\ +exclamation mark & \texttt{!} & \sg\textgreek{!}\sa\\ +comma & \texttt{,} & \sg\textgreek{,}\sa\\ +colon & \texttt{:} & \sg\textgreek{:}\sa\\ +question mark & \texttt{?} & \sg\textgreek{?}\sa\\ +left apostrophe & \texttt{``} & \sg\textgreek{``}\sa\\ +right apostrophe & \texttt{''} & \sg\textgreek{''}\sa\\ +left quotation mark & \texttt{((} & \sg\textgreek{))}\sa\\ +right quotation mark & \texttt{))} & \sg\textgreek{))}\sa\\ \hline +\end{tabular} +\end{center} +Using these conventions it is a straightforward exercise to write Greek +\textgreek{polutoniko} text. For example the following excerpt from +\textgreek{D'uskoloc} of \textgreek{M'enandroc} +\sg +\begin{quote} +T'i f'hic? <Id`wn >enj'ede pa~id'' >eleuj'eran\\ +t`ac plhs'ion N'umfac stefano~usan, S'wstrate,\\ +>er~wn 'ap~hljec e>uj'uc? +\end{quote} +\sa can be produced by the following \LaTeX\ code: +\begin{center} +\begin{tabular}{l} +\verb+T'i f'hic? <Id`wn >enj'ede pa~id'' >eleuj'eran+\\ +\verb+t`ac plhs'ion N'umfac stefano~usan, S'wstrate,+\\ +\verb+>er~wn 'ap~hljec e>uj'uc?+ +\end{tabular} +\end{center} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Producing Greek Text} +Once the Greek language is selected with the command +\begin{center} +\verb+\selectlanguage{greek}+ +\end{center} +whatever we type will be typeset with the Greek fonts. The command +\verb+\textlatin+ can be used for short passages in some language that +uses the Latin alphabet, while the the command \verb+\latintext+ changes +the base fonts to the ones used by languages that use the Latin alphabet. +However, all words will be hyphenated by following the Greek hyphenation +rules! Similar commands are available once someone has selected some +other language. The commands \verb+\textgreek+ and \verb+\greektext+ +behave exactly like their ``latin'' counterparts. For example, the +word \textgreek{M'imhc} has been produced with the command +\verb+\textgreek{M'imhc}+. Please note that certain symbols cannot have +their expected result for Greek text, unless someone has selected the Greek +language, e.g., \verb+~+ is such a symbol. + +As we have mentioned above this version of the \texttt{greek} option of the +\texttt{babel} package supports the use of Greek numerals. The commands +\verb+\greeknumeral+ and \verb+\Greeknumeral+ produce the lowercase and +the uppercase Greek numeral, e.g., +\begin{center} +\begin{tabular}{cc}\hline +Command & Output\\ \hline +\verb+\Greeknumeral{9999}+ & \sg\textgreek{\Greeknumeral{9999}}\\ +\verb+\greeknumeral{9999}+ & \sg\textgreek{\greeknumeral{9999}}\\ +\hline +\end{tabular} +\end{center} +In order to correctly typeset the greek numerals the greek option file +provides the following commands: +\begin{center} +\begin{tabular}{cc}\hline +Command & Output\\ \hline +\verb+\qoppa+ & \textgreek{\qoppa}\\ +\verb+\sampi+ & \textgreek{\sampi}\\ +\verb+\stigma+ & \textgreek{\stigma}\\ +\hline +\end{tabular} +\end{center} + +In traditional Greek typography the first paragraph after a header is +always indented, contrary to the habit of, say, American typography. This +effect can be achieved by using the package \verb+indentfirst+. + +Additional greek symbols are available: +\begin{center} +\begin{tabular}{cc}\hline +Command & Output\\ \hline +\verb+\Digamma+ & \sg\textgreek{\Digamma}\\ +\verb+\ddigamma+ & \sg\textgreek{\ddigamma}\\ +%\verb+\tao+ & \sg\textgreek{\tao}\\ +%\verb+\Qoppa+ & \sg\textgreek{\Qoppa}\\ +%\verb|\VarQoppa| & \sg\textgreek{\VarQoppa}\\ +%\verb+\varqoppa+ & \sg\textgreek{\varqoppa}\\ +%\verb+\Sampi+ & \sg\textgreek{\Sampi}\\ +%\verb|\Stigma| & \sg\textgreek{\Stigma}\\ +\verb|\euro| & \sg\textgreek{\euro}\\ +\verb|\permill| & \sg\textgreek{\permill}\\ +\hline +\end{tabular} +\end{center} + +The package \verb|athnum| provides the command \verb|\athnum|, with which +one can produce the so called \textit{Athenian numerals}: +\begin{center} +\begin{tabular}{cc}\hline +Command & Output\\ \hline +\verb|\athnum{1997}| & \sg\textgreek{\athnum{1997}}\\ +\hline +\end{tabular} +\end{center} + +The package \verb|grmath| renames the basic log-like functions with their +greek counterparts: +\begin{center} +\begin{tabular}{cc}\hline +Command & Output\\ \hline +\verb|$\sin^{2}x+\cos^{2}x=1$| & $\sin^{2}x+\cos^{2}y=1$\\ +\hline +\end{tabular} +\end{center} +\end{document} diff --git a/Master/texmf-dist/doc/generic/babel/user.pdf b/Master/texmf-dist/doc/generic/babel/user.pdf Binary files differnew file mode 100644 index 00000000000..0aec4a0e96d --- /dev/null +++ b/Master/texmf-dist/doc/generic/babel/user.pdf diff --git a/Master/texmf-dist/doc/generic/musixps/readme.txt b/Master/texmf-dist/doc/generic/musixps/readme.txt new file mode 100644 index 00000000000..4a1dd928254 --- /dev/null +++ b/Master/texmf-dist/doc/generic/musixps/readme.txt @@ -0,0 +1,36 @@ +This package adds the PostScript slurs, ties and crescendos into MusiXTeX.
+It is possible to use it in almost the same way as the original bitmapped
+slur simply saying "\input musixps" at the beginning of your source file.
+The resulting dvi file should be then converted into PostScript by dvips
+(and then to PDF using ps2pdf, ghostscript or Adobe Distiller, if necessary).
+
+Please note that the slurs won't appear in any other dvi previewer, nor when
+you use pdftex to produce the PDF file directly.
+
+The mxsk font is used for "half ties" - short breaked ties at the beginning of the line.
+If you use \nohalfties, you do not need to install this font.
+The musixps.tex should be placed anywhere TeX can find it,
+prefferably into the musixtex directory.
+Do not include it into your TeX format file!
+The psslurs.pro should be placed somewhere dvips can find it.
+
+You can freely use or modify this package, but you are not allowed to distribute
+any modified versions without my prior permission, or redistribute the package
+without my name inside it. And of course, do not blame me for anything that goes
+wrong...
+
+Stanislav Kneifl,
+standa@hiero.cz
+
+
+HISTORY +~~~~~~~ + +0.92 (12.5.2002) + added: \nosluradjust, \sluradjust, \notieadjust, \tieadjust + added: \slopebrkslurtrue, \slopebrkslurfalse + fixed: shaded slurs now do not break up to separate curves + at high resolutions + +0.91 (10.1.2002) + First public release, adopted from OpusTeX version.
\ No newline at end of file diff --git a/Master/texmf-dist/doc/generic/pdf-trans/example.pdf b/Master/texmf-dist/doc/generic/pdf-trans/example.pdf new file mode 100644 index 00000000000..1a324ebec57 --- /dev/null +++ b/Master/texmf-dist/doc/generic/pdf-trans/example.pdf @@ -0,0 +1,3787 @@ +%PDF-1.5 +%ĐÔĹŘ +1 0 obj +<< /Type /OCG /Name (box content before) >> +endobj +2 0 obj +<< /Type /OCG /Name (box outline before) >> +endobj +3 0 obj +<< /Type /OCG /Name (box content after) >> +endobj +4 0 obj +<< /Type /OCG /Name (box outline after) >> +endobj +5 0 obj +<< /Type /OCG /Name (final bounding box) >> +endobj +6 0 obj +<< /S /GoTo /D [7 0 R /Fit] >> +endobj +9 0 obj +(pdf-trans.tex) +endobj +11 0 obj << +/Length 2312 +>> +stream +.5 w 1 j 1 J +BT +/F53 14.944 Tf 28.346 301.848 Td[(box)-525(tra)]TJ +ET +1 0 0 1 83.265 301.848 cm +q 1 0 0 -1 0 9.251 cm +q 1.0 0.8 0.0 rg +1 0 0 1 -83.265 -301.848 cm +BT +/F53 14.944 Tf 83.265 301.848 Td[(N)]TJ +ET +1 0 0 1 91.111 301.848 cm + Q 1 0 0 1 7.846 0 cm +Q 1 0 0 1 7.846 0 cm +1 0 0 1 -91.111 -301.848 cm +BT +/F53 14.944 Tf 91.111 301.848 Td[(sfo)]TJ +ET +1 0 0 1 114.648 301.848 cm +q 0.96593 -0.25882 0.25882 0.96593 3.923 4.626 cm 1 0 0 1 -3.923 -4.626 cm +q 1.0 0.8 0.0 rg +1 0 0 1 -114.648 -301.848 cm +BT +/F53 14.944 Tf 114.648 301.848 Td[(R)]TJ +ET +1 0 0 1 122.493 301.848 cm + Q 1 0 0 1 7.846 0 cm +Q 1 0 0 1 7.846 0 cm +1 0 0 1 -122.493 -301.848 cm +BT +/F53 14.944 Tf 122.493 301.848 Td[(mation)]TJ +ET +1 0 0 1 169.567 301.848 cm +q -1 0 0 1 7.846 0 cm +q 1.0 0.8 0.0 rg +1 0 0 1 -169.567 -301.848 cm +BT +/F53 14.944 Tf 169.567 301.848 Td[(S)]TJ +ET +1 0 0 1 177.412 301.848 cm + Q 1 0 0 1 7.846 0 cm +Q 1 0 0 1 7.846 0 cm +1 0 0 1 -177.412 -301.848 cm +BT +/F53 14.944 Tf 185.258 301.848 Td[(in)]TJ +ET +1 0 0 1 208.794 301.848 cm +q 0.7 g +1 0 0 1 -208.794 -301.848 cm +BT +/F53 14.944 Tf 208.794 301.848 Td[(pdf-trans.tex)]TJ +ET +1 0 0 1 310.787 301.848 cm + Q 1 0 0 1 101.992 0 cm +1 0 0 1 -282.441 -133.241 cm +q /OC /OC1 BDC 2 Tr 0.7 g +1 0 0 1 -28.346 -168.607 cm +BT +/F52 59.776 Tf 28.346 168.607 Td[(g)]TJ +ET +1 0 0 1 58.234 168.607 cm +EMC Q 1 0 0 1 29.888 0 cm +q /OC /OC2 BDC 0.3 G 1 0 0 1 -29.888 0 cm 0 -11.623 29.888 37.359 re S [2 2] 1 d 0 0 m 29.888 0 l S EMC Q +1 0 0 1 -58.234 -168.607 cm +BT +/F53 7.97 Tf 66.603 168.607 Td[(before)]TJ +ET +1 0 0 1 28.346 104.454 cm +q /OC /OC3 BDC 2 Tr 1.0 0.8 0.0 rg +1 0 0 1 -28.346 -104.454 cm +BT +/F52 59.776 Tf 28.346 104.454 Td[(g)]TJ +ET +1 0 0 1 58.234 104.454 cm +EMC Q 1 0 0 1 29.888 0 cm +q /OC /OC4 BDC 1.0 0.6 0.0 RG 1 0 0 1 -29.888 0 cm 0 -11.623 29.888 37.359 re S [2 2] 1 d 0 0 m 29.888 0 l S EMC Q +1 0 0 1 -58.234 -104.454 cm +BT +/F53 7.97 Tf 66.603 104.454 Td[(after)]TJ +ET +1 0 0 1 58.234 40.302 cm +q /OC /OC5 BDC 0.7 0.0 0.0 RG 1 0 0 1 -29.888 0 cm 0 -11.623 29.888 37.359 re S [2 2] 1 d 0 0 m 29.888 0 l S EMC Q +1 0 0 1 -58.234 -40.302 cm +BT +/F53 7.97 Tf 66.603 40.302 Td[(bounding)-525(box)]TJ +ET +1 0 0 1 425.197 28.346 cm +q 0 1 -1 0 0 0 cm +1 0 0 1 -425.197 -28.346 cm +BT +/F53 7.97 Tf 425.197 28.346 Td[(P.Jackowski@gust.org.pl)]TJ +ET +1 0 0 1 425.197 28.346 cm +Q 1 0 0 1 0 0 cm +endstream +endobj +7 0 obj << +/Type /Page +/Contents 11 0 R +/Resources 10 0 R +/MediaBox [0 0 453.543 340.157] +/Parent 18 0 R +>> endobj +10 0 obj << +/Properties << /OC1 1 0 R /OC2 2 0 R /OC3 3 0 R /OC4 4 0 R /OC5 5 0 R>> +/Font << /F53 14 0 R /F52 17 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +19 0 obj +<< /S /GoTo /D [20 0 R /Fit] >> +endobj +22 0 obj +(\\boxflipx) +endobj +24 0 obj << +/Length 999 +>> +stream +.5 w 1 j 1 J +BT +/F52 119.552 Tf 28.346 198.425 Td[(Y)83(o)]TJ +ET +1 0 0 1 167.826 198.425 cm +q /OC /OC1 BDC 2 Tr 0.7 g +1 0 0 1 -167.826 -198.425 cm +BT +/F52 119.552 Tf 167.826 198.425 Td[(g)]TJ +ET +1 0 0 1 227.602 198.425 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC2 BDC 0.3 G 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 -59.776 0 cm +q -1 0 0 1 59.776 0 cm +q /OC /OC3 BDC 2 Tr 1.0 0.8 0.0 rg +1 0 0 1 -167.826 -198.425 cm +BT +/F52 119.552 Tf 167.826 198.425 Td[(g)]TJ +ET +1 0 0 1 227.602 198.425 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC4 BDC 1.0 0.6 0.0 RG 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +Q 1 0 0 1 59.776 0 cm +q /OC /OC5 BDC 0.7 0.0 0.0 RG 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 -227.602 -198.425 cm +BT +/F52 119.552 Tf 227.602 198.425 Td[(a)]TJ/F53 9.963 Tf -199.256 -152.146 Td[(\134boxflipx)-1050(<box>)]TJ/F53 7.97 Tf 0 -17.933 Td[(\134boxflipx)]TJ +ET +endstream +endobj +20 0 obj << +/Type /Page +/Contents 24 0 R +/Resources 23 0 R +/MediaBox [0 0 453.543 340.157] +/Parent 18 0 R +>> endobj +23 0 obj << +/Properties << /OC1 1 0 R /OC2 2 0 R /OC3 3 0 R /OC4 4 0 R /OC5 5 0 R>> +/Font << /F52 17 0 R /F53 14 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +25 0 obj +<< /S /GoTo /D [26 0 R /Fit] >> +endobj +28 0 obj +(\\boxflipy) +endobj +30 0 obj << +/Length 999 +>> +stream +.5 w 1 j 1 J +BT +/F52 119.552 Tf 28.346 198.425 Td[(Y)83(o)]TJ +ET +1 0 0 1 167.826 198.425 cm +q /OC /OC1 BDC 2 Tr 0.7 g +1 0 0 1 -167.826 -198.425 cm +BT +/F52 119.552 Tf 167.826 198.425 Td[(g)]TJ +ET +1 0 0 1 227.602 198.425 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC2 BDC 0.3 G 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 -59.776 0 cm +q 1 0 0 -1 0 28.227 cm +q /OC /OC3 BDC 2 Tr 1.0 0.8 0.0 rg +1 0 0 1 -167.826 -198.425 cm +BT +/F52 119.552 Tf 167.826 198.425 Td[(g)]TJ +ET +1 0 0 1 227.602 198.425 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC4 BDC 1.0 0.6 0.0 RG 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +Q 1 0 0 1 59.776 0 cm +q /OC /OC5 BDC 0.7 0.0 0.0 RG 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 -227.602 -198.425 cm +BT +/F52 119.552 Tf 227.602 198.425 Td[(a)]TJ/F53 9.963 Tf -199.256 -152.146 Td[(\134boxflipy)-1050(<box>)]TJ/F53 7.97 Tf 0 -17.933 Td[(\134boxflipy)]TJ +ET +endstream +endobj +26 0 obj << +/Type /Page +/Contents 30 0 R +/Resources 29 0 R +/MediaBox [0 0 453.543 340.157] +/Parent 18 0 R +>> endobj +29 0 obj << +/Properties << /OC1 1 0 R /OC2 2 0 R /OC3 3 0 R /OC4 4 0 R /OC5 5 0 R>> +/Font << /F52 17 0 R /F53 14 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +31 0 obj +<< /S /GoTo /D [32 0 R /Fit] >> +endobj +34 0 obj +(\\boxflipxy) +endobj +36 0 obj << +/Length 1007 +>> +stream +.5 w 1 j 1 J +BT +/F52 119.552 Tf 28.346 198.425 Td[(Y)83(o)]TJ +ET +1 0 0 1 167.826 198.425 cm +q /OC /OC1 BDC 2 Tr 0.7 g +1 0 0 1 -167.826 -198.425 cm +BT +/F52 119.552 Tf 167.826 198.425 Td[(g)]TJ +ET +1 0 0 1 227.602 198.425 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC2 BDC 0.3 G 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 -59.776 0 cm +q -1 0 0 -1 59.776 28.227 cm +q /OC /OC3 BDC 2 Tr 1.0 0.8 0.0 rg +1 0 0 1 -167.826 -198.425 cm +BT +/F52 119.552 Tf 167.826 198.425 Td[(g)]TJ +ET +1 0 0 1 227.602 198.425 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC4 BDC 1.0 0.6 0.0 RG 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +Q 1 0 0 1 59.776 0 cm +q /OC /OC5 BDC 0.7 0.0 0.0 RG 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 -227.602 -198.425 cm +BT +/F52 119.552 Tf 227.602 198.425 Td[(a)]TJ/F53 9.963 Tf -199.256 -152.146 Td[(\134boxflipxy)-1050(<box>)]TJ/F53 7.97 Tf 0 -17.933 Td[(\134boxflipxy)]TJ +ET +endstream +endobj +32 0 obj << +/Type /Page +/Contents 36 0 R +/Resources 35 0 R +/MediaBox [0 0 453.543 340.157] +/Parent 18 0 R +>> endobj +35 0 obj << +/Properties << /OC1 1 0 R /OC2 2 0 R /OC3 3 0 R /OC4 4 0 R /OC5 5 0 R>> +/Font << /F52 17 0 R /F53 14 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +37 0 obj +<< /S /GoTo /D [38 0 R /Fit] >> +endobj +40 0 obj +(\\boxflipbase) +endobj +42 0 obj << +/Length 1000 +>> +stream +.5 w 1 j 1 J +BT +/F52 119.552 Tf 28.346 198.425 Td[(Y)83(o)]TJ +ET +1 0 0 1 167.826 198.425 cm +q /OC /OC1 BDC 2 Tr 0.7 g +1 0 0 1 -167.826 -198.425 cm +BT +/F52 119.552 Tf 167.826 198.425 Td[(g)]TJ +ET +1 0 0 1 227.602 198.425 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC2 BDC 0.3 G 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 -59.776 0 cm +q 1 0 0 -1 0 0 cm +q /OC /OC3 BDC 2 Tr 1.0 0.8 0.0 rg +1 0 0 1 -167.826 -198.425 cm +BT +/F52 119.552 Tf 167.826 198.425 Td[(g)]TJ +ET +1 0 0 1 227.602 198.425 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC4 BDC 1.0 0.6 0.0 RG 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +Q 1 0 0 1 59.776 0 cm +q /OC /OC5 BDC 0.7 0.0 0.0 RG 1 0 0 1 -59.776 0 cm 0 -51.473 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 -227.602 -198.425 cm +BT +/F52 119.552 Tf 227.602 198.425 Td[(a)]TJ/F53 9.963 Tf -199.256 -152.146 Td[(\134boxflipbase)-1050(<box>)]TJ/F53 7.97 Tf 0 -17.933 Td[(\134boxflipbase)]TJ +ET +endstream +endobj +38 0 obj << +/Type /Page +/Contents 42 0 R +/Resources 41 0 R +/MediaBox [0 0 453.543 340.157] +/Parent 18 0 R +>> endobj +41 0 obj << +/Properties << /OC1 1 0 R /OC2 2 0 R /OC3 3 0 R /OC4 4 0 R /OC5 5 0 R>> +/Font << /F52 17 0 R /F53 14 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +43 0 obj +<< /S /GoTo /D [44 0 R /Fit] >> +endobj +46 0 obj +(\\bboxtrans) +endobj +48 0 obj << +/Length 991 +>> +stream +.5 w 1 j 1 J +BT +/F52 119.552 Tf 28.346 198.425 Td[(Y)83(o)]TJ +ET +1 0 0 1 167.826 198.425 cm +q /OC /OC1 BDC 2 Tr 0.7 g +1 0 0 1 -167.826 -198.425 cm +BT +/F52 119.552 Tf 167.826 198.425 Td[(g)]TJ +ET +1 0 0 1 227.602 198.425 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC2 BDC 0.3 G 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 -59.776 0 cm +q /OC /OC3 BDC 2 Tr 1.0 0.8 0.0 rg +1 0 0 1 -167.826 -198.425 cm +BT +/F52 119.552 Tf 167.826 198.425 Td[(g)]TJ +ET +1 0 0 1 227.602 198.425 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC4 BDC 1.0 0.6 0.0 RG 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +q /OC /OC5 BDC 0.7 0.0 0.0 RG 1 0 0 1 -59.776 0 cm 0 -51.473 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 -227.602 -198.425 cm +BT +/F52 119.552 Tf 227.602 198.425 Td[(a)]TJ/F53 9.963 Tf -199.256 -152.146 Td[(\134bboxtrans)-525({<trans>})-525(<box>)]TJ/F53 7.97 Tf 0 -17.933 Td[(\134bboxtrans)-525(\134boxflipbase)]TJ +ET +endstream +endobj +44 0 obj << +/Type /Page +/Contents 48 0 R +/Resources 47 0 R +/MediaBox [0 0 453.543 340.157] +/Parent 18 0 R +>> endobj +47 0 obj << +/Properties << /OC1 1 0 R /OC2 2 0 R /OC3 3 0 R /OC4 4 0 R /OC5 5 0 R>> +/Font << /F52 17 0 R /F53 14 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +49 0 obj +<< /S /GoTo /D [50 0 R /Fit] >> +endobj +52 0 obj +(\\cboxtrans) +endobj +54 0 obj << +/Length 1031 +>> +stream +.5 w 1 j 1 J +BT +/F52 119.552 Tf 28.346 198.425 Td[(Y)83(o)]TJ +ET +1 0 0 1 167.826 198.425 cm +q /OC /OC1 BDC 2 Tr 0.7 g +1 0 0 1 -167.826 -198.425 cm +BT +/F52 119.552 Tf 167.826 198.425 Td[(g)]TJ +ET +1 0 0 1 227.602 198.425 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC2 BDC 0.3 G 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 -59.776 0 cm +q 1 0 0 -1 0 0 cm +q /OC /OC3 BDC 2 Tr 1.0 0.8 0.0 rg +1 0 0 1 -167.826 -198.425 cm +BT +/F52 119.552 Tf 167.826 198.425 Td[(g)]TJ +ET +1 0 0 1 227.602 198.425 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC4 BDC 1.0 0.6 0.0 RG 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +Q 1 0 0 1 59.776 0 cm +q /OC /OC5 BDC 0.7 0.0 0.0 RG 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 -227.602 -198.425 cm +BT +/F52 119.552 Tf 227.602 198.425 Td[(a)]TJ/F53 9.963 Tf -199.256 -152.146 Td[(\134cboxtrans)-525({<trans>})-525(<box>)]TJ/F53 7.97 Tf 0 -17.933 Td[(\134cboxtrans)-525(\134boxflipbase)]TJ +ET +endstream +endobj +50 0 obj << +/Type /Page +/Contents 54 0 R +/Resources 53 0 R +/MediaBox [0 0 453.543 340.157] +/Parent 55 0 R +>> endobj +53 0 obj << +/Properties << /OC1 1 0 R /OC2 2 0 R /OC3 3 0 R /OC4 4 0 R /OC5 5 0 R>> +/Font << /F52 17 0 R /F53 14 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +56 0 obj +<< /S /GoTo /D [57 0 R /Fit] >> +endobj +59 0 obj +(\\boxtranslate) +endobj +61 0 obj << +/Length 1055 +>> +stream +.5 w 1 j 1 J +BT +/F52 119.552 Tf 28.346 198.425 Td[(Y)83(o)]TJ +ET +1 0 0 1 167.826 198.425 cm +q /OC /OC1 BDC 2 Tr 0.7 g +1 0 0 1 -167.826 -198.425 cm +BT +/F52 119.552 Tf 167.826 198.425 Td[(g)]TJ +ET +1 0 0 1 227.602 198.425 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC2 BDC 0.3 G 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 -59.776 0 cm +q 1 0 0 1 8.504 5.669 cm +q /OC /OC3 BDC 2 Tr 1.0 0.8 0.0 rg +1 0 0 1 -167.826 -198.425 cm +BT +/F52 119.552 Tf 167.826 198.425 Td[(g)]TJ +ET +1 0 0 1 227.602 198.425 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC4 BDC 1.0 0.6 0.0 RG 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +Q 1 0 0 1 59.776 0 cm +q /OC /OC5 BDC 0.7 0.0 0.0 RG 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 -227.602 -198.425 cm +BT +/F52 119.552 Tf 227.602 198.425 Td[(a)]TJ/F53 9.963 Tf -199.256 -152.146 Td[(\134boxtranslate)-525({<dimexpr>}{<d)1(imexpr>})-525(<box>)]TJ/F53 7.97 Tf 0 -17.933 Td[(\134boxtranslate)-525({3mm}{2mm})]TJ +ET +endstream +endobj +57 0 obj << +/Type /Page +/Contents 61 0 R +/Resources 60 0 R +/MediaBox [0 0 453.543 340.157] +/Parent 55 0 R +>> endobj +60 0 obj << +/Properties << /OC1 1 0 R /OC2 2 0 R /OC3 3 0 R /OC4 4 0 R /OC5 5 0 R>> +/Font << /F52 17 0 R /F53 14 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +62 0 obj +<< /S /GoTo /D [63 0 R /Fit] >> +endobj +65 0 obj +(\\boxrevolveleft) +endobj +67 0 obj << +/Length 1027 +>> +stream +.5 w 1 j 1 J +BT +/F52 119.552 Tf 28.346 198.425 Td[(Y)83(o)]TJ +ET +1 0 0 1 167.826 198.425 cm +q /OC /OC1 BDC 2 Tr 0.7 g +1 0 0 1 -167.826 -198.425 cm +BT +/F52 119.552 Tf 167.826 198.425 Td[(g)]TJ +ET +1 0 0 1 227.602 198.425 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC2 BDC 0.3 G 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 -59.776 0 cm +q 0 1 -1 0 51.473 0 cm +q /OC /OC3 BDC 2 Tr 1.0 0.8 0.0 rg +1 0 0 1 -167.826 -198.425 cm +BT +/F52 119.552 Tf 167.826 198.425 Td[(g)]TJ +ET +1 0 0 1 227.602 198.425 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC4 BDC 1.0 0.6 0.0 RG 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 14.943 0 cm +Q 1 0 0 1 74.719 0 cm +q /OC /OC5 BDC 0.7 0.0 0.0 RG 1 0 0 1 -74.719 0 cm 0 0.0 74.719 59.776 re S [2 2] 1 d 0 0 m 74.719 0 l S EMC Q +1 0 0 1 -242.545 -198.425 cm +BT +/F52 119.552 Tf 242.545 198.425 Td[(a)]TJ/F53 9.963 Tf -214.199 -152.146 Td[(\134boxrevolveleft)-1050(<box>)]TJ/F53 7.97 Tf 0 -17.933 Td[(\134boxrevolveleft)]TJ +ET +endstream +endobj +63 0 obj << +/Type /Page +/Contents 67 0 R +/Resources 66 0 R +/MediaBox [0 0 453.543 340.157] +/Parent 55 0 R +>> endobj +66 0 obj << +/Properties << /OC1 1 0 R /OC2 2 0 R /OC3 3 0 R /OC4 4 0 R /OC5 5 0 R>> +/Font << /F52 17 0 R /F53 14 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +68 0 obj +<< /S /GoTo /D [69 0 R /Fit] >> +endobj +71 0 obj +(\\boxrevolveright) +endobj +73 0 obj << +/Length 1034 +>> +stream +.5 w 1 j 1 J +BT +/F52 119.552 Tf 28.346 198.425 Td[(Y)83(o)]TJ +ET +1 0 0 1 167.826 198.425 cm +q /OC /OC1 BDC 2 Tr 0.7 g +1 0 0 1 -167.826 -198.425 cm +BT +/F52 119.552 Tf 167.826 198.425 Td[(g)]TJ +ET +1 0 0 1 227.602 198.425 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC2 BDC 0.3 G 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 -59.776 0 cm +q 0 -1 1 0 23.246 59.776 cm +q /OC /OC3 BDC 2 Tr 1.0 0.8 0.0 rg +1 0 0 1 -167.826 -198.425 cm +BT +/F52 119.552 Tf 167.826 198.425 Td[(g)]TJ +ET +1 0 0 1 227.602 198.425 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC4 BDC 1.0 0.6 0.0 RG 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 14.943 0 cm +Q 1 0 0 1 74.719 0 cm +q /OC /OC5 BDC 0.7 0.0 0.0 RG 1 0 0 1 -74.719 0 cm 0 0.0 74.719 59.776 re S [2 2] 1 d 0 0 m 74.719 0 l S EMC Q +1 0 0 1 -242.545 -198.425 cm +BT +/F52 119.552 Tf 242.545 198.425 Td[(a)]TJ/F53 9.963 Tf -214.199 -152.146 Td[(\134boxrevolveright)-1050(<box>)]TJ/F53 7.97 Tf 0 -17.933 Td[(\134boxrevolveright)]TJ +ET +endstream +endobj +69 0 obj << +/Type /Page +/Contents 73 0 R +/Resources 72 0 R +/MediaBox [0 0 453.543 340.157] +/Parent 55 0 R +>> endobj +72 0 obj << +/Properties << /OC1 1 0 R /OC2 2 0 R /OC3 3 0 R /OC4 4 0 R /OC5 5 0 R>> +/Font << /F52 17 0 R /F53 14 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +74 0 obj +<< /S /GoTo /D [75 0 R /Fit] >> +endobj +77 0 obj +(\\boxrotate) +endobj +79 0 obj << +/Length 1047 +>> +stream +.5 w 1 j 1 J +BT +/F52 119.552 Tf 28.346 198.425 Td[(Y)83(o)]TJ +ET +1 0 0 1 167.826 198.425 cm +q /OC /OC1 BDC 2 Tr 0.7 g +1 0 0 1 -167.826 -198.425 cm +BT +/F52 119.552 Tf 167.826 198.425 Td[(g)]TJ +ET +1 0 0 1 227.602 198.425 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC2 BDC 0.3 G 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 -59.776 0 cm +q 0.82214 -0.56927 0.56927 0.82214 0 0 cm +q /OC /OC3 BDC 2 Tr 1.0 0.8 0.0 rg +1 0 0 1 -167.826 -198.425 cm +BT +/F52 119.552 Tf 167.826 198.425 Td[(g)]TJ +ET +1 0 0 1 227.602 198.425 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC4 BDC 1.0 0.6 0.0 RG 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +Q 1 0 0 1 59.776 0 cm +q /OC /OC5 BDC 0.7 0.0 0.0 RG 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 -227.602 -198.425 cm +BT +/F52 119.552 Tf 227.602 198.425 Td[(a)]TJ/F53 9.963 Tf -199.256 -152.146 Td[(\134boxrotate)-525({<angle>})-525(<box>)]TJ/F53 7.97 Tf 0 -17.933 Td[(\134boxrotate)-525({394.7})]TJ +ET +endstream +endobj +75 0 obj << +/Type /Page +/Contents 79 0 R +/Resources 78 0 R +/MediaBox [0 0 453.543 340.157] +/Parent 55 0 R +>> endobj +78 0 obj << +/Properties << /OC1 1 0 R /OC2 2 0 R /OC3 3 0 R /OC4 4 0 R /OC5 5 0 R>> +/Font << /F52 17 0 R /F53 14 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +80 0 obj +<< /S /GoTo /D [81 0 R /Fit] >> +endobj +83 0 obj +(\\boxrotatexy) +endobj +85 0 obj << +/Length 1176 +>> +stream +.5 w 1 j 1 J +BT +/F52 119.552 Tf 28.346 198.425 Td[(Y)83(o)]TJ +ET +1 0 0 1 167.826 198.425 cm +q /OC /OC1 BDC 2 Tr 0.7 g +1 0 0 1 -167.826 -198.425 cm +BT +/F52 119.552 Tf 167.826 198.425 Td[(g)]TJ +ET +1 0 0 1 227.602 198.425 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC2 BDC 0.3 G 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 -59.776 0 cm +q 0.82709 -0.56209 0.56209 0.82709 59.776 51.473 cm 1 0 0 1 -59.776 -51.473 cm +q /OC /OC3 BDC 2 Tr 1.0 0.8 0.0 rg +1 0 0 1 -167.826 -198.425 cm +BT +/F52 119.552 Tf 167.826 198.425 Td[(g)]TJ +ET +1 0 0 1 227.602 198.425 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC4 BDC 1.0 0.6 0.0 RG 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +Q 1 0 0 1 59.776 0 cm +q /OC /OC5 BDC 0.7 0.0 0.0 RG 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 -227.602 -198.425 cm +BT +/F52 119.552 Tf 227.602 198.425 Td[(a)]TJ/F53 9.963 Tf -199.256 -152.146 Td[(\134boxrotatexy)-525({<angle>}{<dime)1(xpr>}{<dimexpr>})-525(<box>)]TJ/F53 7.97 Tf 0 -17.933 Td[(\134boxrotatexy)-525({34.2}{\134wd)-525(\134transbox)-525(}{\134ht)-525(\134transbox)-525(})]TJ +ET +endstream +endobj +81 0 obj << +/Type /Page +/Contents 85 0 R +/Resources 84 0 R +/MediaBox [0 0 453.543 340.157] +/Parent 55 0 R +>> endobj +84 0 obj << +/Properties << /OC1 1 0 R /OC2 2 0 R /OC3 3 0 R /OC4 4 0 R /OC5 5 0 R>> +/Font << /F52 17 0 R /F53 14 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +86 0 obj +<< /S /GoTo /D [87 0 R /Fit] >> +endobj +89 0 obj +(\\boxrotatec) +endobj +91 0 obj << +/Length 1067 +>> +stream +.5 w 1 j 1 J +BT +/F52 119.552 Tf 28.346 198.425 Td[(Y)83(o)]TJ +ET +1 0 0 1 167.826 198.425 cm +q /OC /OC1 BDC 2 Tr 0.7 g +1 0 0 1 -167.826 -198.425 cm +BT +/F52 119.552 Tf 167.826 198.425 Td[(g)]TJ +ET +1 0 0 1 227.602 198.425 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC2 BDC 0.3 G 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 -59.776 0 cm +q 0.0 -1.0 1.0 0.0 29.888 14.113 cm 1 0 0 1 -29.888 -14.113 cm +q /OC /OC3 BDC 2 Tr 1.0 0.8 0.0 rg +1 0 0 1 -167.826 -198.425 cm +BT +/F52 119.552 Tf 167.826 198.425 Td[(g)]TJ +ET +1 0 0 1 227.602 198.425 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC4 BDC 1.0 0.6 0.0 RG 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +Q 1 0 0 1 59.776 0 cm +q /OC /OC5 BDC 0.7 0.0 0.0 RG 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 -227.602 -198.425 cm +BT +/F52 119.552 Tf 227.602 198.425 Td[(a)]TJ/F53 9.963 Tf -199.256 -152.146 Td[(\134boxrotatec)-525({<angle>})-525(<box>)]TJ/F53 7.97 Tf 0 -17.933 Td[(\134boxrotatec)-525({90})]TJ +ET +endstream +endobj +87 0 obj << +/Type /Page +/Contents 91 0 R +/Resources 90 0 R +/MediaBox [0 0 453.543 340.157] +/Parent 92 0 R +>> endobj +90 0 obj << +/Properties << /OC1 1 0 R /OC2 2 0 R /OC3 3 0 R /OC4 4 0 R /OC5 5 0 R>> +/Font << /F52 17 0 R /F53 14 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +93 0 obj +<< /S /GoTo /D [94 0 R /Fit] >> +endobj +96 0 obj +(\\boxrotatebbl) +endobj +98 0 obj << +/Length 1081 +>> +stream +.5 w 1 j 1 J +BT +/F52 119.552 Tf 28.346 198.425 Td[(Y)83(o)]TJ +ET +1 0 0 1 167.826 198.425 cm +q /OC /OC1 BDC 2 Tr 0.7 g +1 0 0 1 -167.826 -198.425 cm +BT +/F52 119.552 Tf 167.826 198.425 Td[(g)]TJ +ET +1 0 0 1 227.602 198.425 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC2 BDC 0.3 G 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 -59.776 0 cm +q 0.82806 0.56064 -0.56064 0.82806 28.858 0 cm +q /OC /OC3 BDC 2 Tr 1.0 0.8 0.0 rg +1 0 0 1 -167.826 -198.425 cm +BT +/F52 119.552 Tf 167.826 198.425 Td[(g)]TJ +ET +1 0 0 1 227.602 198.425 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC4 BDC 1.0 0.6 0.0 RG 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 31.612 0 cm +Q 1 0 0 1 91.388 0 cm +q /OC /OC5 BDC 0.7 0.0 0.0 RG 1 0 0 1 -91.388 0 cm 0 -19.249 91.388 95.384 re S [2 2] 1 d 0 0 m 91.388 0 l S EMC Q +1 0 0 1 -259.214 -198.425 cm +BT +/F52 119.552 Tf 259.214 198.425 Td[(a)]TJ/F53 9.963 Tf -230.868 -152.146 Td[(\134boxrotatebbl)-525({<angle>})-525(<box)1(>)]TJ/F53 7.97 Tf 0 -17.933 Td[(\134boxrotatebbl)-525({-34.1})]TJ +ET +endstream +endobj +94 0 obj << +/Type /Page +/Contents 98 0 R +/Resources 97 0 R +/MediaBox [0 0 453.543 340.157] +/Parent 92 0 R +>> endobj +97 0 obj << +/Properties << /OC1 1 0 R /OC2 2 0 R /OC3 3 0 R /OC4 4 0 R /OC5 5 0 R>> +/Font << /F52 17 0 R /F53 14 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +99 0 obj +<< /S /GoTo /D [100 0 R /Fit] >> +endobj +102 0 obj +(\\boxrotatebbr) +endobj +104 0 obj << +/Length 1087 +>> +stream +.5 w 1 j 1 J +BT +/F52 119.552 Tf 28.346 198.425 Td[(Y)83(o)]TJ +ET +1 0 0 1 167.826 198.425 cm +q /OC /OC1 BDC 2 Tr 0.7 g +1 0 0 1 -167.826 -198.425 cm +BT +/F52 119.552 Tf 167.826 198.425 Td[(g)]TJ +ET +1 0 0 1 227.602 198.425 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC2 BDC 0.3 G 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 -59.776 0 cm +q 0.82709 0.56209 -0.56209 0.82709 28.932 -33.599 cm +q /OC /OC3 BDC 2 Tr 1.0 0.8 0.0 rg +1 0 0 1 -167.826 -198.425 cm +BT +/F52 119.552 Tf 167.826 198.425 Td[(g)]TJ +ET +1 0 0 1 227.602 198.425 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC4 BDC 1.0 0.6 0.0 RG 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 31.662 0 cm +Q 1 0 0 1 91.438 0 cm +q /OC /OC5 BDC 0.7 0.0 0.0 RG 1 0 0 1 -91.438 0 cm 0 -52.825 91.438 95.398 re S [2 2] 1 d 0 0 m 91.438 0 l S EMC Q +1 0 0 1 -259.264 -198.425 cm +BT +/F52 119.552 Tf 259.264 198.425 Td[(a)]TJ/F53 9.963 Tf -230.918 -152.146 Td[(\134boxrotatebbr)-525({<angle>})-525(<box)1(>)]TJ/F53 7.97 Tf 0 -17.933 Td[(\134boxrotatebbr)-525({-34.2})]TJ +ET +endstream +endobj +100 0 obj << +/Type /Page +/Contents 104 0 R +/Resources 103 0 R +/MediaBox [0 0 453.543 340.157] +/Parent 92 0 R +>> endobj +103 0 obj << +/Properties << /OC1 1 0 R /OC2 2 0 R /OC3 3 0 R /OC4 4 0 R /OC5 5 0 R>> +/Font << /F52 17 0 R /F53 14 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +105 0 obj +<< /S /GoTo /D [106 0 R /Fit] >> +endobj +108 0 obj +(\\boxslantx) +endobj +110 0 obj << +/Length 1028 +>> +stream +.5 w 1 j 1 J +BT +/F52 119.552 Tf 28.346 198.425 Td[(Y)83(o)]TJ +ET +1 0 0 1 167.826 198.425 cm +q /OC /OC1 BDC 2 Tr 0.7 g +1 0 0 1 -167.826 -198.425 cm +BT +/F52 119.552 Tf 167.826 198.425 Td[(g)]TJ +ET +1 0 0 1 227.602 198.425 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC2 BDC 0.3 G 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 -59.776 0 cm +q 1 0.0 0.2717 1 0 0 cm +q /OC /OC3 BDC 2 Tr 1.0 0.8 0.0 rg +1 0 0 1 -167.826 -198.425 cm +BT +/F52 119.552 Tf 167.826 198.425 Td[(g)]TJ +ET +1 0 0 1 227.602 198.425 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC4 BDC 1.0 0.6 0.0 RG 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +Q 1 0 0 1 59.776 0 cm +q /OC /OC5 BDC 0.7 0.0 0.0 RG 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 -227.602 -198.425 cm +BT +/F52 119.552 Tf 227.602 198.425 Td[(a)]TJ/F53 9.963 Tf -199.256 -152.146 Td[(\134boxslantx)-525({<angle>})-525(<box>)]TJ/F53 7.97 Tf 0 -17.933 Td[(\134boxslantx)-525({15.2})]TJ +ET +endstream +endobj +106 0 obj << +/Type /Page +/Contents 110 0 R +/Resources 109 0 R +/MediaBox [0 0 453.543 340.157] +/Parent 92 0 R +>> endobj +109 0 obj << +/Properties << /OC1 1 0 R /OC2 2 0 R /OC3 3 0 R /OC4 4 0 R /OC5 5 0 R>> +/Font << /F52 17 0 R /F53 14 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +111 0 obj +<< /S /GoTo /D [112 0 R /Fit] >> +endobj +114 0 obj +(\\boxslanty) +endobj +116 0 obj << +/Length 1028 +>> +stream +.5 w 1 j 1 J +BT +/F52 119.552 Tf 28.346 198.425 Td[(Y)83(o)]TJ +ET +1 0 0 1 167.826 198.425 cm +q /OC /OC1 BDC 2 Tr 0.7 g +1 0 0 1 -167.826 -198.425 cm +BT +/F52 119.552 Tf 167.826 198.425 Td[(g)]TJ +ET +1 0 0 1 227.602 198.425 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC2 BDC 0.3 G 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 -59.776 0 cm +q 1 0.4727 0.0 1 0 0 cm +q /OC /OC3 BDC 2 Tr 1.0 0.8 0.0 rg +1 0 0 1 -167.826 -198.425 cm +BT +/F52 119.552 Tf 167.826 198.425 Td[(g)]TJ +ET +1 0 0 1 227.602 198.425 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC4 BDC 1.0 0.6 0.0 RG 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +Q 1 0 0 1 59.776 0 cm +q /OC /OC5 BDC 0.7 0.0 0.0 RG 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 -227.602 -198.425 cm +BT +/F52 119.552 Tf 227.602 198.425 Td[(a)]TJ/F53 9.963 Tf -199.256 -152.146 Td[(\134boxslanty)-525({<angle>})-525(<box>)]TJ/F53 7.97 Tf 0 -17.933 Td[(\134boxslanty)-525({25.3})]TJ +ET +endstream +endobj +112 0 obj << +/Type /Page +/Contents 116 0 R +/Resources 115 0 R +/MediaBox [0 0 453.543 340.157] +/Parent 92 0 R +>> endobj +115 0 obj << +/Properties << /OC1 1 0 R /OC2 2 0 R /OC3 3 0 R /OC4 4 0 R /OC5 5 0 R>> +/Font << /F52 17 0 R /F53 14 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +117 0 obj +<< /S /GoTo /D [118 0 R /Fit] >> +endobj +120 0 obj +(\\boxslantbbl) +endobj +122 0 obj << +/Length 1076 +>> +stream +.5 w 1 j 1 J +BT +/F52 119.552 Tf 28.346 198.425 Td[(Y)83(o)]TJ +ET +1 0 0 1 167.826 198.425 cm +q /OC /OC1 BDC 2 Tr 0.7 g +1 0 0 1 -167.826 -198.425 cm +BT +/F52 119.552 Tf 167.826 198.425 Td[(g)]TJ +ET +1 0 0 1 227.602 198.425 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC2 BDC 0.3 G 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 -59.776 0 cm +q 1 0.46631 0.26794 1 6.229 0 cm +q /OC /OC3 BDC 2 Tr 1.0 0.8 0.0 rg +1 0 0 1 -167.826 -198.425 cm +BT +/F52 119.552 Tf 167.826 198.425 Td[(g)]TJ +ET +1 0 0 1 227.602 198.425 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC4 BDC 1.0 0.6 0.0 RG 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 20.021 0 cm +Q 1 0 0 1 79.797 0 cm +q /OC /OC5 BDC 0.7 0.0 0.0 RG 1 0 0 1 -79.797 0 cm 0 -23.246 79.797 102.593 re S [2 2] 1 d 0 0 m 79.797 0 l S EMC Q +1 0 0 1 -247.623 -198.425 cm +BT +/F52 119.552 Tf 247.623 198.425 Td[(a)]TJ/F53 9.963 Tf -219.277 -152.146 Td[(\134boxslantbbl)-525({<angle>}{<angl)1(e>})-525(<box>)]TJ/F53 7.97 Tf 0 -17.933 Td[(\134boxslantbbl)-525({15}{25})]TJ +ET +endstream +endobj +118 0 obj << +/Type /Page +/Contents 122 0 R +/Resources 121 0 R +/MediaBox [0 0 453.543 340.157] +/Parent 92 0 R +>> endobj +121 0 obj << +/Properties << /OC1 1 0 R /OC2 2 0 R /OC3 3 0 R /OC4 4 0 R /OC5 5 0 R>> +/Font << /F52 17 0 R /F53 14 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +123 0 obj +<< /S /GoTo /D [124 0 R /Fit] >> +endobj +126 0 obj +(\\boxslantbbr) +endobj +128 0 obj << +/Length 1081 +>> +stream +.5 w 1 j 1 J +BT +/F52 119.552 Tf 28.346 198.425 Td[(Y)83(o)]TJ +ET +1 0 0 1 167.826 198.425 cm +q /OC /OC1 BDC 2 Tr 0.7 g +1 0 0 1 -167.826 -198.425 cm +BT +/F52 119.552 Tf 167.826 198.425 Td[(g)]TJ +ET +1 0 0 1 227.602 198.425 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC2 BDC 0.3 G 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 -59.776 0 cm +q 1 0.46631 0.26794 1 6.229 -27.874 cm +q /OC /OC3 BDC 2 Tr 1.0 0.8 0.0 rg +1 0 0 1 -167.826 -198.425 cm +BT +/F52 119.552 Tf 167.826 198.425 Td[(g)]TJ +ET +1 0 0 1 227.602 198.425 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC4 BDC 1.0 0.6 0.0 RG 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 20.021 0 cm +Q 1 0 0 1 79.797 0 cm +q /OC /OC5 BDC 0.7 0.0 0.0 RG 1 0 0 1 -79.797 0 cm 0 -51.12 79.797 102.593 re S [2 2] 1 d 0 0 m 79.797 0 l S EMC Q +1 0 0 1 -247.623 -198.425 cm +BT +/F52 119.552 Tf 247.623 198.425 Td[(a)]TJ/F53 9.963 Tf -219.277 -152.146 Td[(\134boxslantbbr)-525({<angle>}{<angl)1(e>})-525(<box>)]TJ/F53 7.97 Tf 0 -17.933 Td[(\134boxslantbbr)-525({15}{25})]TJ +ET +endstream +endobj +124 0 obj << +/Type /Page +/Contents 128 0 R +/Resources 127 0 R +/MediaBox [0 0 453.543 340.157] +/Parent 129 0 R +>> endobj +127 0 obj << +/Properties << /OC1 1 0 R /OC2 2 0 R /OC3 3 0 R /OC4 4 0 R /OC5 5 0 R>> +/Font << /F52 17 0 R /F53 14 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +130 0 obj +<< /S /GoTo /D [131 0 R /Fit] >> +endobj +133 0 obj +(\\boxscalex) +endobj +135 0 obj << +/Length 1047 +>> +stream +.5 w 1 j 1 J +BT +/F52 119.552 Tf 28.346 198.425 Td[(Y)83(o)]TJ +ET +1 0 0 1 167.826 198.425 cm +q /OC /OC1 BDC 2 Tr 0.7 g +1 0 0 1 -167.826 -198.425 cm +BT +/F52 119.552 Tf 167.826 198.425 Td[(g)]TJ +ET +1 0 0 1 227.602 198.425 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC2 BDC 0.3 G 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 -59.776 0 cm +q 0.75 0 0 1.0 0 0 cm +q /OC /OC3 BDC 2 Tr 1.0 0.8 0.0 rg +1 0 0 1 -167.826 -198.425 cm +BT +/F52 119.552 Tf 167.826 198.425 Td[(g)]TJ +ET +1 0 0 1 227.602 198.425 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC4 BDC 1.0 0.6 0.0 RG 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 -14.944 0 cm +Q 1 0 0 1 44.832 0 cm +q /OC /OC5 BDC 0.7 0.0 0.0 RG 1 0 0 1 -44.832 0 cm 0 -23.246 44.832 74.719 re S [2 2] 1 d 0 0 m 44.832 0 l S EMC Q +1 0 0 1 -212.658 -198.425 cm +BT +/F52 119.552 Tf 212.658 198.425 Td[(a)]TJ/F53 9.963 Tf -184.312 -152.146 Td[(\134boxscalex)-525({<numexpr>})-525(<box>)]TJ/F53 7.97 Tf 0 -17.933 Td[(\134boxscalex)-525({75})]TJ +ET +endstream +endobj +131 0 obj << +/Type /Page +/Contents 135 0 R +/Resources 134 0 R +/MediaBox [0 0 453.543 340.157] +/Parent 129 0 R +>> endobj +134 0 obj << +/Properties << /OC1 1 0 R /OC2 2 0 R /OC3 3 0 R /OC4 4 0 R /OC5 5 0 R>> +/Font << /F52 17 0 R /F53 14 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +136 0 obj +<< /S /GoTo /D [137 0 R /Fit] >> +endobj +139 0 obj +(\\boxscaley) +endobj +141 0 obj << +/Length 1026 +>> +stream +.5 w 1 j 1 J +BT +/F52 119.552 Tf 28.346 198.425 Td[(Y)83(o)]TJ +ET +1 0 0 1 167.826 198.425 cm +q /OC /OC1 BDC 2 Tr 0.7 g +1 0 0 1 -167.826 -198.425 cm +BT +/F52 119.552 Tf 167.826 198.425 Td[(g)]TJ +ET +1 0 0 1 227.602 198.425 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC2 BDC 0.3 G 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 -59.776 0 cm +q 1.0 0 0 0.75 0 0 cm +q /OC /OC3 BDC 2 Tr 1.0 0.8 0.0 rg +1 0 0 1 -167.826 -198.425 cm +BT +/F52 119.552 Tf 167.826 198.425 Td[(g)]TJ +ET +1 0 0 1 227.602 198.425 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC4 BDC 1.0 0.6 0.0 RG 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +Q 1 0 0 1 59.776 0 cm +q /OC /OC5 BDC 0.7 0.0 0.0 RG 1 0 0 1 -59.776 0 cm 0 -17.434 59.776 56.039 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 -227.602 -198.425 cm +BT +/F52 119.552 Tf 227.602 198.425 Td[(a)]TJ/F53 9.963 Tf -199.256 -152.146 Td[(\134boxscaley)-525({<numexpr>})-525(<box>)]TJ/F53 7.97 Tf 0 -17.933 Td[(\134boxscaley)-525({75})]TJ +ET +endstream +endobj +137 0 obj << +/Type /Page +/Contents 141 0 R +/Resources 140 0 R +/MediaBox [0 0 453.543 340.157] +/Parent 129 0 R +>> endobj +140 0 obj << +/Properties << /OC1 1 0 R /OC2 2 0 R /OC3 3 0 R /OC4 4 0 R /OC5 5 0 R>> +/Font << /F52 17 0 R /F53 14 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +142 0 obj +<< /S /GoTo /D [143 0 R /Fit] >> +endobj +145 0 obj +(\\boxscalexy) +endobj +147 0 obj << +/Length 1043 +>> +stream +.5 w 1 j 1 J +BT +/F52 119.552 Tf 28.346 198.425 Td[(Y)83(o)]TJ +ET +1 0 0 1 167.826 198.425 cm +q /OC /OC1 BDC 2 Tr 0.7 g +1 0 0 1 -167.826 -198.425 cm +BT +/F52 119.552 Tf 167.826 198.425 Td[(g)]TJ +ET +1 0 0 1 227.602 198.425 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC2 BDC 0.3 G 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 -59.776 0 cm +q /OC /OC3 BDC 2 Tr 1.0 0.8 0.0 rg +1 0 0 1 -167.826 -198.425 cm +BT +/F52 119.552 Tf 167.826 198.425 Td[(g)]TJ +ET +1 0 0 1 227.602 198.425 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC4 BDC 1.0 0.6 0.0 RG 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 29.888 0 cm +q /OC /OC5 BDC 0.7 0.0 0.0 RG 1 0 0 1 -89.664 0 cm 0 -17.434 89.664 56.039 re S [2 2] 1 d 0 0 m 89.664 0 l S EMC Q +1 0 0 1 -257.49 -198.425 cm +BT +/F52 119.552 Tf 257.49 198.425 Td[(a)]TJ/F53 9.963 Tf -229.144 -152.146 Td[(\134boxscalexy)-525({<numexpr>}{<num)1(expr>})-525(<box>)]TJ/F53 7.97 Tf 0 -17.933 Td[(\134cboxtransoff)-525(\134boxscalexy)-525({150}{75})]TJ +ET +endstream +endobj +143 0 obj << +/Type /Page +/Contents 147 0 R +/Resources 146 0 R +/MediaBox [0 0 453.543 340.157] +/Parent 129 0 R +>> endobj +146 0 obj << +/Properties << /OC1 1 0 R /OC2 2 0 R /OC3 3 0 R /OC4 4 0 R /OC5 5 0 R>> +/Font << /F52 17 0 R /F53 14 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +148 0 obj +<< /S /GoTo /D [149 0 R /Fit] >> +endobj +151 0 obj +(\\boxscale) +endobj +153 0 obj << +/Length 1047 +>> +stream +.5 w 1 j 1 J +BT +/F52 119.552 Tf 28.346 198.425 Td[(Y)83(o)]TJ +ET +1 0 0 1 167.826 198.425 cm +q /OC /OC1 BDC 2 Tr 0.7 g +1 0 0 1 -167.826 -198.425 cm +BT +/F52 119.552 Tf 167.826 198.425 Td[(g)]TJ +ET +1 0 0 1 227.602 198.425 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC2 BDC 0.3 G 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 -59.776 0 cm +q 0.75 0 0 0.75 0 0 cm +q /OC /OC3 BDC 2 Tr 1.0 0.8 0.0 rg +1 0 0 1 -167.826 -198.425 cm +BT +/F52 119.552 Tf 167.826 198.425 Td[(g)]TJ +ET +1 0 0 1 227.602 198.425 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC4 BDC 1.0 0.6 0.0 RG 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +Q 1 0 0 1 59.776 0 cm +q /OC /OC5 BDC 0.7 0.0 0.0 RG 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 -227.602 -198.425 cm +BT +/F52 119.552 Tf 227.602 198.425 Td[(a)]TJ/F53 9.963 Tf -199.256 -152.146 Td[(\134boxscale)-525({<numexpr>})-525(<box>)]TJ/F53 7.97 Tf 0 -17.933 Td[(\134bboxtransoff)-525(\134boxscale)-525({75})]TJ +ET +endstream +endobj +149 0 obj << +/Type /Page +/Contents 153 0 R +/Resources 152 0 R +/MediaBox [0 0 453.543 340.157] +/Parent 129 0 R +>> endobj +152 0 obj << +/Properties << /OC1 1 0 R /OC2 2 0 R /OC3 3 0 R /OC4 4 0 R /OC5 5 0 R>> +/Font << /F52 17 0 R /F53 14 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +154 0 obj +<< /S /GoTo /D [155 0 R /Fit] >> +endobj +157 0 obj +(\\boxscalexto) +endobj +159 0 obj << +/Length 1064 +>> +stream +.5 w 1 j 1 J +BT +/F52 119.552 Tf 28.346 198.425 Td[(Y)83(o)]TJ +ET +1 0 0 1 167.826 198.425 cm +q /OC /OC1 BDC 2 Tr 0.7 g +1 0 0 1 -167.826 -198.425 cm +BT +/F52 119.552 Tf 167.826 198.425 Td[(g)]TJ +ET +1 0 0 1 227.602 198.425 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC2 BDC 0.3 G 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 -59.776 0 cm +q 0.64967 0 0 1.0 0 0 cm +q /OC /OC3 BDC 2 Tr 1.0 0.8 0.0 rg +1 0 0 1 -167.826 -198.425 cm +BT +/F52 119.552 Tf 167.826 198.425 Td[(g)]TJ +ET +1 0 0 1 227.602 198.425 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC4 BDC 1.0 0.6 0.0 RG 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 -20.941 0 cm +Q 1 0 0 1 38.835 0 cm +q /OC /OC5 BDC 0.7 0.0 0.0 RG 1 0 0 1 -38.835 0 cm 0 -23.246 38.835 74.719 re S [2 2] 1 d 0 0 m 38.835 0 l S EMC Q +1 0 0 1 -206.661 -198.425 cm +BT +/F52 119.552 Tf 206.661 198.425 Td[(a)]TJ/F53 9.963 Tf -178.315 -152.146 Td[(\134boxscalexto)-525({<dimexpr>})-525(<bo)1(x>)]TJ/F53 7.97 Tf 0 -17.933 Td[(\134boxscalexto)-525({.5in+.1cm})]TJ +ET +endstream +endobj +155 0 obj << +/Type /Page +/Contents 159 0 R +/Resources 158 0 R +/MediaBox [0 0 453.543 340.157] +/Parent 129 0 R +>> endobj +158 0 obj << +/Properties << /OC1 1 0 R /OC2 2 0 R /OC3 3 0 R /OC4 4 0 R /OC5 5 0 R>> +/Font << /F52 17 0 R /F53 14 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +160 0 obj +<< /S /GoTo /D [161 0 R /Fit] >> +endobj +163 0 obj +(\\boxscaleyto) +endobj +165 0 obj << +/Length 1043 +>> +stream +.5 w 1 j 1 J +BT +/F52 119.552 Tf 28.346 198.425 Td[(Y)83(o)]TJ +ET +1 0 0 1 167.826 198.425 cm +q /OC /OC1 BDC 2 Tr 0.7 g +1 0 0 1 -167.826 -198.425 cm +BT +/F52 119.552 Tf 167.826 198.425 Td[(g)]TJ +ET +1 0 0 1 227.602 198.425 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC2 BDC 0.3 G 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 -59.776 0 cm +q 1.0 0 0 0.51974 0 0 cm +q /OC /OC3 BDC 2 Tr 1.0 0.8 0.0 rg +1 0 0 1 -167.826 -198.425 cm +BT +/F52 119.552 Tf 167.826 198.425 Td[(g)]TJ +ET +1 0 0 1 227.602 198.425 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC4 BDC 1.0 0.6 0.0 RG 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +Q 1 0 0 1 59.776 0 cm +q /OC /OC5 BDC 0.7 0.0 0.0 RG 1 0 0 1 -59.776 0 cm 0 -12.082 59.776 38.835 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 -227.602 -198.425 cm +BT +/F52 119.552 Tf 227.602 198.425 Td[(a)]TJ/F53 9.963 Tf -199.256 -152.146 Td[(\134boxscaleyto)-525({<dimexpr>})-525(<bo)1(x>)]TJ/F53 7.97 Tf 0 -17.933 Td[(\134boxscaleyto)-525({.5in+.1cm})]TJ +ET +endstream +endobj +161 0 obj << +/Type /Page +/Contents 165 0 R +/Resources 164 0 R +/MediaBox [0 0 453.543 340.157] +/Parent 166 0 R +>> endobj +164 0 obj << +/Properties << /OC1 1 0 R /OC2 2 0 R /OC3 3 0 R /OC4 4 0 R /OC5 5 0 R>> +/Font << /F52 17 0 R /F53 14 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +167 0 obj +<< /S /GoTo /D [168 0 R /Fit] >> +endobj +170 0 obj +(\\boxscalexyto) +endobj +172 0 obj << +/Length 1081 +>> +stream +.5 w 1 j 1 J +BT +/F52 119.552 Tf 28.346 198.425 Td[(Y)83(o)]TJ +ET +1 0 0 1 167.826 198.425 cm +q /OC /OC1 BDC 2 Tr 0.7 g +1 0 0 1 -167.826 -198.425 cm +BT +/F52 119.552 Tf 167.826 198.425 Td[(g)]TJ +ET +1 0 0 1 227.602 198.425 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC2 BDC 0.3 G 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 -59.776 0 cm +q 0.64967 0 0 0.48181 0 0 cm +q /OC /OC3 BDC 2 Tr 1.0 0.8 0.0 rg +1 0 0 1 -167.826 -198.425 cm +BT +/F52 119.552 Tf 167.826 198.425 Td[(g)]TJ +ET +1 0 0 1 227.602 198.425 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC4 BDC 1.0 0.6 0.0 RG 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 -20.941 0 cm +Q 1 0 0 1 38.835 0 cm +q /OC /OC5 BDC 0.7 0.0 0.0 RG 1 0 0 1 -38.835 0 cm 0 -11.2 38.835 36 re S [2 2] 1 d 0 0 m 38.835 0 l S EMC Q +1 0 0 1 -206.661 -198.425 cm +BT +/F52 119.552 Tf 206.661 198.425 Td[(a)]TJ/F53 9.963 Tf -178.315 -152.146 Td[(\134boxscalexyto)-525({<dimxpr>}{<di)1(mexpr>})-525(<box>)]TJ/F53 7.97 Tf 0 -17.933 Td[(\134boxscalexyto)-525({.5in+.1cm}{1in/2})]TJ +ET +endstream +endobj +168 0 obj << +/Type /Page +/Contents 172 0 R +/Resources 171 0 R +/MediaBox [0 0 453.543 340.157] +/Parent 166 0 R +>> endobj +171 0 obj << +/Properties << /OC1 1 0 R /OC2 2 0 R /OC3 3 0 R /OC4 4 0 R /OC5 5 0 R>> +/Font << /F52 17 0 R /F53 14 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +173 0 obj +<< /S /GoTo /D [174 0 R /Fit] >> +endobj +176 0 obj +(\\boxscalehtto) +endobj +178 0 obj << +/Length 1045 +>> +stream +.5 w 1 j 1 J +BT +/F52 119.552 Tf 28.346 198.425 Td[(Y)83(o)]TJ +ET +1 0 0 1 167.826 198.425 cm +q /OC /OC1 BDC 2 Tr 0.7 g +1 0 0 1 -167.826 -198.425 cm +BT +/F52 119.552 Tf 167.826 198.425 Td[(g)]TJ +ET +1 0 0 1 227.602 198.425 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC2 BDC 0.3 G 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 -59.776 0 cm +q 1.0 0 0 0.75447 0 0 cm +q /OC /OC3 BDC 2 Tr 1.0 0.8 0.0 rg +1 0 0 1 -167.826 -198.425 cm +BT +/F52 119.552 Tf 167.826 198.425 Td[(g)]TJ +ET +1 0 0 1 227.602 198.425 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC4 BDC 1.0 0.6 0.0 RG 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +Q 1 0 0 1 59.776 0 cm +q /OC /OC5 BDC 0.7 0.0 0.0 RG 1 0 0 1 -59.776 0 cm 0 -17.538 59.776 56.373 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 -227.602 -198.425 cm +BT +/F52 119.552 Tf 227.602 198.425 Td[(a)]TJ/F53 9.963 Tf -199.256 -152.146 Td[(\134boxscalehtto)-525({<dimexpr>})-525(<b)1(ox>)]TJ/F53 7.97 Tf 0 -17.933 Td[(\134boxscalehtto)-525({.5in+.1cm})]TJ +ET +endstream +endobj +174 0 obj << +/Type /Page +/Contents 178 0 R +/Resources 177 0 R +/MediaBox [0 0 453.543 340.157] +/Parent 166 0 R +>> endobj +177 0 obj << +/Properties << /OC1 1 0 R /OC2 2 0 R /OC3 3 0 R /OC4 4 0 R /OC5 5 0 R>> +/Font << /F52 17 0 R /F53 14 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +179 0 obj +<< /S /GoTo /D [180 0 R /Fit] >> +endobj +182 0 obj +(\\boxscaledpto) +endobj +184 0 obj << +/Length 1046 +>> +stream +.5 w 1 j 1 J +BT +/F52 119.552 Tf 28.346 198.425 Td[(Y)83(o)]TJ +ET +1 0 0 1 167.826 198.425 cm +q /OC /OC1 BDC 2 Tr 0.7 g +1 0 0 1 -167.826 -198.425 cm +BT +/F52 119.552 Tf 167.826 198.425 Td[(g)]TJ +ET +1 0 0 1 227.602 198.425 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC2 BDC 0.3 G 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 -59.776 0 cm +q 1.0 0 0 1.67061 0 0 cm +q /OC /OC3 BDC 2 Tr 1.0 0.8 0.0 rg +1 0 0 1 -167.826 -198.425 cm +BT +/F52 119.552 Tf 167.826 198.425 Td[(g)]TJ +ET +1 0 0 1 227.602 198.425 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC4 BDC 1.0 0.6 0.0 RG 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +Q 1 0 0 1 59.776 0 cm +q /OC /OC5 BDC 0.7 0.0 0.0 RG 1 0 0 1 -59.776 0 cm 0 -38.835 59.776 124.826 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 -227.602 -198.425 cm +BT +/F52 119.552 Tf 227.602 198.425 Td[(a)]TJ/F53 9.963 Tf -199.256 -152.146 Td[(\134boxscaledpto)-525({<dimexpr>})-525(<b)1(ox>)]TJ/F53 7.97 Tf 0 -17.933 Td[(\134boxscaledpto)-525({.5in+.1cm})]TJ +ET +endstream +endobj +180 0 obj << +/Type /Page +/Contents 184 0 R +/Resources 183 0 R +/MediaBox [0 0 453.543 340.157] +/Parent 166 0 R +>> endobj +183 0 obj << +/Properties << /OC1 1 0 R /OC2 2 0 R /OC3 3 0 R /OC4 4 0 R /OC5 5 0 R>> +/Font << /F52 17 0 R /F53 14 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +185 0 obj +<< /S /GoTo /D [186 0 R /Fit] >> +endobj +188 0 obj +(\\boxuniscalexto) +endobj +190 0 obj << +/Length 1071 +>> +stream +.5 w 1 j 1 J +BT +/F52 119.552 Tf 28.346 198.425 Td[(Y)83(o)]TJ +ET +1 0 0 1 167.826 198.425 cm +q /OC /OC1 BDC 2 Tr 0.7 g +1 0 0 1 -167.826 -198.425 cm +BT +/F52 119.552 Tf 167.826 198.425 Td[(g)]TJ +ET +1 0 0 1 227.602 198.425 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC2 BDC 0.3 G 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 -59.776 0 cm +q 0.64967 0 0 0.64967 0 0 cm +q /OC /OC3 BDC 2 Tr 1.0 0.8 0.0 rg +1 0 0 1 -167.826 -198.425 cm +BT +/F52 119.552 Tf 167.826 198.425 Td[(g)]TJ +ET +1 0 0 1 227.602 198.425 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC4 BDC 1.0 0.6 0.0 RG 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 -20.941 0 cm +Q 1 0 0 1 38.835 0 cm +q /OC /OC5 BDC 0.7 0.0 0.0 RG 1 0 0 1 -38.835 0 cm 0 -15.102 38.835 48.543 re S [2 2] 1 d 0 0 m 38.835 0 l S EMC Q +1 0 0 1 -206.661 -198.425 cm +BT +/F52 119.552 Tf 206.661 198.425 Td[(a)]TJ/F53 9.963 Tf -178.315 -152.146 Td[(\134boxuniscalexto)-525({<dimexpr>})-524(<box>)]TJ/F53 7.97 Tf 0 -17.933 Td[(\134boxuniscalexto)-525({.5in+.1cm})]TJ +ET +endstream +endobj +186 0 obj << +/Type /Page +/Contents 190 0 R +/Resources 189 0 R +/MediaBox [0 0 453.543 340.157] +/Parent 166 0 R +>> endobj +189 0 obj << +/Properties << /OC1 1 0 R /OC2 2 0 R /OC3 3 0 R /OC4 4 0 R /OC5 5 0 R>> +/Font << /F52 17 0 R /F53 14 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +191 0 obj +<< /S /GoTo /D [192 0 R /Fit] >> +endobj +194 0 obj +(\\boxuniscaleyto) +endobj +196 0 obj << +/Length 1071 +>> +stream +.5 w 1 j 1 J +BT +/F52 119.552 Tf 28.346 198.425 Td[(Y)83(o)]TJ +ET +1 0 0 1 167.826 198.425 cm +q /OC /OC1 BDC 2 Tr 0.7 g +1 0 0 1 -167.826 -198.425 cm +BT +/F52 119.552 Tf 167.826 198.425 Td[(g)]TJ +ET +1 0 0 1 227.602 198.425 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC2 BDC 0.3 G 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 -59.776 0 cm +q 0.51974 0 0 0.51974 0 0 cm +q /OC /OC3 BDC 2 Tr 1.0 0.8 0.0 rg +1 0 0 1 -167.826 -198.425 cm +BT +/F52 119.552 Tf 167.826 198.425 Td[(g)]TJ +ET +1 0 0 1 227.602 198.425 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC4 BDC 1.0 0.6 0.0 RG 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 -28.708 0 cm +Q 1 0 0 1 31.068 0 cm +q /OC /OC5 BDC 0.7 0.0 0.0 RG 1 0 0 1 -31.068 0 cm 0 -12.082 31.068 38.835 re S [2 2] 1 d 0 0 m 31.068 0 l S EMC Q +1 0 0 1 -198.894 -198.425 cm +BT +/F52 119.552 Tf 198.894 198.425 Td[(a)]TJ/F53 9.963 Tf -170.548 -152.146 Td[(\134boxuniscaleyto)-525({<dimexpr>})-524(<box>)]TJ/F53 7.97 Tf 0 -17.933 Td[(\134boxuniscaleyto)-525({.5in+.1cm})]TJ +ET +endstream +endobj +192 0 obj << +/Type /Page +/Contents 196 0 R +/Resources 195 0 R +/MediaBox [0 0 453.543 340.157] +/Parent 166 0 R +>> endobj +195 0 obj << +/Properties << /OC1 1 0 R /OC2 2 0 R /OC3 3 0 R /OC4 4 0 R /OC5 5 0 R>> +/Font << /F52 17 0 R /F53 14 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +197 0 obj +<< /S /GoTo /D [198 0 R /Fit] >> +endobj +200 0 obj +(\\boxuniscalehtto) +endobj +202 0 obj << +/Length 1073 +>> +stream +.5 w 1 j 1 J +BT +/F52 119.552 Tf 28.346 198.425 Td[(Y)83(o)]TJ +ET +1 0 0 1 167.826 198.425 cm +q /OC /OC1 BDC 2 Tr 0.7 g +1 0 0 1 -167.826 -198.425 cm +BT +/F52 119.552 Tf 167.826 198.425 Td[(g)]TJ +ET +1 0 0 1 227.602 198.425 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC2 BDC 0.3 G 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 -59.776 0 cm +q 0.75447 0 0 0.75447 0 0 cm +q /OC /OC3 BDC 2 Tr 1.0 0.8 0.0 rg +1 0 0 1 -167.826 -198.425 cm +BT +/F52 119.552 Tf 167.826 198.425 Td[(g)]TJ +ET +1 0 0 1 227.602 198.425 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC4 BDC 1.0 0.6 0.0 RG 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 -14.677 0 cm +Q 1 0 0 1 45.099 0 cm +q /OC /OC5 BDC 0.7 0.0 0.0 RG 1 0 0 1 -45.099 0 cm 0 -17.538 45.099 56.373 re S [2 2] 1 d 0 0 m 45.099 0 l S EMC Q +1 0 0 1 -212.925 -198.425 cm +BT +/F52 119.552 Tf 212.925 198.425 Td[(a)]TJ/F53 9.963 Tf -184.579 -152.146 Td[(\134boxuniscalehtto)-525({<dimexpr>})-524(<box>)]TJ/F53 7.97 Tf 0 -17.933 Td[(\134boxuniscalehtto)-525({.5in+.1cm})]TJ +ET +endstream +endobj +198 0 obj << +/Type /Page +/Contents 202 0 R +/Resources 201 0 R +/MediaBox [0 0 453.543 340.157] +/Parent 203 0 R +>> endobj +201 0 obj << +/Properties << /OC1 1 0 R /OC2 2 0 R /OC3 3 0 R /OC4 4 0 R /OC5 5 0 R>> +/Font << /F52 17 0 R /F53 14 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +204 0 obj +<< /S /GoTo /D [205 0 R /Fit] >> +endobj +207 0 obj +(\\boxuniscaledpto) +endobj +209 0 obj << +/Length 1073 +>> +stream +.5 w 1 j 1 J +BT +/F52 119.552 Tf 28.346 198.425 Td[(Y)83(o)]TJ +ET +1 0 0 1 167.826 198.425 cm +q /OC /OC1 BDC 2 Tr 0.7 g +1 0 0 1 -167.826 -198.425 cm +BT +/F52 119.552 Tf 167.826 198.425 Td[(g)]TJ +ET +1 0 0 1 227.602 198.425 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC2 BDC 0.3 G 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 -59.776 0 cm +q 1.67061 0 0 1.67061 0 0 cm +q /OC /OC3 BDC 2 Tr 1.0 0.8 0.0 rg +1 0 0 1 -167.826 -198.425 cm +BT +/F52 119.552 Tf 167.826 198.425 Td[(g)]TJ +ET +1 0 0 1 227.602 198.425 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC4 BDC 1.0 0.6 0.0 RG 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 40.086 0 cm +Q 1 0 0 1 99.862 0 cm +q /OC /OC5 BDC 0.7 0.0 0.0 RG 1 0 0 1 -99.862 0 cm 0 -38.835 99.862 124.826 re S [2 2] 1 d 0 0 m 99.862 0 l S EMC Q +1 0 0 1 -267.688 -198.425 cm +BT +/F52 119.552 Tf 267.688 198.425 Td[(a)]TJ/F53 9.963 Tf -239.342 -152.146 Td[(\134boxuniscaledpto)-525({<dimexpr>})-524(<box>)]TJ/F53 7.97 Tf 0 -17.933 Td[(\134boxuniscaledpto)-525({.5in+.1cm})]TJ +ET +endstream +endobj +205 0 obj << +/Type /Page +/Contents 209 0 R +/Resources 208 0 R +/MediaBox [0 0 453.543 340.157] +/Parent 203 0 R +>> endobj +208 0 obj << +/Properties << /OC1 1 0 R /OC2 2 0 R /OC3 3 0 R /OC4 4 0 R /OC5 5 0 R>> +/Font << /F52 17 0 R /F53 14 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +210 0 obj +<< /S /GoTo /D [211 0 R /Fit] >> +endobj +213 0 obj +(\\boxextscale) +endobj +215 0 obj << +/Length 1099 +>> +stream +.5 w 1 j 1 J +BT +/F52 119.552 Tf 28.346 198.425 Td[(Y)83(o)]TJ +ET +1 0 0 1 167.826 198.425 cm +q /OC /OC1 BDC 2 Tr 0.7 g +1 0 0 1 -167.826 -198.425 cm +BT +/F52 119.552 Tf 167.826 198.425 Td[(g)]TJ +ET +1 0 0 1 227.602 198.425 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC2 BDC 0.3 G 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 -59.776 0 cm +q 1.09485 0 0 1.49318 0 -11.213 cm +q /OC /OC3 BDC 2 Tr 1.0 0.8 0.0 rg +1 0 0 1 -167.826 -198.425 cm +BT +/F52 119.552 Tf 167.826 198.425 Td[(g)]TJ +ET +1 0 0 1 227.602 198.425 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC4 BDC 1.0 0.6 0.0 RG 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 5.669 0 cm +Q 1 0 0 1 65.445 0 cm +q /OC /OC5 BDC 0.7 0.0 0.0 RG 1 0 0 1 -65.445 0 cm 0 -45.923 65.445 111.569 re S [2 2] 1 d 0 0 m 65.445 0 l S EMC Q +1 0 0 1 -233.271 -198.425 cm +BT +/F52 119.552 Tf 233.271 198.425 Td[(a)]TJ/F53 9.963 Tf -204.925 -152.146 Td[(\134boxextscale)-525({<dimexpr>}{<di)1(mexpr>}{<dimexpr>})-525(<box>)]TJ/F53 7.97 Tf 0 -17.933 Td[(\134boxextscale)-525({2mm}{5mm}{8mm})]TJ +ET +endstream +endobj +211 0 obj << +/Type /Page +/Contents 215 0 R +/Resources 214 0 R +/MediaBox [0 0 453.543 340.157] +/Parent 203 0 R +>> endobj +214 0 obj << +/Properties << /OC1 1 0 R /OC2 2 0 R /OC3 3 0 R /OC4 4 0 R /OC5 5 0 R>> +/Font << /F52 17 0 R /F53 14 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +216 0 obj +<< /S /GoTo /D [217 0 R /Fit] >> +endobj +219 0 obj +(\\boxextscaleto) +endobj +221 0 obj << +/Length 1103 +>> +stream +.5 w 1 j 1 J +BT +/F52 119.552 Tf 28.346 198.425 Td[(Y)83(o)]TJ +ET +1 0 0 1 167.826 198.425 cm +q /OC /OC1 BDC 2 Tr 0.7 g +1 0 0 1 -167.826 -198.425 cm +BT +/F52 119.552 Tf 167.826 198.425 Td[(g)]TJ +ET +1 0 0 1 227.602 198.425 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC2 BDC 0.3 G 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 -59.776 0 cm +q 1.42264 0 0 1.13812 0 -30.236 cm +q /OC /OC3 BDC 2 Tr 1.0 0.8 0.0 rg +1 0 0 1 -167.826 -198.425 cm +BT +/F52 119.552 Tf 167.826 198.425 Td[(g)]TJ +ET +1 0 0 1 227.602 198.425 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC4 BDC 1.0 0.6 0.0 RG 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 25.263 0 cm +Q 1 0 0 1 85.039 0 cm +q /OC /OC5 BDC 0.7 0.0 0.0 RG 1 0 0 1 -85.039 0 cm 0 -56.693 85.039 85.039 re S [2 2] 1 d 0 0 m 85.039 0 l S EMC Q +1 0 0 1 -252.865 -198.425 cm +BT +/F52 119.552 Tf 252.865 198.425 Td[(a)]TJ/F53 9.963 Tf -224.519 -152.146 Td[(\134boxextscaleto)-525({<dimexpr>}{<)1(dimexpr>}{<dimexpr>})-525(<box>)]TJ/F53 7.97 Tf 0 -17.933 Td[(\134boxextscaleto)-525({3cm}{1cm}{2cm})]TJ +ET +endstream +endobj +217 0 obj << +/Type /Page +/Contents 221 0 R +/Resources 220 0 R +/MediaBox [0 0 453.543 340.157] +/Parent 203 0 R +>> endobj +220 0 obj << +/Properties << /OC1 1 0 R /OC2 2 0 R /OC3 3 0 R /OC4 4 0 R /OC5 5 0 R>> +/Font << /F52 17 0 R /F53 14 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +222 0 obj +<< /S /GoTo /D [223 0 R /Fit] >> +endobj +225 0 obj +(\\boxexts) +endobj +227 0 obj << +/Length 1091 +>> +stream +.5 w 1 j 1 J +BT +/F52 119.552 Tf 28.346 198.425 Td[(Y)83(o)]TJ +ET +1 0 0 1 167.826 198.425 cm +q /OC /OC1 BDC 2 Tr 0.7 g +1 0 0 1 -167.826 -198.425 cm +BT +/F52 119.552 Tf 167.826 198.425 Td[(g)]TJ +ET +1 0 0 1 227.602 198.425 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC2 BDC 0.3 G 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 -59.776 0 cm +q 1.28453 0 0 1.37938 -8.504 -5.354 cm +q /OC /OC3 BDC 2 Tr 1.0 0.8 0.0 rg +1 0 0 1 -167.826 -198.425 cm +BT +/F52 119.552 Tf 167.826 198.425 Td[(g)]TJ +ET +1 0 0 1 227.602 198.425 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC4 BDC 1.0 0.6 0.0 RG 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +Q 1 0 0 1 59.776 0 cm +q /OC /OC5 BDC 0.7 0.0 0.0 RG 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 -227.602 -198.425 cm +BT +/F52 119.552 Tf 227.602 198.425 Td[(a)]TJ/F53 9.963 Tf -199.256 -152.146 Td[(\134boxexts)-525({<dimexpr>}{<dimexp)1(r>}{<dimexpr>}{<dimexpr>})-525(<box>)]TJ/F53 7.97 Tf 0 -17.933 Td[(\134boxexts)-525({3mm}{3mm}{5mm}{5mm})]TJ +ET +endstream +endobj +223 0 obj << +/Type /Page +/Contents 227 0 R +/Resources 226 0 R +/MediaBox [0 0 453.543 340.157] +/Parent 203 0 R +>> endobj +226 0 obj << +/Properties << /OC1 1 0 R /OC2 2 0 R /OC3 3 0 R /OC4 4 0 R /OC5 5 0 R>> +/Font << /F52 17 0 R /F53 14 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +228 0 obj +<< /S /GoTo /D [229 0 R /Fit] >> +endobj +231 0 obj +(\\boxextents) +endobj +233 0 obj << +/Length 1062 +>> +stream +.5 w 1 j 1 J +BT +/F52 119.552 Tf 28.346 198.425 Td[(Y)83(o)]TJ +ET +1 0 0 1 167.826 198.425 cm +q /OC /OC1 BDC 2 Tr 0.7 g +1 0 0 1 -167.826 -198.425 cm +BT +/F52 119.552 Tf 167.826 198.425 Td[(g)]TJ +ET +1 0 0 1 227.602 198.425 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC2 BDC 0.3 G 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 -54.107 45.923 cm +q /OC /OC3 BDC 2 Tr 1.0 0.8 0.0 rg +1 0 0 1 -173.495 -244.348 cm +BT +/F52 119.552 Tf 173.495 244.348 Td[(g)]TJ +ET +1 0 0 1 233.271 244.348 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC4 BDC 1.0 0.6 0.0 RG 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 11.339 -45.923 cm +q /OC /OC5 BDC 0.7 0.0 0.0 RG 1 0 0 1 -76.784 0 cm 0 0.0 76.784 114.404 re S [2 2] 1 d 0 0 m 76.784 0 l S EMC Q +1 0 0 1 -244.61 -198.425 cm +BT +/F52 119.552 Tf 244.61 198.425 Td[(a)]TJ/F53 9.963 Tf -216.264 -152.146 Td[(\134boxextents)-525({<dimexpr>}{<dim)1(expr>}{<dimexpr>}{<dimexpr>})-525(<box>)]TJ/F53 7.97 Tf 0 -17.933 Td[(\134boxextents)-525({2mm}{4mm}{6mm}{8mm})]TJ +ET +endstream +endobj +229 0 obj << +/Type /Page +/Contents 233 0 R +/Resources 232 0 R +/MediaBox [0 0 453.543 340.157] +/Parent 203 0 R +>> endobj +232 0 obj << +/Properties << /OC1 1 0 R /OC2 2 0 R /OC3 3 0 R /OC4 4 0 R /OC5 5 0 R>> +/Font << /F52 17 0 R /F53 14 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +234 0 obj +<< /S /GoTo /D [235 0 R /Fit] >> +endobj +237 0 obj +(\\boxxformspec) +endobj +238 0 obj << +/Type /XObject +/Subtype /Form +/BBox [0 0 31.181 31.181] +/FormType 1 +/Matrix [1 0 0 1 0 0] +/Resources 239 0 R +/Length 282 +>> +stream +1 0 0 1 0 8.504 cm +q /OC /OC3 BDC 2 Tr 1.0 0.8 0.0 rg +1 0 0 1 0 -317.48 cm +BT +/F52 119.552 Tf 0 317.48 Td[(g)]TJ +ET +1 0 0 1 59.776 317.48 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC4 BDC 1.0 0.6 0.0 RG 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +endstream +endobj +239 0 obj << +/Properties << /OC1 1 0 R /OC2 2 0 R /OC3 3 0 R /OC4 4 0 R /OC5 5 0 R>> +/Font << /F52 17 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +241 0 obj << +/Length 889 +>> +stream +.5 w 1 j 1 J +BT +/F52 119.552 Tf 28.346 198.425 Td[(Y)83(o)]TJ +ET +1 0 0 1 167.826 198.425 cm +q /OC /OC1 BDC 2 Tr 0.7 g +1 0 0 1 -167.826 -198.425 cm +BT +/F52 119.552 Tf 167.826 198.425 Td[(g)]TJ +ET +1 0 0 1 227.602 198.425 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC2 BDC 0.3 G 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +q +1 0 0 1 -59.776 -8.504 cm +/Fm1 Do +Q +1 0 0 1 -28.595 0 cm +q /OC /OC5 BDC 0.7 0.0 0.0 RG 1 0 0 1 -31.181 0 cm 0 -8.504 31.181 31.181 re S [2 2] 1 d 0 0 m 31.181 0 l S EMC Q +1 0 0 1 -199.007 -198.425 cm +BT +/F52 119.552 Tf 199.007 198.425 Td[(a)]TJ/F53 9.963 Tf -170.661 -152.146 Td[(\134boxxformspec)-525(resources{/Foo)-524(/Bar})-525(\134boxxform)-1050(<box>)]TJ/F53 7.97 Tf 0 -17.933 Td[(\134boxxformspec)-525(resources{\134the)-525(\134pdfpageresources)-525(})-525(\134boxxform)-525(\134boxresizeto)-525({11mm})-1({8mm}{3mm})]TJ +ET +endstream +endobj +235 0 obj << +/Type /Page +/Contents 241 0 R +/Resources 240 0 R +/MediaBox [0 0 453.543 340.157] +/Parent 242 0 R +>> endobj +240 0 obj << +/Properties << /OC1 1 0 R /OC2 2 0 R /OC3 3 0 R /OC4 4 0 R /OC5 5 0 R>> +/Font << /F52 17 0 R /F53 14 0 R >> +/XObject << /Fm1 238 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +243 0 obj +<< /S /GoTo /D [244 0 R /Fit] >> +endobj +246 0 obj +(\\boxclip) +endobj +248 0 obj << +/Length 1044 +>> +stream +.5 w 1 j 1 J +BT +/F52 119.552 Tf 28.346 198.425 Td[(Y)83(o)]TJ +ET +1 0 0 1 167.826 198.425 cm +q /OC /OC1 BDC 2 Tr 0.7 g +1 0 0 1 -167.826 -198.425 cm +BT +/F52 119.552 Tf 167.826 198.425 Td[(g)]TJ +ET +1 0 0 1 227.602 198.425 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC2 BDC 0.3 G 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 -59.776 0 cm +q 0 -8.504 59.776 31.181 re W n +q /OC /OC3 BDC 2 Tr 1.0 0.8 0.0 rg +1 0 0 1 -167.826 -198.425 cm +BT +/F52 119.552 Tf 167.826 198.425 Td[(g)]TJ +ET +1 0 0 1 227.602 198.425 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC4 BDC 1.0 0.6 0.0 RG 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +Q 1 0 0 1 59.776 0 cm +q /OC /OC5 BDC 0.7 0.0 0.0 RG 1 0 0 1 -59.776 0 cm 0 -8.504 59.776 31.181 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 -227.602 -198.425 cm +BT +/F52 119.552 Tf 227.602 198.425 Td[(a)]TJ/F53 9.963 Tf -199.256 -152.146 Td[(\134boxclip)-1050(<box>)]TJ/F53 7.97 Tf 0 -17.933 Td[(\134boxclip)-525(\134boxresizeto)-525({}{8mm}{3mm})]TJ +ET +endstream +endobj +244 0 obj << +/Type /Page +/Contents 248 0 R +/Resources 247 0 R +/MediaBox [0 0 453.543 340.157] +/Parent 242 0 R +>> endobj +247 0 obj << +/Properties << /OC1 1 0 R /OC2 2 0 R /OC3 3 0 R /OC4 4 0 R /OC5 5 0 R>> +/Font << /F52 17 0 R /F53 14 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +249 0 obj +<< /S /GoTo /D [250 0 R /Fit] >> +endobj +252 0 obj +(\\boxmoveleft) +endobj +254 0 obj << +/Length 1019 +>> +stream +.5 w 1 j 1 J +BT +/F52 119.552 Tf 28.346 198.425 Td[(Y)83(o)]TJ +ET +1 0 0 1 167.826 198.425 cm +q /OC /OC1 BDC 2 Tr 0.7 g +1 0 0 1 -167.826 -198.425 cm +BT +/F52 119.552 Tf 167.826 198.425 Td[(g)]TJ +ET +1 0 0 1 227.602 198.425 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC2 BDC 0.3 G 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 -77.709 0 cm +q /OC /OC3 BDC 2 Tr 1.0 0.8 0.0 rg +1 0 0 1 -149.893 -198.425 cm +BT +/F52 119.552 Tf 149.893 198.425 Td[(g)]TJ +ET +1 0 0 1 209.669 198.425 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC4 BDC 1.0 0.6 0.0 RG 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +q /OC /OC5 BDC 0.7 0.0 0.0 RG 1 0 0 1 -41.843 0 cm 0 -23.246 41.843 74.719 re S [2 2] 1 d 0 0 m 41.843 0 l S EMC Q +1 0 0 1 -209.669 -198.425 cm +BT +/F52 119.552 Tf 209.669 198.425 Td[(a)]TJ/F53 9.963 Tf -181.323 -152.146 Td[(\134boxmoveleft)-525({<dimexpr>})-525(<bo)1(x>)]TJ/F53 7.97 Tf 0 -17.933 Td[(\134boxmoveleft)-525({.3\134wd)-525(\134transbox)-525(})]TJ +ET +endstream +endobj +250 0 obj << +/Type /Page +/Contents 254 0 R +/Resources 253 0 R +/MediaBox [0 0 453.543 340.157] +/Parent 242 0 R +>> endobj +253 0 obj << +/Properties << /OC1 1 0 R /OC2 2 0 R /OC3 3 0 R /OC4 4 0 R /OC5 5 0 R>> +/Font << /F52 17 0 R /F53 14 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +255 0 obj +<< /S /GoTo /D [256 0 R /Fit] >> +endobj +258 0 obj +(\\boxmoveright) +endobj +260 0 obj << +/Length 1021 +>> +stream +.5 w 1 j 1 J +BT +/F52 119.552 Tf 28.346 198.425 Td[(Y)83(o)]TJ +ET +1 0 0 1 167.826 198.425 cm +q /OC /OC1 BDC 2 Tr 0.7 g +1 0 0 1 -167.826 -198.425 cm +BT +/F52 119.552 Tf 167.826 198.425 Td[(g)]TJ +ET +1 0 0 1 227.602 198.425 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC2 BDC 0.3 G 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 -41.843 0 cm +q /OC /OC3 BDC 2 Tr 1.0 0.8 0.0 rg +1 0 0 1 -185.759 -198.425 cm +BT +/F52 119.552 Tf 185.759 198.425 Td[(g)]TJ +ET +1 0 0 1 245.535 198.425 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC4 BDC 1.0 0.6 0.0 RG 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +q /OC /OC5 BDC 0.7 0.0 0.0 RG 1 0 0 1 -77.709 0 cm 0 -23.246 77.709 74.719 re S [2 2] 1 d 0 0 m 77.709 0 l S EMC Q +1 0 0 1 -245.535 -198.425 cm +BT +/F52 119.552 Tf 245.535 198.425 Td[(a)]TJ/F53 9.963 Tf -217.189 -152.146 Td[(\134boxmoveright)-525({<dimexpr>})-525(<b)1(ox>)]TJ/F53 7.97 Tf 0 -17.933 Td[(\134boxmoveright)-525({.3\134wd)-525(\134transbox)-525(})]TJ +ET +endstream +endobj +256 0 obj << +/Type /Page +/Contents 260 0 R +/Resources 259 0 R +/MediaBox [0 0 453.543 340.157] +/Parent 242 0 R +>> endobj +259 0 obj << +/Properties << /OC1 1 0 R /OC2 2 0 R /OC3 3 0 R /OC4 4 0 R /OC5 5 0 R>> +/Font << /F52 17 0 R /F53 14 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +261 0 obj +<< /S /GoTo /D [262 0 R /Fit] >> +endobj +264 0 obj +(\\boxlower) +endobj +266 0 obj << +/Length 1034 +>> +stream +.5 w 1 j 1 J +BT +/F52 119.552 Tf 28.346 198.425 Td[(Y)83(o)]TJ +ET +1 0 0 1 167.826 198.425 cm +q /OC /OC1 BDC 2 Tr 0.7 g +1 0 0 1 -167.826 -198.425 cm +BT +/F52 119.552 Tf 167.826 198.425 Td[(g)]TJ +ET +1 0 0 1 227.602 198.425 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC2 BDC 0.3 G 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 -59.776 -23.246 cm +q /OC /OC3 BDC 2 Tr 1.0 0.8 0.0 rg +1 0 0 1 -167.826 -175.179 cm +BT +/F52 119.552 Tf 167.826 175.179 Td[(g)]TJ +ET +1 0 0 1 227.602 175.179 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC4 BDC 1.0 0.6 0.0 RG 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 0 23.246 cm +q /OC /OC5 BDC 0.7 0.0 0.0 RG 1 0 0 1 -59.776 0 cm 0 -46.492 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 -227.602 -198.425 cm +BT +/F52 119.552 Tf 227.602 198.425 Td[(a)]TJ/F53 9.963 Tf -199.256 -152.146 Td[(\134boxlower)-525({<dimexpr>})-525(<box>)]TJ/F53 7.97 Tf 0 -17.933 Td[(\134boxlower)-525({\134dp)-525(\134transbox)-525(})]TJ +ET +endstream +endobj +262 0 obj << +/Type /Page +/Contents 266 0 R +/Resources 265 0 R +/MediaBox [0 0 453.543 340.157] +/Parent 242 0 R +>> endobj +265 0 obj << +/Properties << /OC1 1 0 R /OC2 2 0 R /OC3 3 0 R /OC4 4 0 R /OC5 5 0 R>> +/Font << /F52 17 0 R /F53 14 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +267 0 obj +<< /S /GoTo /D [268 0 R /Fit] >> +endobj +270 0 obj +(\\boxraise) +endobj +272 0 obj << +/Length 1030 +>> +stream +.5 w 1 j 1 J +BT +/F52 119.552 Tf 28.346 198.425 Td[(Y)83(o)]TJ +ET +1 0 0 1 167.826 198.425 cm +q /OC /OC1 BDC 2 Tr 0.7 g +1 0 0 1 -167.826 -198.425 cm +BT +/F52 119.552 Tf 167.826 198.425 Td[(g)]TJ +ET +1 0 0 1 227.602 198.425 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC2 BDC 0.3 G 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 -59.776 23.246 cm +q /OC /OC3 BDC 2 Tr 1.0 0.8 0.0 rg +1 0 0 1 -167.826 -221.671 cm +BT +/F52 119.552 Tf 167.826 221.671 Td[(g)]TJ +ET +1 0 0 1 227.602 221.671 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC4 BDC 1.0 0.6 0.0 RG 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 0 -23.246 cm +q /OC /OC5 BDC 0.7 0.0 0.0 RG 1 0 0 1 -59.776 0 cm 0 0.0 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 -227.602 -198.425 cm +BT +/F52 119.552 Tf 227.602 198.425 Td[(a)]TJ/F53 9.963 Tf -199.256 -152.146 Td[(\134boxraise)-525({<dimexpr>})-525(<box>)]TJ/F53 7.97 Tf 0 -17.933 Td[(\134boxraise)-525({\134dp)-525(\134transbox)-525(})]TJ +ET +endstream +endobj +268 0 obj << +/Type /Page +/Contents 272 0 R +/Resources 271 0 R +/MediaBox [0 0 453.543 340.157] +/Parent 242 0 R +>> endobj +271 0 obj << +/Properties << /OC1 1 0 R /OC2 2 0 R /OC3 3 0 R /OC4 4 0 R /OC5 5 0 R>> +/Font << /F52 17 0 R /F53 14 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +273 0 obj +<< /S /GoTo /D [274 0 R /Fit] >> +endobj +276 0 obj +(\\boxbaselineat) +endobj +278 0 obj << +/Length 1019 +>> +stream +.5 w 1 j 1 J +BT +/F52 119.552 Tf 28.346 198.425 Td[(Y)83(o)]TJ +ET +1 0 0 1 167.826 198.425 cm +q /OC /OC1 BDC 2 Tr 0.7 g +1 0 0 1 -167.826 -198.425 cm +BT +/F52 119.552 Tf 167.826 198.425 Td[(g)]TJ +ET +1 0 0 1 227.602 198.425 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC2 BDC 0.3 G 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 -59.776 -14.113 cm +q /OC /OC3 BDC 2 Tr 1.0 0.8 0.0 rg +1 0 0 1 -167.826 -184.312 cm +BT +/F52 119.552 Tf 167.826 184.312 Td[(g)]TJ +ET +1 0 0 1 227.602 184.312 cm +EMC Q 1 0 0 1 59.776 0 cm +q /OC /OC4 BDC 1.0 0.6 0.0 RG 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 0 14.113 cm +q /OC /OC5 BDC 0.7 0.0 0.0 RG 1 0 0 1 -59.776 0 cm 0 -37.359 59.776 74.719 re S [2 2] 1 d 0 0 m 59.776 0 l S EMC Q +1 0 0 1 -227.602 -198.425 cm +BT +/F52 119.552 Tf 227.602 198.425 Td[(a)]TJ/F53 9.963 Tf -199.256 -152.146 Td[(\134boxbaselineat)-525({<numexpr>})-525(<)1(box>)]TJ/F53 7.97 Tf 0 -17.933 Td[(\134boxbaselineat)-525({50})]TJ +ET +endstream +endobj +274 0 obj << +/Type /Page +/Contents 278 0 R +/Resources 277 0 R +/MediaBox [0 0 453.543 340.157] +/Parent 279 0 R +>> endobj +277 0 obj << +/Properties << /OC1 1 0 R /OC2 2 0 R /OC3 3 0 R /OC4 4 0 R /OC5 5 0 R>> +/Font << /F52 17 0 R /F53 14 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +280 0 obj +<< /S /GoTo /D [281 0 R /Fit] >> +endobj +283 0 obj +(\\boxinfo) +endobj +285 0 obj << +/Length 643 +>> +stream +.5 w 1 j 1 J +BT +/F52 119.552 Tf 28.346 198.425 Td[(Y)83(og)]TJ +ET +1 0 0 1 227.602 198.425 cm +q 0 0 1 RG 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S 0 0 .8 RG [2 2]1 d 0 0 m 59.776 0 l S Q +1 0 0 1 -94.327 -12.641 cm +q .3 w 0 G 0 0 .3 0 k 0 0.0 128.877 53.510 re B Q +1 0 0 1 -133.275 -185.784 cm +BT +/F53 9.963 Tf 137.564 228.153 Td[(\134boxsh->\134boxshow->\134hbox)]TJ 0 -11.956 Td[(wd)-525(60.0pt)]TJ 0 -11.955 Td[(ht)-525(51.66595pt)]TJ 0 -11.955 Td[(dp)-525(23.33313pt)]TJ/F52 119.552 Tf 90.038 6.138 Td[(a)]TJ/F53 9.963 Tf -199.256 -152.146 Td[(\134boxinfo)-1050(<box>)]TJ/F53 7.97 Tf 0 -17.933 Td[(\134boxinfo)-525(\134boxsh)]TJ +ET +endstream +endobj +281 0 obj << +/Type /Page +/Contents 285 0 R +/Resources 284 0 R +/MediaBox [0 0 453.543 340.157] +/Parent 279 0 R +>> endobj +284 0 obj << +/Properties << /OC1 1 0 R /OC2 2 0 R /OC3 3 0 R /OC4 4 0 R /OC5 5 0 R>> +/Font << /F52 17 0 R /F53 14 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +286 0 obj +<< /S /GoTo /D [287 0 R /Fit] >> +endobj +289 0 obj +(\\boxshow) +endobj +291 0 obj << +/Length 458 +>> +stream +.5 w 1 j 1 J +BT +/F52 119.552 Tf 28.346 198.425 Td[(Y)83(og)]TJ +ET +1 0 0 1 227.602 198.425 cm +q 0 1 0 RG 1 0 0 1 -59.776 0 cm 0 -23.246 59.776 74.719 re S [1 1]0 d 0 0 m 59.776 0 l S Q +1 0 0 1 -227.602 -198.425 cm +BT +/F52 119.552 Tf 227.602 198.425 Td[(a)]TJ/F53 9.963 Tf -199.256 -152.146 Td[(\134boxshow)-525({<gsspec>}{<gsspec>)1(}{<gsspec>})-525(<box>)]TJ/F53 7.97 Tf 0 -17.933 Td[(\134boxshow)-525({0)-525(1)-525(0)-525(RG}{[1)-525(1]0)-525(d}{})]TJ +ET +endstream +endobj +287 0 obj << +/Type /Page +/Contents 291 0 R +/Resources 290 0 R +/MediaBox [0 0 453.543 340.157] +/Parent 279 0 R +>> endobj +290 0 obj << +/Properties << /OC1 1 0 R /OC2 2 0 R /OC3 3 0 R /OC4 4 0 R /OC5 5 0 R>> +/Font << /F52 17 0 R /F53 14 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +292 0 obj +<< /S /GoTo /D [293 0 R /Fit] >> +endobj +295 0 obj +(\\boxmarkers) +endobj +297 0 obj << +/Length 649 +>> +stream +.5 w 1 j 1 J +BT +/F52 119.552 Tf 28.346 198.425 Td[(Y)83(og)]TJ +ET +1 0 0 1 227.602 198.425 cm +q 1 0 0 RG 1 J +-11.955 -23.246 m 2.989 -23.246 l +-47.821 -23.246 m -62.765 -23.246 l +-11.955 51.473 m 2.989 51.473 l +-47.821 51.473 m -62.765 51.473 l +-59.776 -11.291 m -59.776 -26.235 l +-59.776 39.518 m -59.776 54.462 l +0 -11.291 m 0 -26.235 l +0 39.518 m 0 54.462 l +S Q +1 0 0 1 -227.602 -198.425 cm +BT +/F52 119.552 Tf 227.602 198.425 Td[(a)]TJ/F53 9.963 Tf -199.256 -152.146 Td[(\134boxmarkers)-525({<dimexpr>}{<dim)1(expr>}{<gsspec>})-525(<box>)]TJ/F53 7.97 Tf 0 -17.933 Td[(\134boxmarkers)-525({-12pt}{3pt}{1)-525(0)-525(0)-525(RG)-525(1)-525(J})]TJ +ET +endstream +endobj +293 0 obj << +/Type /Page +/Contents 297 0 R +/Resources 296 0 R +/MediaBox [0 0 453.543 340.157] +/Parent 279 0 R +>> endobj +296 0 obj << +/Properties << /OC1 1 0 R /OC2 2 0 R /OC3 3 0 R /OC4 4 0 R /OC5 5 0 R>> +/Font << /F52 17 0 R /F53 14 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +298 0 obj +<< /S /GoTo /D [299 0 R /Fit] >> +endobj +301 0 obj +(\\boxpath) +endobj +303 0 obj << +/Length 527 +>> +stream +.5 w 1 j 1 J +BT +/F52 119.552 Tf 28.346 198.425 Td[(Y)83(o)]TJ +ET +1 0 0 1 167.826 198.425 cm +q 3 w .7 0 0 rg 1 .8 0 RG 0 -31.75 76.784 91.727 re B Q +1 0 0 1 -167.826 -198.425 cm +BT +/F52 119.552 Tf 176.33 198.425 Td[(g)-71(a)]TJ/F53 9.963 Tf -147.984 -152.146 Td[(\134boxpath)-525({<gsspec>}{<paintop)1(>})-525(<box>)]TJ/F53 7.97 Tf 0 -17.933 Td[(\134boxpath)-438({3)-438(w)-438(.7)-438(0)-438(0)-437(rg)-438(1)-438(.8)-438(0)-438(RG}{B}\134bboxtrans)-438({\134boxextscale)-438({3mm}{3mm}{3mm}}\134boxmoveright)-438({3mm})]TJ +ET +endstream +endobj +299 0 obj << +/Type /Page +/Contents 303 0 R +/Resources 302 0 R +/MediaBox [0 0 453.543 340.157] +/Parent 279 0 R +>> endobj +302 0 obj << +/Properties << /OC1 1 0 R /OC2 2 0 R /OC3 3 0 R /OC4 4 0 R /OC5 5 0 R>> +/Font << /F52 17 0 R /F53 14 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +304 0 obj +<< /S /GoTo /D [305 0 R /Fit] >> +endobj +307 0 obj +(\\boxroundpath) +endobj +309 0 obj << +/Length 660 +>> +stream +.5 w 1 j 1 J +BT +/F52 119.552 Tf 28.346 198.425 Td[(Y)83(o)]TJ +ET +1 0 0 1 167.826 198.425 cm +q 3 w .7 0 0 rg 1 .8 0 RG +0 11.339 m +0 80.388 l 0 91.727 11.339 91.727 y +65.445 91.727 l +76.784 91.727 76.784 80.388 y +76.784 11.339 l +76.784 0.0 65.445 0.0 y 11.339 0.0 l +0 0.0 0 11.339 y 0 11.339 l +h B Q +1 0 0 1 -167.826 -198.425 cm +BT +/F52 119.552 Tf 176.33 230.175 Td[(g)]TJ 68.28 -31.75 Td[(a)]TJ/F53 9.963 Tf -216.264 -152.146 Td[(\134boxroundpath)-525({<dimexpr>}{<g)1(sspec>}{<paintop>})-525(<box>)]TJ/F53 7.97 Tf 0 -17.933 Td[(\134boxroundpath)-525({4mm}{3)-525(w)-525(.7)-525(0)-525(0)-525(rg)-525(1)-525(.8)-525(0)-525(RG}{B}\134boxextent)-525({3mm})]TJ +ET +endstream +endobj +305 0 obj << +/Type /Page +/Contents 309 0 R +/Resources 308 0 R +/MediaBox [0 0 453.543 340.157] +/Parent 279 0 R +>> endobj +308 0 obj << +/Properties << /OC1 1 0 R /OC2 2 0 R /OC3 3 0 R /OC4 4 0 R /OC5 5 0 R>> +/Font << /F52 17 0 R /F53 14 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +310 0 obj +<< /S /GoTo /D [311 0 R /Fit] >> +endobj +313 0 obj +(\\boxedgypath) +endobj +315 0 obj << +/Length 618 +>> +stream +.5 w 1 j 1 J +BT +/F52 119.552 Tf 28.346 198.425 Td[(Y)83(o)]TJ +ET +1 0 0 1 167.826 198.425 cm +q 3 w .7 0 0 rg 1 .8 0 RG +0 11.339 m +0 80.388 l 11.339 91.727 l +65.445 91.727 l +76.784 80.388 l +76.784 11.339 l +65.445 0.0 l 11.339 0.0 l +0 11.339 l 0 11.339 l +h B Q +1 0 0 1 -167.826 -198.425 cm +BT +/F52 119.552 Tf 176.33 230.175 Td[(g)]TJ 68.28 -31.75 Td[(a)]TJ/F53 9.963 Tf -216.264 -152.146 Td[(\134boxedgypath)-525({<dimexpr>}{<gs)1(spec>}{<paintop>})-525(<box>)]TJ/F53 7.97 Tf 0 -17.933 Td[(\134boxedgypath)-525({4mm}{3)-525(w)-525(.7)-525(0)-525(0)-525(rg)-525(1)-525(.8)-525(0)-525(RG}{B}\134boxextent)-525({3mm})]TJ +ET +endstream +endobj +311 0 obj << +/Type /Page +/Contents 315 0 R +/Resources 314 0 R +/MediaBox [0 0 453.543 340.157] +/Parent 316 0 R +>> endobj +314 0 obj << +/Properties << /OC1 1 0 R /OC2 2 0 R /OC3 3 0 R /OC4 4 0 R /OC5 5 0 R>> +/Font << /F52 17 0 R /F53 14 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +319 0 obj << +/Length 1094 +>> +stream +BT +/F53 7.97 Tf 28.346 301.848 Td[(Each)-525(transformation)-525(expands)-525(to)-525(<box>)-525(\050\134hbox)-525(in)-525(most)-525(cases\051.)]TJ 0 -11.955 Td[(Each)-525(transformation)-525(must)-525(be)-525(followed)-525(by)-525(a)-525(<box>.)]TJ 0 -23.91 Td[(<box>)-525(states)-525(for)-525(any)-525(kind)-525(of)-525(T)]TJ 124.135 -1.716 Td[(E)]TJ 3.138 1.716 Td[(X)-525(box;)-525(\134hbox,)-525(\134vbox,)-525(\134vtop,)-525(\134box,)-525(\134copy)]TJ -127.273 -11.955 Td[(<trans>)-525(is)-525(a)-525(list)-525(of)-525(box)-525(transformations)]TJ 0 -11.955 Td[(<dimexpr>)-525(states)-525(for)-525(dimen)-525(in)-525(eTeX)-525(form)]TJ 0 -11.956 Td[(<numexpr>)-525(states)-525(for)-525(integer)-525(in)-525(eTeX)-525(form)]TJ 0 -11.955 Td[(<angle>)-525(is)-525(an)-525(integer)-525(or)-525(float-like)-525(string)]TJ 0 -11.955 Td[(<gsspec>)-525(is)-525(a)-525(literal)-525(pdf)-525(content)-525(stream)]TJ 0 -11.955 Td[(<paintop>)-525(means)-525(pdf)-525(painting)-525(operator)-525(\050S,)-525(f,)-525(B,)-525(W...\051)]TJ 0 -23.911 Td[(See)-525(the)-525(code)-525(for)-525(more.)]TJ +ET +endstream +endobj +318 0 obj << +/Type /Page +/Contents 319 0 R +/Resources 317 0 R +/MediaBox [0 0 453.543 340.157] +/Parent 316 0 R +>> endobj +317 0 obj << +/Properties << /OC1 1 0 R /OC2 2 0 R /OC3 3 0 R /OC4 4 0 R /OC5 5 0 R>> +/Font << /F53 14 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +320 0 obj << +/Type /Encoding +/Differences [ 0 /.notdef 1/Delta 2/.notdef 5/Pi/Sigma/mu/ellipsis/f_k/Omega/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/acute/caron/breve/macron/ring/cedilla/germandbls/ae/oe/oslash/AE/OE/Oslash/space/exclam/quotedblright/numbersign/dollar/percent/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/exclamdown/equal/questiondown/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/quotedblleft/bracketright/circumflex/dotaccent/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/endash/emdash/hungarumlaut/tilde/dieresis/Euro/Aogonek/Cacute/greater 132/.notdef 134/Eogonek/Iogonek/less 137/.notdef 138/Lslash/Nacute/asciitilde/asciicircum 142/.notdef 143/dagger/daggerdbl/Sacute/Scaron/Scommaaccent/degree/Tcommaaccent/ogonek/Uogonek/Ydieresis/Zacute/Zcaron/Zdotaccent/IJ/braceleft/braceright/section 160/.notdef 161/aogonek/cacute/registered/copyright/divide/eogonek/iogonek/minus/multiply/lslash/nacute/plusminus 173/.notdef 174/guillemotleft/guillemotright/paragraph/sacute/scaron/scommaaccent/bullet/tcommaaccent/threequartersemdash/uogonek/ydieresis/zacute/zcaron/zdotaccent/ij/periodcentered/quotedbl/quotesingle/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/backslash/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis/currency/perthousand/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn/bar/agrave/aacute/acircumflex/atilde/adieresis/aring/underscore/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/anglearc/diameter/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/quotedblbase] +>> endobj +16 0 obj << +/Length1 1407 +/Length2 17406 +/Length3 544 +/Length 19357 +>> +stream +%!PS-AdobeFont-1.0: LMRoman10-Regular 0.982 +%%CreationDate: 14th March (Monday), 2005 +% Generated by MetaType1 (a MetaPost-based engine) +% Copyright 2003--2005 TeX USERS GROUPS. Supported by DANTE eV, GUST, GUTenberg, NTG, and TUG. METATYPE1/Type 1 version by B. Jackowski & J. M. Nowacki from GUST (http://www.gust.org.pl). +% ADL: 694 194 112 +%%EndComments +FontDirectory/LMRoman10-Regular known{/LMRoman10-Regular findfont dup/UniqueID known{dup +/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse +{save true}{false}ifelse}{false}ifelse +17 dict begin +/FontInfo 9 dict dup begin +/version(0.982)readonly def +/Notice(Copyright 2003--2005 TeX USERS GROUPS. Supported by DANTE eV, GUST, GUTenberg, NTG, and TUG. METATYPE1/Type 1 version by B. Jackowski & J. M. Nowacki from GUST (http://www.gust.org.pl).)readonly def +/FullName(LMRoman10-Regular)readonly def +/FamilyName(LMRoman10)readonly def +/Weight(Normal)readonly def +/isFixedPitch false def +/ItalicAngle 0 def +/UnderlinePosition -146 def +/UnderlineThickness 40 def +end readonly def +/FontName /QXGMXE+LMRoman10-Regular def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 89 /Y put +dup 97 /a put +dup 103 /g put +dup 111 /o put +readonly def +/PaintType 0 def +/FontType 1 def +/StrokeWidth 0 def +/FontMatrix[0.001 0 0 0.001 0 0]readonly def +%/UniqueID 0 def +/FontBBox{-220 -290 1417 1129}readonly def +currentdict end +currentfile eexec +ŮÖoc;jśŠ~EŁĐŞ%9.ěŹ>XJŮĐźD â"e?¤¸&¤oLH:]~nŚX%lţŢšĎôdQ@ăa~M~EAËV.UMŘŞž")éJ˘Y§4Ňşş UËęC9źżů2Î˙ň"\ŞşÜĄwĽÔ1ˇrlxŘ˝ŘĐ˝t˙ůaÂAŮ*Ó`˘ËJpÁżäĽ?ü(ä:řE(ůqŢÚUé[s˝ +wĂMϤsžu˘IĐC'ęľŃŘú93ó|Y@TŰEěŰÂčk$:mGzRgť?ˇx=w;*E ĄëJ˛úM8Í,őuřŕý˛čZmYË +ţâřľŮ`j]3 +Ż§Ő8 +óÄuźYĆ'˛/ۤcňáXbĂO čpĹ{Ľşť??BńYîČIrâ`gAF6vąôî5X(¸:ěó[X.i-Č,Î/kÔŁ:A E>˙ĎÂŐ.×-0řN<ĄĆn]2m%úăL!r¤-ĚPTIô\ŠrLXÔŤçEŰTiasŞg٧Ď:ôoR]{Íä +_á0}S¨Cfî#Ź˙ăYă˘hÎZĺ84Sshv§Ăa7Â}ŕ×kÔăÝm(šö÷ÖKlJsäMzř Üůř6ŃBŞö4ŹŇ0hń+]î0× +Ů4Aâ/0Ť&żZ˝ÉkOĘßŘTĹŽBˇšţ록Q8ŠâH!ŘŕĚźTě~\RřhťT?ÉçŢŽ
Üzg;ąŘâ´őŧ8łĘ
Őťe:ńâr&UJF'ŚAŠÁl)ď~HĄßtÚp˙VAýx`üéđÇ!řä ćÉ0Y +˛rç6 +E0)quŮđcł5îĎdcččbËUž#áż8ŃčFFn vjgg˙H!Łúśčz<H*Ĺtčôä˝÷LS&~Ęswk¤-ŹĂT;ŽĂĐpyëŽSOĘÖňĎđ[m[k"ČÖ +g6˝ŻŘqłŚ˛Ĺô-]RC7A TŔv3ü ŃSĽÄóěEÓÓ¤Ëtqľ˘ů Ő!KaÍkáŰ ćÜôUßľSšaÝp4港¤{)%ÍIĄt+[9QsTOŁ|,őÜúżˇ>ARÂ<O:ăüôÚ=ĹăľSčŐqDg˙.ť\t5dĆDÔąöůÍŽŤ-Žé(hö'˘ŹM}Ł7DMeă)Őde/#DŢşE--l#űöQ§yXĎ2zzOjWĐq^;I;ś Z@ĺH7fž1Ľ!}w)]ĺęv/,%Ďňó\ß}ˇäĎw˘Űë˝ +¸ÇpĄn×l3zŞđĘĹaňFSé ~áöîL.ń
ťş^{\ą+¨˘gÁîŚÔX.ńú
Ľ<Ńnś t¸u/ŠÖ.÷YnbľF1QE,Âîsăiě'] A׿Ńظ}ž)Ž śŁq&;|<ŽČŹHzKáÚMx6~=űFĽ éđ#{ !<Ăg_F@6
648íšM%¸[/úžä´lÍ`ŁwkÚCäą(:Ü0Ű!fŠ ,gČ1ÁřîŤÎ Ö^Ţsnd§P˛ +d<˙Ľ?xSĂwě +.׼0m.˝: Î~G˘ďCîŹ`Dj0śfôĂS
+LŇľ°¨Ň?" ŚT9[Ş9žp˘í +PĎŢ> ) KýÇ@÷>>?š4Äʨk!šŮ2^rě*~˙rŕŚcşcÁ?dj!đů
´şľńbUőĂŤ;Äö/yWgě5ĄŕƧţËŞ´ą\Ç Őâc
+ĂíÉPVĂ$ş˘Ç~f)écđ¸\,ń J8?Ć~¤a/OM'Ib5EŘŁą5ţpPŚÝÖËoěÎ2mg÷Ś×ľ÷⳨k˛IĎZn/â{Ý0Ő>2ql°wj2vŰŕŇî< +gĄÂč ˇo|<Éia aiÚĹhm˙˝łŽéëĺ/ôiřü@hp(íkprÍáě{ÇóóhO˙>¸ŠH8gĽăËë7,ިR!žisD +Bş´Nb"hŤł9EĽ6płNŹćT%°ĂIHŽyęˇMmxšË,}˝>.~ä č<ÓŁ|WiÖ.!ű""&F]˝')zéB
EögÂiĆáEK
ÄŰ/>#ćOđěT§Ţ˝íŁ×A}[ÎkĚhRŐĂQżVąŻK cÎk3;Mô[wut˛-%÷Ń(Š
ófŮDVë˘ďyŃAŃj¤
ŤŞ!$]zť4ÜHöďYrčbeťę˝¨wśQBdX~
Ů[goÍ%ĎÓĚrő-'IYOďy´ +1ÎJfóě&t&(Ąw˙žqmŇôBHŢfśęÜ +ĚĹťńĹ´EçR3I"^kˇXěíč;´şČÍŐŚIG' +ŰěŐ[ki8ČËšF\ÇĄŐŃÇň(C˝AŞ)MNő#dťď +d +×éÁzÚć[ö3rš.éäG:5ż +¨tşppÝ-Ź"uŤźżNȸ1řwßşD.ČŹăîĎ%{¤U'ä-QVđŕg*ÖNťÉńmÓ3ˇä× +şUK"
p? űpăz&ĆĂňái<dFŃ
蜍ۜ@ęîgźOÉOÉôWÚßš&Ő áŚ ž őBóî]ű +´
7tKßĺ=?t6ĽôP:>ź×ŤĐZ1ŘŤ]u-1ĄHŞ÷|"âŃKŢ+Ë ń łžuénq)ž}MĚ_|VćGŤÖYź%Ś
˛¸Ł>ŔÁ]ó¤¨Đç5|ţ5eÚđ1î%Řgmĺ^ ń°çŠŻüđ7éŘ8&ÇH^îsűł*ńjDá1Eđű!śŞL,qŁřŠ×ýü˝áĆXôŠYEˇśŇnŔ +_8PkĘGv,&|űx,élVŹů)xĎÝ ;¤~fă¸$g; z18Ô"vÁ1+ĚW(Ö[
ľĚ}ôÍÄ5ěŽ{B1 kďzúfŚ9örç÷x
Şó˙FÎZýĄâ+WŁZŁ;[zS`'?1ŽG=ŚJć1\{Ť¤
6erőÜĺu;aĚUoĘy÷7%ű%Ůć"hĎéL8ńądËjp˙šGsçĹe<tŔXôjDíË%D:¨ŇÚ9xśľĎď%ö˛ +f + W ůIôöu°é'ŞŮá°>˝ÉA?Ţyď"9ç|ÖZâŃIšHfu ;ł<]ąA8"SDÁ¨^6 vŢö'7ťTÄŻ°)ž´ĺ"ľČ}áŮu°řďŽ<ď>óŤž×Óťú˛ŹZvĎFbŰN'HS§ÇřĹŇ&"¨ÁxÁ
˘ňjcńŔ5 ŢX
ČB6pqŕť7Ť"p8ŐâÜů}*¸ęîöĚ4sg¨(E@:MĚ-( vśD+XĚqÎ\r><r°ąqu.HÉdcU4ějRżOËF×'ŚfUÁç
S˙Ď|
xbűşŁ;ÖŐw\Ćę˙es'Ô@ůŇ|ůF+t%ů˘hź1 +^ěyţ\óÄÖM¤°ŚdĆZ7nU^|%Ânt&ŢgKúrr{Đ`qąŤTÉzX5ĆÄŠâ+¤3ŁłX9Úe-ć;9ćýňóă|ťaˇ +5v
"E~řÓP9sYş5bâ+\0ľÉ<OŃ~ŤËl69mLuŔ +ÂĂúŹůň\ÓzĂ;=Ę(.˘Iád$@[ĚčÔÖcŻÜŃČŘ3Ňáj[öśg÷!*ć2ˇ,4ě
FĎŔťW:xÂqeĘtmO`¤VŞß
ôIű ůĺĘp<~ážúŐőTbŚ˛/FůćÔF.÷ĐK߲ŹÇ4´0ú,6Ńź|iQśsŕ¸M,[lżńŠO@8 +AşG]:ógIn4˘ć=i= +×ÓdJÁgŢćôvLŤâźň XśoŁ¨GŁAr>4ŘŽ$ĄGtŠt¨ÉyćĚĹyÓˇ%áfYěÄ4Ntža0C0yYÔţ +ÖY÷]ŁŹ*+řŠíwuŽ
śŢ÷-čm@AĄŻťç÷őU]ŇPTo"ůô,ŃĽŽŤ>Đxî~GÜ&řśđB/3@ ĚÄ@Ň{÷śClw˝3-ĚŃmÔ|ćP]âVť;yĹŁŞ)WíŽUřaiâöv`Â#1Ö°Mě'*
ů}#XąÜŽďt]zysŰ
:i)Čpm)ČůFRd ]÷żůÜ ŕgîk?}ţ +źę$Ö=šRSÝ$ż<î~dTeĆŮě˙.!'Jŕ9.Zů{đ+;QKŔř<ŚłÎm9ś.tŃb'Sěüđ˘q˛@ÎóvîżÓŔOů3ÎHŽaíZšâÝÝĎŇ˝
]Ĺ C¤\<÷ŽiĆÂ3¨vL^ Š)BľĎ,/vŤ<)łÖť$Ś?ÓáťíDľŤ +/Pýfk])Šnm'Ý#â
D_Ă ĆžGXSÁ
ŞúhÎĺé\Ç˙§($ćFGuťRĹkŮ]°~-pđĽ§BF=¤÷Eť,đŢAm2Au
^Šf÷áÉtUZÍŃDŚ)Sí×qq
őŠ çűy×čWË˝nž´ţ6ĺÇo=)ÓPxA)#ŰłŁ!víi °}8řqŔ~r]š'ÄŁ 3N|vNDĄjQűÁ/KĐëtuăČQŻđźÉNTXęYfź dÝą;hÓy°Řóp¤(ÂÁN'9 +ýÓ_÷ź +ęEęŔާ.ôNnC!˝żÜÔé çŮŹ}
ÜłŃL +˙č\}ůivÇQ[uťW&Ëe<Č]Ö´3ÎÝ~ŸfdrąůąřzYöáę xJz ePúÝÇ~rvX`X CŻŽ1 +miA+rĚ +ŐÇ +fŘkbęžs\âäŤČP|ˇÝŹËr űSđý[oyŔaßż˝ž/¸żKŚ:6=ô&ĺľ×ô&ăg#qĆŢšapźGŢ/ăßF´IM6ŘDő7'ôś]
EQfxIűălĆś?ĂGőčŹíE Ŕ¤đy"#UÇĺhžŹ˙I$âŢš:ŃŽQNŮ FhĽ˝ Ó KgÖ˘-=Ăťě'VJ>M{G6¨'ž-?<č{pŃLđ˝źbŠ_çdWŕĚ^Đ8Ąłß`ß&ačÝŚŇţA-ý˛šä,ÍÇÄEŮ(A@Î>YŹMOľTŽ7T6Ýľ˝RhóľôüűNĐtL
u3: +¸ ů?&+MPŠ)iřcĚN,Äťš,b ësîßÔä&şé<pe°w˘BŁ¤ŽĚ,OSž+9H%×A'î5Ż;2Ü,ącôľ$1;TIôe˙ęŕ6ť9 +-Qz5źEăÎŞĎOHęNżć×MŤ--zYş+ÁĽą5/čtv>Ý*zjżAç3?§RÁ8IŢ×ţJŰ&F÷äRžËĄüĺ,ŤśDKMl,
¤<BjKtÉ.boxŘ.O=%ţdźš$O9˛źĺĐYDĘÄwtčä÷
o[ňîâCŽĄw¤u( +ęÂĎXě˝a×Ë,NŚy¸÷;^ |tŤ×<ť hĚăZŔ7F!ÚŘsAó7ńććIž@|
ÓĐh§Rřz\ĽŐ/Ą´ń@š4ëX^;a%oËÜŤšśţ*/^
şćjí:FłqrŠ§/cź;J1v\ŕ|wÖádôżâ¸uH~~#ÎňŠ#Čß}ZŇčgDŻ1#LŁ,żNłßÚjx +ţň ý[¸,ĂÔ
Ę:oô +VŃŠë Öő$]÷d/ńą$%Ń&+RÇ
áő`ĄŻd ɟγ%ľşPúŰtÚż@ÎCDJ7x×˙§/SQŐ\h=ş>g\\(Ű$*0éÝŽÓŰzNđÜXűÚŢq:ŽżŮŤ6hßgF$~7aľ!~R}7m
ŁîÜ%ިĽŞöN¸vŰ}ę˛+ÍDśtŚČ/""U¸ýäeĹRúHŚá@mÍa9Ő+@L&öIyÔŐŁĚk§%ÚłWômPĎŽl;ůŢYĚ\ŢĘOI`HédřbIKSjCČ,šąz¨śôżďgäşł0ŠˇboHXĐŻ{ÖwÂKĹ6}KëÎzjźëMqŤÔĎ#]Äó!ÚŮQ^xpĎăÁÁURé¸5ÇńÉY÷]ŁŹ*+řŻÂ\Ţhť)ľSXĹ_B
Î -DŕŘłë:çKâ|Aɧú_Ž.´RîŻm
AmÓmwëâĐáŤq×ĘíNˇđ
Š˛
ś#YP´Č}rň{Ż˛O=Ô_G3đ9Ć!M(úD&˝@Ěi@î8mhě ů´ˇŚ
&)-ŔÉĺpu9Dä@źŹgt-üH
ÖMö IŔuc
^),×ć6.RV@uĎoB$<#DulŚZ|ačl6ëUW´<}ß +Ä;ąÔuWQ'Iđáůgť(ĐřŢ_ŘČţ§Fß°EE=4ŠIˇiöŽžç*=˘@4ń +ë§÷lÖĹ0úŁBPI{vvhşíaRCçđW9~S°+"$OŐßńöÖ˛ěöĽaYí´PnÉ +A/MŕkŻ×彧iѡąŔ-\ŃUĘQeÂy7t˘¸đtEcĘă$p[ŕu^a5IWC@1HVACm+L,EŮÇ5îv%>Ô(|üöBšE¨YD¤uAÚ)ÂmâP44łäéFé*?yCĄíżÉ Ň8ŻMějJÝďŘ5]OrV:Ţ3Öîž.ĺęÂp#ißČÍ'x<lčô!|*SjŚFa¸N˛ź-7Ě]˝ÍpOdu;łÍRçńĺ ŕđő(z
¸ôtósóYĺć~ű]tě5Üýš×Íď4őŔĆ2Řűu,×Üă\ŇŤbŘpk}řwnv4f˝;ňJW¨y{łvŤ<)łÖť$Ś?ÓáťěyđňČémđ#˘DŰNŐ`}#Ţ.*Ń~¨ŔéxňCł5ľ´Ĺ<\W$Ž<+¤ĂÇÎŽ&ü˘ˇÜýX+cqAÉĂú(ľ[Z!šu?Ż5:ď>łŰ4&Ň=sŇwÇdçHě]ÎoC?"w+A`ŕ +dČ)üŚ¨<Ó7ôrië=XŇu`ę"ޤ¸z<j °łzĂł.äóŐq(^1xů B15Ř"ĹdťLÖŁaÔßéŐßł&ésĄě6kWFÝâŽUHĄ˙Ęt˛ôĘxć-Ť#ŽČ2Xth4đ5 D`u¨ĎZŞ/%źÜů˙=X [űłŕËŘ)Ä%\?wIÄçśyhUâćuűFbđ jaÉ>ÁZĚĺô}ăŕ>žu0í<zQ~MÇŤxM}ŞÖHZ~缲 nĺÚÉ#Ď-
k¸{!śŤÝđLK[7óĚ
ˇÉS¸Ď6LĐąDsIĚD¸& #ń÷ŤÔŮfBOśoFi+ä0Ţ.bďŹG ,Î'>Ş@Î.ÄYČv p§âšCĹÇ\bşˇ4Q.×´âŮVÎ$@Ľ'wS¤ŮÖ§âŠĎüî?<Âáća Âc-2íçWĆűHĺRŻ˛ÂźE(Wűý9TyS99bdví}¨Ń,;r`űbĽěv´kďĂÉůś
ŞŮ/%ijz=ÄŰŕBm ?ÁčíőÖwp"2)ml@,.9Ôo°Sëś{7n2ÇOÚ|ó(,żţ'\{$'ZŽ'p<ŐóĐËë˛* >#ŕŢŕ?oshô"Ů}ýÁˇĹŐ?U:]_ěń6ĎŻňKţŞ5P7Kh*0WmM˝ęÂDĘÖţ§8M+śj(}+Š*lf(XXNżşSčÚAďAčś)č`ÎóţéW`4bçAéó Sqôćr-đóČşĎúÇxôě$$Ë´áéˇvëęîns;ĐnK^T8itř˛3ŁŢ ^ęŘŕ$8éĹFoĄQ]()KC¤Ő¨^Äů^33úmR"V9Ő@pČ +ř-ČĚÇl +ţËg(tŐOŻ¨HÎÎç$89-ČD5n˘14.xĽżL5â]ýt/žÇćrŮÍë?NL"ŽEÇě6÷Ăé%ôrą˙pmćĹŢÎÜz[îÄÝ%XÂß:äáŽAöMQă1Şj|ö)ś#ýâŹW¨ĺKrőÄč"* Ż=Ąë˛ńPüL۾ߏŘÉ8Z .xŮ獎MÂßČpĄ§ă@Őžęż$ľźvśVĎÂg\tĎÄ0ţ|łě˛ ÉË/UĄ*şÚ§ÁÁĄup,61ł`éŐpçĄâëV2Ż;óÜ庲¸VÄŇn 'Ż÷&Gs[6c
}Ł!sá
äfŽPÍbČ&+ÖsëžŃ +G¸1č¤SÍô:ŰN]kŔ?mtjĂ%ŰÎ +ž˛%˙QĂĘŐ'¨ş1Żp4XptĘP˙dˇUˇîšFŮŁ´
ŹűíHČ#Ĺ;˝ě$˛ź šlbYĆËÜJ¤Ö@Ť~tÝŁ=2ČĎ$ÔNź=Y@°/Ťw_üĎlçä°|˘ŕ;ĺ<ďîťÓEĽ7ÄZńÄü '}˘ÍAHĚG|/ޤlÂřő2Á¨^/EÍÇ*ŁšgxtO8ŹßŞ9
íüÔ
ÎŻ˙Ň\RáăýRëçx rF! Łraá0 +]áŻXĘĂđmŃř?ĽAꧏJIa!íŘ ňĎďiů ˘Ś˙x
ŹˇQ#ąCŮ.Ż¸Źy<,:Ń
ďNżoľČÁ˛
Đý.jLSîô~;ä<ľłTç$6ˇ˝Éă?mK.zŰ7ŕĚoZШľž`l +!ďć
?ŤŻ3Ú{GýXłŰaxwýk4uűŢ÷ĄFY+ü˘˙ťK1Uu>!>ScRuĘdA˙UěřťÍi g °ě_pž×ÚDj:˘úAřłŐÜjLGÇuBŚfÉ3-]SG/Z@VŃĐrÎPoWCuL$ / ô$=2JY*sÍ˝TŘc;üü´ŇZĺžźăľ"űĂS#îG6
BG¨)Kô"ďÄƢVü_˛ášPGřPďmŠŤÉ,,ĆÚČîŻĆĺH=úő@ČőŢĄĂN*Z0M_ĐX^ęčŰ2ßtîˇ5Í ZšB4ĹZÁÎĐĂG]üÍzđÍ8Ń8ŮżžJŠÁ_`3Ŕ|\šĄę˝öá-Ž@đč|8MŰ=OŽ%Ť çuÄI4űS5UďĐtŤQůiW
&]ć+ +EýQAsi,ćÁç'Ä Ţѧ}@vŁsÝütßé<1$T
ĆdÁű¸ţ(cl[u9K¤1:2Ží<\7gÚ( ËĂř$Jfy_´<8B5-Ż¸4Aíü{~ăšSÔZ(;.4Š/CbÜ°E06ŇÎÓTYkJę`G^-=Ó°0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +{restore}if +endstream +endobj +17 0 obj << +/Type /Font +/Subtype /Type1 +/Encoding 320 0 R +/FirstChar 89 +/LastChar 111 +/Widths 321 0 R +/BaseFont /QXGMXE+LMRoman10-Regular +/FontDescriptor 15 0 R +>> endobj +15 0 obj << +/Ascent 689 +/CapHeight 689 +/Descent -194 +/FontName /QXGMXE+LMRoman10-Regular +/ItalicAngle 0 +/StemV 25 +/XHeight 431 +/FontBBox [-220 -290 1417 1129] +/Flags 4 +/CharSet (/Y/a/g/o) +/FontFile 16 0 R +>> endobj +321 0 obj +[750 0 0 0 0 0 0 0 500 0 0 0 0 0 500 0 0 0 0 0 0 0 500 ] +endobj +322 0 obj << +/Type /Encoding +/Differences [ 0 /.notdef 1/Delta 2/.notdef 5/Pi/Sigma/mu/ellipsis 9/.notdef 10/Omega 11/.notdef 16/dotlessi/dotlessj/grave/acute/caron/breve/macron/ring/cedilla/germandbls/ae/oe/oslash/AE/OE/Oslash/visiblespace/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde/dieresis/Euro/Aogonek/Cacute 131/.notdef 134/Eogonek/Iogonek 136/.notdef 138/Lslash/Nacute 140/.notdef 143/dagger/daggerdbl/Sacute/Scaron/Scommaaccent/degree/Tcommaaccent/ogonek/Uogonek/Ydieresis/Zacute/Zcaron/Zdotaccent 156/.notdef 159/section 160/.notdef 161/aogonek/cacute/registered/copyright/divide/eogonek/iogonek/minus/multiply/lslash/nacute/plusminus 173/.notdef 174/guillemotleft/guillemotright/paragraph/sacute/scaron/scommaaccent/bullet/tcommaaccent/threequartersemdash/uogonek/ydieresis/zacute/zcaron/zdotaccent 188/.notdef 189/periodcentered 190/.notdef 191/quotesingle/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring 198/.notdef 199/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis/currency/perthousand/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn 223/.notdef 224/agrave/aacute/acircumflex/atilde/adieresis/aring 230/.notdef 231/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/anglearc/diameter/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/quotedblbase] +>> endobj +13 0 obj << +/Length1 2400 +/Length2 25119 +/Length3 544 +/Length 28063 +>> +stream +%!PS-AdobeFont-1.0: LMTypewriter10-Regular 0.982 +%%CreationDate: 14th March (Monday), 2005 +% Generated by MetaType1 (a MetaPost-based engine) +% Copyright 2003--2005 TeX USERS GROUPS. Supported by DANTE eV, GUST, GUTenberg, NTG, and TUG. METATYPE1/Type 1 version by B. Jackowski & J. M. Nowacki from GUST (http://www.gust.org.pl). +% ADL: 611 222 167 +%%EndComments +FontDirectory/LMTypewriter10-Regular known{/LMTypewriter10-Regular findfont dup/UniqueID known{dup +/UniqueID get 0 eq exch/FontType get 1 eq and}{pop false}ifelse +{save true}{false}ifelse}{false}ifelse +17 dict begin +/FontInfo 9 dict dup begin +/version(0.982)readonly def +/Notice(Copyright 2003--2005 TeX USERS GROUPS. Supported by DANTE eV, GUST, GUTenberg, NTG, and TUG. METATYPE1/Type 1 version by B. Jackowski & J. M. Nowacki from GUST (http://www.gust.org.pl).)readonly def +/FullName(LMTypewriter10-Regular)readonly def +/FamilyName(LMTypewriter10)readonly def +/Weight(Normal)readonly def +/isFixedPitch true def +/ItalicAngle 0 def +/UnderlinePosition -167 def +/UnderlineThickness 69 def +end readonly def +/FontName /ROBBKI+LMTypewriter10-Regular def +/Encoding 256 array +0 1 255 {1 index exch /.notdef put} for +dup 40 /parenleft put +dup 41 /parenright put +dup 43 /plus put +dup 44 /comma put +dup 45 /hyphen put +dup 46 /period put +dup 47 /slash put +dup 48 /zero put +dup 49 /one put +dup 50 /two put +dup 51 /three put +dup 52 /four put +dup 53 /five put +dup 54 /six put +dup 55 /seven put +dup 56 /eight put +dup 57 /nine put +dup 59 /semicolon put +dup 60 /less put +dup 62 /greater put +dup 64 /at put +dup 66 /B put +dup 69 /E put +dup 70 /F put +dup 71 /G put +dup 74 /J put +dup 78 /N put +dup 80 /P put +dup 82 /R put +dup 83 /S put +dup 84 /T put +dup 87 /W put +dup 88 /X put +dup 91 /bracketleft put +dup 92 /backslash put +dup 93 /bracketright put +dup 97 /a put +dup 98 /b put +dup 99 /c put +dup 100 /d put +dup 101 /e put +dup 102 /f put +dup 103 /g put +dup 104 /h put +dup 105 /i put +dup 107 /k put +dup 108 /l put +dup 109 /m put +dup 110 /n put +dup 111 /o put +dup 112 /p put +dup 114 /r put +dup 115 /s put +dup 116 /t put +dup 117 /u put +dup 118 /v put +dup 119 /w put +dup 120 /x put +dup 121 /y put +dup 122 /z put +dup 123 /braceleft put +dup 125 /braceright put +readonly def +/PaintType 0 def +/FontType 1 def +/StrokeWidth 0 def +/FontMatrix[0.001 0 0 0.001 0 0]readonly def +%/UniqueID 0 def +/FontBBox{-208 -316 731 1023}readonly def +currentdict end +currentfile eexec +ŮÖoc;jśŠ~EŁĐŞ%9.ěŹ>XJŮĐźD â"e?¤¸&¤oLH:]~nŚX%lţŢšĎôdQ@ăa~M~EAËV.UMŘŞž")éJ˘Y§4Ňşş UËęC9źżů2Î˙ň"\ŞşÜĄwĽÔ1ˇrlxŘ˝ŘĐ˝t˙ůaÂAŮ*Ó`˘ËJpÁżZ+˘TXęŔ{¸ńŤÉÔßZ4 +3<ĽŻ@RîĽb¨[Łs˘ilkĐ`LŘŽ_/É{ŞSľ&ÚQľR`řSZC^ +ÍNÔuŚä[ß$ś6aŹHĂu×(ËĐXőöČ z9Ö¨IKŹ14 +ßĐ] +üč˙âß5ôiŞF.>pâKŘÓEőĂPľý×;dČĹ Ö`sXXÉjŚš,#jŹ_˙Ľ:m*0ŰŤ{ÝV +N)ˇúŹ:$ěäD9oF/ęc˝I-ą
÷Dqí "´ŘLđÁŮąÖ'GéĹ[ÚGuëőź$¨°ĺSÓšŰ<í]źôX§Ţtí?=4MM +!^j
ăîUä64yˇłąďj&DŢÝĽ7Î)]\oTöô8?wÉŠiŢXžÉŚűĹż7Ő´tďQ<ţŁxˇ:Y.&ąÓOä(ąĚ˛=yÖđ0Ů~ľxȤĄăTKŔŕa2YÓöc˙ޤÔŃ`p3đ9S9ĺ>&
vťK +rýąÝňiVŹśg8(YÄňNŻ6)iÎż1[ËÁ´Ŕs~ťb?yłÇcÎňk`Ăßý7ďÚ<ĎVéőÜBĽBź
l~h[ÎöĄˇť7uŚťin:lĆII,÷-n +ŰyŞŻg>2;ĺÖ= )?´_VąÇéŠyţl>TžS°fgěqúul@=ľ˝ŇÜ fŞÉ 52g˛ž[xćˇ3w'nk5×ď%Íš8˘NŽńqľŔp$ş!
üáŃ8Ú @Š +§f*,_s׳W lÖ~"i*Ą8 AÎjF)Y˙po+ˇ wéśé
ÂKYň`u$8ĽŔŘHK´˝ F§^㧯úBÇ4ç˝Ő/*%P˘Ŕpk9kűŚźŞöSvÉrLĺi;ËŚE°~ŘŹYŽUđ÷ŐúĹ^§Xçß;J(T[I
ÁĘńJ(ú¤Ţ.~tG2ăü.Ś8Žą-R.ŃČb>4 +UĽěľ|îk}Ç߼÷´rŘôäq^v˛8ŠJS)Ćy2@YšBű˘ĆŐâÚuPÓÎ
ČmĄd[cĆq¨ŕqýËô4;(=%tž55Tś![E#ÂČZ`TÜXNlĚĽc'×÷WWeĐĄhLź ó)~h\H>i#enJ:čąČňSNWéÔ7âŐDĹáąěÔ?řý>Ż8FŮ÷ĽčŠÁŐFçGÖ7ŔÓĽk=>$BĚŞÄ´;âŠv?Ű˝ťŐ +WŠ6§ů˘ P9ŔŰ=ĺh0% +óťßhĚ@4MHűŃéÔO١ŁŐĐĹŹ!nŚ}:[Ů)ć[Jq"Ľd8N<2 hŠĐBvě<Ä9öYťđ)üy/cĚnŽJÄŤw) \QňÜ +´Üű9łŽmĽ×Y!ťŞd ]:şŞŻŤNć9Zf°Ž5}qĹĄ[uř¨ŚŤÜëZ +Çč¸ä4ŁgĘnÇ{ű(GÁCÄء¨idăsľÂKÍfCŤ/MŔEA űrBô) +ŇŽBQy˙~ÖűiąľP>Q0<h¤$î.&Xčׯ1>pYNľĂT;ú$ńuqŻLĐÁEŞn"Wv9żkřK2ŤL<'ZvďôÎŘű¨tŻ¸dóň¨ßW'Ň52׏Ŕ$eÂő0D
žŽŔÂëkC÷'uĆĂ8őąŘCëń`vŮKG¨˘Ěí˝čČyăRIju_%2š'!veY=ä#áů uŚ{ßL6nwŻÖ Ě{5ĺŻĂÄ23ŇđŚb`Á?&ŹőŹŤş´ZHd3KË@Ôč´ XÜ +GPÝ,iv2ĄAnęz÷ů:˝s(JË>óŚ´.ń-eYóŐŮH¨g˘Uk:fĄ*ćŰJbnX(>ń,¤äKDóţă{Ď'ĐV7¨Ţîż7żJĚJąÇ´-Já|Ç`˝LľžŰĚwBŢŤV6UÝ0!ĂoÝ#ÍmÓç7°X>ńŮŐ¨Śodc>ÜAůmÔó9éÍŮ °÷âĂ|b+÷óX]G.˛(Ló÷d1˧´ZÄ?˘űxőÉ´ąĐlÖXŤJň5ąZ˘=fŔm!¨9X?ÍĆŔ_ąSHÄIŃWUíg,Wś¸¸Đc9ĺŇŃWŐčzą!|¤"ë%ĽďúýiŻŢQXŽżýŠŻRBŢÚ,üąÉZ)aŢĎMr[}sóéR<ĽW(\t6˘á˛cŤ +Ămť;qŕ@żĺ# Őhň÷ +ăWć#¨J TuaňGJż˙¸ĹśY÷Bęń˘SÂ
HůkÔŻ.ŞŚHUúÇÔB!ă˙Ĺ?˝K$˙GFw¤â\saţ§Ľľ>lC<,ŹZ+0K]ţTń
Ń,żˇ˘iĹ5˛Ü: +˝EŻűZ,C˙ëDočŕ:d5ĹŘĂDqýÚ4_ľđE"\ťVBŹť$ˇ8ޡä4ůż?[}! ˘"qÇúÖFěĐÂ8b'TxĽĚnć9ZĽ´uű:§qć(iÍ÷ůšř8Á5*ÎóţH)Zđ +ÁPäb,ˇ˝ąu¸O*ć˝×uălk˙ŰŢ4ŁUZŰ|T ŃäAPřvnÉĐeČşd*ŇńęŇgŠŐ¸|Ú"H$}@˛:7ߍAŰźSúś>Łéż˝KŮĺeGWře6^6Kx-Î[˝Ý#8/Ü]1rLCßÄ'#×RlîŘĄ'ĎşFů!VwDuĂ_6Ť˝¨Äk8\÷Ĺm´¤Ř=|Ű+˘HŁfŐâŰłmf-$˝HÚH>ľzYTštüĎ Áţ¸wmp´-gŢZűĄcS˘ÍYoňéÜ|öí%9ĽŘŠâ5LŢÍçdÖ˘łľß\Nn7|ŢößöUßó[Ç5ö EĽV_COnŕ%Ö˛^DWNhĂďÝxk Ŕ}u$Ó}Ć:@^$ĐÉ +çWů
éŔŰ-yÉ ')ý>H×ěuâcÇj&¤mőeÍ Ö]8'L]GšV3ž"ĺ0yűĽŰo'ÍbÍăá/ČúŠb3PA˝?ŤGÔż
˙Ś#ćÓ´ĎôÍ?ËHWm.Ů-V<ŐäW[8PúŤęŠh +ĚńĘ +%ŤŕMZ2ý7sD2Xϲffč÷[kĆ8z
ýëŔÓÇđÝdűm)ĆŃAě°˛;§÷ +Ółěfď7cűéUá-ëš(UŁ4._F"Ôaç@úÝß3}Ϣuv2Í
°wÚ3p\ŕxú]Ľžî ąĆ$ôG22(ŕ3ľQ3ëăŽôřQŐÄ(ÇbY +AŢşçżzń}wr47žfĽ;çHÄçi4ÖzŁg_ŃçJ˝ôl¤ đĽÁăŔA\Ëń#łąHÚüŐ[˝žě#U_Żţčl§.Ôŕ=cu[.akËnuhéŮÚí"Šăo#j;ËtLďŠůą!ŰáŢŔDŢÖ _ěâ=rŠöŕŇgĚgöŐĄąż¨ŁSă%Ž>dVNĐś˘nnŃúrx6ZżGőPxű "/ŕx<1cëoŇÎĘk¸zż9ßvĐWZ'Í(PSŁá~C#ůÄ<űx emWLđF0q
%÷äQh÷
+ +ßd¨ý^öş×YIâ2^ÍČ>o!XŁzŹ:ĺďÔĘ&?ĎŮ´Kń×Çéú"šÚa9<ł2?áČŔŮSĺĘČkş^^QS°śÇßĐGbFÁvgIi<źfÂúiTĚŽ."sţĎćĺW á+ąPŇ[ű{ yĐ
Őč¨kéÜî?Ëš äťťĽ7 :ĄžząŰ˛|Řż"Ú¨côBW¨:lšáŔD-ť8SĺśL>ĺ&céŰUÁOőĽmHú
ćXÔ
.,:SČË +˛Ć(vrN,<iŃłŚç!çç?cŰ}ÇëÍŮłŘM՞۳ŢTú](Ą +BôE8ĺşC CÄčÜZů\ +ŢĽäűćíߣľ47%ÇB¨¸âI +Ä6xrŔOvN[]])u ś0Ŕ4łŕŁTSîĹŚNJÉ°Ń9żaG:c˘ŽLŢŰ°H=şŕ67ĚL0ß&ß°hÔŞÄóHOľ´Đ˘°łĎ¤7ßÖktü éöSÝýÂgĐOúÂŽ
sXĆÁŠ)˙T˙hť"'-6g´üŐßĚKVgŘ2ęĂŇËŹ!ÉPsW°ŔěX×qĺb."V˘dš5t2{b˛řhşGćŚf(řjÔ×Hzgę"Ľî¨IO{Ô[ďPŠĽ]/×ú°łoůl"PsGRî<í?#gMkUňSŽŤ[äNĆÇwˇv@żs27(¸Ýŕá9OóСŹÎZÁ!AIĺ͸Łŕ¤8GI§Ř7-ÂpUtaOźE@ř]ocôç¨ő6ôtű˙Ą ěd|97üűä7Ż˙ëçčˇ%ěĆQE +Sp.b|C`,
\Ĺ Şş/W4]ńDsŇ3+^ÄjőI&ČŞfpl<*sĚĆJ´î`Ôí˙&őĘ
K×ĹJx;ń%Qč~ţ04Ż
JŔňqwh?ćţąŰMMľ G¸ŐtvŔfí§
3]AőôJ`ísÚˇ*/Áß)á°B-üWs>îń +.T¨*%˝\@^ĎÉ´,!ë¤ÝyVčâ?ĺŻ'B`űŐŠîŹnEc.!ĐŔr~ZJq"Ľd8N<2 hŠĐBin×÷ĽUNS§3sŽÎŹmŔĂĂ`}ÂäI-ĹĂÂČý}SĄˇ&Ä'űčüĹHćU×qnĹ÷4ëMN
üŘŢ3Ă)Âl˝"AşV^¨:Q¤B¨śT1ź +
ţĘ}fšInQř!űÍăÚnő¤.%Ý2ŔÂID3o4ďźČj!3;L1ćŻ.Żävzx#@XC{ĘŤ@Ű-N˙ŐřC&jg,üÖ´/ꜥúÔČŕţ=6ańŕ|¨ź2éČÜK;6Ú=ýyzÖ¤ž]5Ęă÷@é¤VSťŻ*]ĘV
ľżB0čJ?˝.gÄßÄöÁćÜIV!Ŕ jd Wz˝ enéőG5^Úi ęłDYçżYý6nw_+ŮűZhü,fo Ł\L
"Ž|_6ń%cźÎ´ępŚzkžŃ¤FĺÚ˝úÜm'Żö`u{x kľŕw×Ń7ÎQ˛qśí6ú/îînćţcHrř!m +îls;\Ęɢʢd¸Ěe_dâĆ˝CÚËMśXäôË^ +ąyÉ5\ĺ?ž[GE3÷f'ą;830ąŇâˇ.Ťöţ¤x*ÇQDÚ°ůoű˙aŮdF
žŻÍ Ô(ŞyD|%âÄ
mÍZVîJ9#0Z&ĹOF8ň:ÔýčĆőÂCîË Ipňĺđmr? XčXíěŁe˙Đj +b^Ěŕ¸IË°~š +ś.âźÇń}|-ĹśTRŁçŹwLBďä˘Ëě/&11ĆUiđŇÚ4 ů'źWHŃlŽń4=˘śÔ´Yâ!~°cŞĄç0ČnóŁxöcŰş7Ż..HŐˇŮ;nÖ˝cű)XĆŠţ /] Ň`^JŕTźaFęJ×Đ4tŚ¨-Ż^˝řÎ<e,|ŹvÄuČš9§í˘ĹgAźFő߼9˧?ŹĹĐABŢ)~BĄQKźFŐ4¨ĎZ"+ęy×ÔĂ e1ś´FZžBrdibŘ{ţĐé|ôúP7UcÖ2}Óbě&f3`ÉËĽ˙M5Żç÷řÖ(|hăŽÂwě/Ť4˘siśżÜĺßĹeĎXa 7đVYźśŹOPŤdNG˘e+AŘóčGcFŽwo|OÓŕĽ}Ž [>"X%őęYFşŔkŹ-`ćqzö=ą:7&%ž@ b]BşL\7ËĽô|nj,E ŰB1á°^}ŤDAcőŮMJŇ=?űńŻżd/T[çCĆĺÔÁ
+9˝bĎřp0qŇů`~łĂäNîËFşł÷x@"KooˇN-cę%Ę1Ă:jFlšˇw6hď#˝şfŕ2RÄľŐ<ÁLŁŚ×ľiYÂłĂVy¤łÔéÎaŹr=ˇŤĚ˛=Yé=?dsŘyr!e~Őv¤ÍőŐTąËekUM cSÝú^\iţ +Y#27ŤKZUškLŃ}%ÁöÎGlŢż>6Ş[Á2nrn-og#RĄ\y|¸˛7I +Íýrţâ3Čdńˇ
ńđ"+T[ +7eCu5§pn7ÝmĺúąÍŚvsšJĚ8řs(óŹŹá{ąĎˇbĂnáÝ}´â´ş8ę¤Á}SäĎĆĄ}Çë3šÝóţ{ĹÚ}ţHżm]xú'^°#Ç:l˝HI˙xěĂÇŇéĹ!ţĘL2m0 Ţetzřđ{P(ľćZ>¸; ŤeËčăagŤˇDśÜU]%!:hgţ~*ÉrëŔżzđ´|4ŐS4
÷üaŮ}ą!ßpĎ2ťa!tD5¤cmh+řSjÚ´h>¨8DrŘLŚ*Ŕ:%Eąe!żaŕ)N^|đ\Őn¸°vBÖ6eňĘs!ŤćÓßÝ}Jćý3l§[nŃëPăÜŤs¤÷¸ń +ăuÇ?dúĺˡŰRS÷Ą${ç-1=wZm)ď˙3H:÷öŤe´@ýeíp$2=űÇLNö î Ó +5 +MnîlÚĄôąH`HęäW7ë3ůç pýů5ýFęQT{°Ąýâšî4Şŕł/|Sź¸0´ŘqŐ'śá<<Ę|yčČńxJA"¨/Aí¨ŘzöĹűß?\oA$"ŮŮMqŻÂđ |&^ç1~]ă *ňj:k(OůrßŇ :íjwä+ŰŐ'ă"a`k.힨?ąŐ Äz]YCËĚ2I1É%j'NHĎbÜ+ç^Ážd˝ďźč5˘ńŔĆ <ŃLŤt
QÔ}4ă1> SÝNéčľ#rJ|Y(÷"Ĺ`rżĐÖN0`ń{:{>߲ë[0űRërxŚřÝćÍěWT9xĚźtÇŹ#BX׼2QçĂíýNkz7#!l8QŁv 9')ÍC[=LöĹÔRĽFb6DŕÖŕŞ
ĎÁł[ c8G¤Äő7°Ä: ¸Ç.vfĎ+*PLPÔÔ§)É;łTÝdäëçITâÖ]óWŽAia`ä8Čéö&ŞNŘ#FY7Eű×ËĆîÄŹ.ŃM×ě§G7@Ě7eÜţÇ_#g}ó¨ČLŢŘ7KŇfçďB0ŘřÄ~Ó4ÎÎôk
é ;ZźhîO +.ŢiW@Ú.^ő¤amJĹťxo +čxšú5e¨* +ű6ÜśţHLĺëąwÂŰ9S@żĄoÚĎnćđdMLË-Çp6t¸>^VŰ=şoźËkó"˛ŢŘ/śčűëć)Ş{oŞŃČ'<qś7Ź(:^żľ˛îĘŐHögJčöÇř˛nŔ[fZ*^[UŔáěOs¤˛5žť`oőrě0(Ńs_r=ďaĘÔ<ź*<pŤşLT:ĺŐ4ć^˛Ł÷wTĎöqNđîOőĺÖŔÉďÇš`cSŔpá}xâöÉ5>"ôĽ<<74ňřűLŇž!ůáiQpěC6ü§˛ÝĐŢŕvb.Ě˝ŤÖÂOÂôOϡZůBÔAĽíH>ĺ{PXšĽfßapŇnř$Ô˛úÔ-Ş:lËŃşet8DÁË÷a.ů ňŻWä<0I&Ź˘L\ÍëÔúKPH¨|łíÜ< +śŤś$pęž˙×-¤˛CńLźC˘SóĆĽp¸Ő4ož]˝Ś4ś´ÉŻ*eóÄ}"˛¸äë¸G17îyě?XbĆm`śÔú~;T=\8łŢ÷ß÷Ô|eĺE
oNE¸?Ä +ĘEe$é~ioQ+˙ ĺDŤ[uÝÜBÚ˘pdüjkR>I9iľU/VyÍtňÂŞY^-rÄq_ú0ţşÇWĆłçÇŤ^Q߼ŞîIvÍ`j
Ŕ[ă´pĽOíÄŠ#Ę˙ĺgšesgţLŹSÇ!îĆdMëÔŔKU}uąGČPp<hŔ1ňęß(đĐçQ˝Żţöř|ÁČäĐŃ|YćWĹ_Yů\ +şý3;í)+ĆŽüżéDz,żl7:ě AüŐ>TŹ.Xr~"TăOaBMhÖsĐKYAs@ĹČ0gA$=
}żcpąE˛÷ĎFűésFâkő§%ţV]JâYEJ: ׹>y'š.çšÚ#ŠX@ś¨s˘
7Fr˙cĚě.%ú\Î~eňd˝žÜ ÂĽúĹk0<Ö>$:äz4TC0ŠŞhešuÎqhxlî|HŽ0ćýîXţć:jęűÎ,rŚűÉÎŢ9¸ŠÓ +ÎÔnŽÁw&IÄ1Ş OÇč!t{h'P< "Ů~]§tëĐ˝ęöbü +k\IBPqĹÓZ¸Ť@fFyä¸ÉpŽú* uĄŤ-Đ#t˝ůń˛ZůđO٤& +RźĹř0/¸ľÜü(8ˇařfĹ8&ŽHQăkŻ-}ÓţMś=ąc'5Qt_ĎŰä0UŐŽ5˙ţ+6,[yŚs5? š;Ň9ŇÄłL"şD÷ü*šÎjĎs9Ľż˘T´ő˘ËĆvúŔ{ĆTŻÔ0qéßü#{n§Ĺ-´.óÄô%
ăZe[÷?8JîŐ°Ňb§(ľ`dŤţŰšĚVŚńÂČĎťxŢźOFĘ lŢŔÁűuĚą_S! + u~.ŞoenT#$ŐÉ7oPČůŢŠ?`ظvşí×8"AŘzchřz|?tűĘV%ËAB
ňÁ˝Đ*ŽZô]łú˘ˇg]e%]%Mű +S BŢ% ó?ĆxŻP{D
¤,^Eiawt@ŮM°ŞŘÚŽźcŰłĹ*Ę3MŘ..č6Ű%ěułż§¨zf
ýr ęgÍłpváęŽŃ(FC72Ňj_LOôáYuČ$ÚÚXÉÍ÷O¸Ž +°\WhSţĐpC<N×.Ál| *N5d$[ NߤěŞ:yr`żF}"ă4z=âKŔ,ą˛`Zâ_ 4Xŕ˙÷¸"îRY?ęŰĺ
,C[rĽŃâ¨qĂCÝźą,`!>F2ąˇěl*1úć6ő Šőęö÷§ŹŐŐ'ÍQ§VŚ54˙§IZŞÉ+zl1đ×wń˙{)˘!FA!L ţŇňÔ(ôŢÇŰŃŽnĺĄđÜź˛ö-É°9W_<1ÖÔMżř{Ćßt˙é2ći4Ť1Â{\
jĎ=ŇDĂ*F˙@IJqŚq7ă
¸a°KvW§ę P?Ąßďěßk(¤
ĎOˇ#â#ľ\öJwEˇlbŮUö¤$:ĂIâ@É$ĚD`tx¸nĄF1ÜŽĘs¤\tŢÂÓ aąÁrç3PőIupĽ ;˘y°ŔÖ´´Ż!üŘÔExS=ü +LNHĆKŕ@úĆ)çśűüł;!zzmFa×FŰmpąĽ+ű:ü +5čV< G~użt |>ň
3ĺˇÜ\ÇÖóóm´BŠPÁeëÚ%§BrSKtüH ,JYŚ-Ž×ăç{ÓŽęČ%
IcŇ8Î(đ\Nč%YÁ´d-{ĹćW]NhíG RëgĐr|Ű
*í<¸éśáüňŔbˇ ?5ŃpHlK-ʡOR3ËĹŻv
Fč;XĽĺóMF^0tśXPt¨P#ŞŠsdľ¸ľL'Ö<ZĄĂş]'šGlKĘX(ŃkŔ
Iţąl:w§ë{˛ĐR`=ÍPśÉÜ^YˇŤřŢSLţpHŤLm-ĽĐZţxyţiFăĘá~üÇ3DÝUmđѧÎÇť¤ăgŇiç2|
ÉfűüŐg+Ô62v@_ýŹ|âCÁ˙0¨ócW!á +}éÍ>ňKVľvŠ4ŹÝŮ3L-§f!Ů
_ćJŮĎ +ßD=bż3!˛§ŇłlBTÖÝCândt/ľ ŹB '==dĐHÎ4VżÄa⤸7Ŕ§´{źžKŁđ +pŢŁyWuÎüňĹxßsa_ńÓ@ł%j}ű5ő2?šúRCÇ'HŮOGS~j\,w_Ř9ń`ą
O^kC3]:źú3ft;¸źběÎ1
OőŐ>_oúŻ5¸żKHů0eBŁŘ"bőGF
%;?MyůIöĆFžC}aÂ?î"ŔI\|Ż0\ +ŇŢh 2Io~¨bLL4sŹ'ŃidůŻĚ¨
ZQéťí<˛¨§ZăÎ0čpłŘpîľâ5Ć
V˘Ő(5 +zž\sëç+y'H{é}6It[őÍjtÍŠĚXZđŰ<ĺĚl5Qź2ĆŽ8 תMoG´×3ö_Áb6˙?Ś§ĂFĄO<_)EÂWv\Hűvađ/ň2}[KKC/\AFr
ÝÝsëDm˛ŃTg´cfkéôMpé!.PĂĹÎn§ĆvJđRDHşÖ]UŇâd÷@Í÷FÂĺä6[QĘBźNŰěgŤ=şö[HÄ´ĺTpîĎćĺŽÁĺ4ÜnÉV˘W8\EqÄfŻZ:NťqďóÜXümŞ1ÄuĺÔsËćŚů,FV|ßř}űĹD +íÇp@ĚýŐ `ĐĂŽqŢżbŞÔ OÜ˙{ŽÇm=^VnpΞšé]ŠjěŻ:D_ Zé`ĐlfćúČËĎăăąA(jYĆU@/Ç
řCĹ/\Ę2Bň ´KľkEĺ'kđŇYŐaĽŕŞšy+(ÜáËô
˝ÉÄĽ+ěčéfŻ3ăűÍág42,YŐ<üHeqä$pßĹ'xg`Â^eŘB P?őD,)ŤĽKE"ŽúLüű]Ěß
Oi×ąÄ 2MçňĽÚVCiB¨sIé gޤĹ3îý +ôîş,R Ťóä_<Č×`K=Ú4aK +°ŇA#ëë%×EĄĚřýÓŹ'~fuč3qÝĐE*ĚběäÝáŁ`N ţłë)łxk&Ák-cŚgŠY öš^ÎÎqŮ)ŚhäVÚ0đh +ççřjX|Ć9uŠy.´ţ@_Ć˝1uíÉÓÉZę+1Ž*˘]ŔjĽĺÍđ(Ş)đŽE +Hry4śěOE?MŚĎě'ĺáđ()Ěg$ŢžIŁ'űŁáŰŮŘ`6\B(×@GVŻřń +,`1ů 㧠+´üźÖWuýĚŻúš$ne);,×W~c4ŕ˝gO§QWÚrÎŢě$SÇm ăÜÇgUťíŻń°*[j˘Â/Íxl`[śrtďBómˇP`â'{w˛ľľ×uÂĎ'ý[×CĚ
ÓđU{SN΢FlşöŻ˘fĐZ<Z9sDZÜnŁlmŠËŇvÜOŞĘŐĄph!1ŕŇŔl˙žŮŇî{łÎIńż˝rđ/Nś6 +FZ0|Á:PŻŰ_Ň +wn(î× +Űv˛2WůHFçâýZĆÚ?óßÜOg^ăPŕîJKów9Óe@oÔŽwĘYš)zgkPďĎ-:ŃYÂv.ÝAîNXYŢö~~˝îú#űPÝ gź1Ą{ĐĚB×lzD¸Ůf@j§ţ7XďP]'šGlŞ+ăHđóĺEÄ(EŰƢAZd9#á´Gç6îNŇ RqĚaŐż\e?üţř$aĚ1 ?śp N§BmH
Ç(ŻLżŞ +
ÜôÉŕ':Ťív@JÔęšX`7!ž˘
#Ť´Oź)(Ď[°K˛šW7â
öe4oúnĽki`úl¨4c× +RGeIü[:/EzÜr/ŻQn˝ňúm{ÝŢÍţ2׍ŃŘiź/2ZÍ%17po:RÎĹá¨}îŚađA3ĽlŰdÝć°Ôŕä04pî6k&Ş>Ł|Ž&{˘6Ęt=3faâű|çuěęńŹ˙ä\ĹţŹĂĹżőŠÔ΢˛pkŰ#C& +÷ŹUTČ˙n|$Ď÷S
aĺ3fă^"Cĺ8ŘŻMv+ÁáoĹ{Îé#c~M3Đ'ÖöL~hčĄúF䤥/IOË:}R,łžë4Űc1RĐnWÁot5ŃĐĆŇŹŃNÁ*ŘadÜţL*ţY:D˘iŤŕ
rÁQÔť!U +ęxč}]ĺÓ#Pú
˙ËŘ7d`@ĂKÇďx3ů č!Řaä}tětyÍä6ăŇň`;RłÄł˛öęhŹŁyjÖËrŤf3ţěM2MŰĘ<xěúÝiiA/~ĽđŚ0uáĐ!^ľRďTjŮy× +8o\gaš´Ś&Ź¤Ś?ĄâܧGăĘôýzŹ đÔłĄVËOş0¤úě9°ž_6Ěâ>7ş(čĽ'˛ŤĎpßoVVÇOóăfóśsö´Ë|eý<E[őÜćčĽw6k^jăńż ĄßGÁ{ěOÄajxß[9÷[ÁNńAÖÖt +TAThDLýiŽą'Űwž˝h>
¨ mŐ(WÂÇőťĆé°/ďs>Ő4NŮ˝Ů|¨LŁ,<Ć^`*; +7ćĐŘAb|@SăćCŐ+ š.˛űí(M÷ě
WĘŰÎWĄď÷+ySÚ\$Xw[cq
tNLđů~űT Ľcf&Hřű˘Ď8ŐbgËóYRJĺDëşyoĚŹHŮRĎMÔÇ ĽÜ˙ҲçqJEuäÂ(-Ż¸Ş{/üť 5PłşŹF=ŤGÔż
˙Ś#HľËrŐyDől{<`X÷ŹÁę%´ń2ŚlxÜĂkÍsŃcz6ěĺÜ× ŻĐŃ
g M˙Zď \ě˙ŻÚŘűľ(5#ĚÓKËK91ł[B8ľ<pţ´ç§ÓqĺŚúŕp1ľŘ*ÝW(Ăën.ĽI~3ˇÉyŽŁHĄ<Ĺ&Ƣ/Ś=XL!Uî˘#´ű{°ţ6:űAPl}qvr-]°Rź4ŠoĂÚ~aS.ŠÍĹî]ŮÉmş6ˇÍO´.GÎű÷4\âűĺ5´ĐÔž`Sš,ęá/3&Ä,?äÄäT˘w?Tă Ú{ä8ńb"źFÁŤö%wâ â=ÜčŰ +FÜęĐěŇÖ°´×ĆÄ>ůĹy~ŮťďĘ&˘ŕÍÎäü¸őâűűŇRçXŰ`óĘ1ăQâËÁż¤Ž-v.íögóŚÄÜŻ¤ň?řĄaşéÄ˙>Ĺč˛2 +6ąąŔJBËiî h5ŰřńöČîŔÜ%ăFńĆÎ<Wö¨{ĄF3D1EVŻA,>žXjwn´Iř_teU*})ŘTüUŔ_z@ˇóÔ4ôsdTŁGmýyC<Ód1Öü>ŕŤ+¤Ţ'ç* 65Jřö
ĘSŘ>*|Xľo@XĄWb8ŁPfűüóŠMuŞJNr$5űŘ:P3tň4˛#ů`ÜVßPŐK´Ń"\Ľ&'ź+Š|(k2mMéĽPvó{gĚvĺŘĄŚŁDĹÓMX
s[íĎç$5ÄŠ˙đqĘÜe6CXžŤť +źäv>äzĘďz:'Ś\< Ł(dňbëTXٲ˛päzMČWąb<§i lĂŹŞŘły˛ßc%j5Q1íścxu´}]ÉîŔˇŁÓ¸ +ŢY1a$+=J ˝ŃqŰĄň˙ß˝ëSş4Îç$wRôô÷uűvB ˝Ybl%ćÍńV)*ĎKš×÷úODtőF!âÚ{ZşSź´Yě1ÔÇyuuÉÓzŹđlWĹ ýçŕ*)L^Z>šłĽâ<ÂŁťDCsĄnÇd{Éň§>Bja&Ń-$ZÍ眎[śHňDŢ#vžŕF94˝[3č0x^§ndÂ^nJ8ëeŢKÉÚ +9CuŮaX6łšě +ŢŰ/ÓÓlhčó@Řnąî@ö^:ŽîéN>NŘućf=5ű5NŹŇá)2@ě#Yĺˇq°{o$ન}u,NŠs[qĂÂ^Ů\9ÓŤ +ç4ëEënSP'zů
Ŕç×O9ĺą řEÍ
ćĘLq(ĺŁ@IôóMđWF*˘.Ém@÷ütĎËšożşa˛âČď>XČ!píhó
;
ś )N#ËŻSQoŰünÁÍÇ÷ĺGő6ś#"
PSÜIä<z8U^JŮ%ĘćXD
A6°íP!÷ +-ş8%č%îkŮřď3HĆt~ĚÉ"yĽ ŹŠ8 ť°.ń)Z[/Óą5 +/¸[źJÍŤPŽN)läV[Ă2ĆŠ%fŁCSŠiÁÔĂ\ăMž{qŢô,hâłD[âz¢Pňşd˛ŇOQҸĽmĂ
.eŃá +FI¤kň
NqďVâĂĐJŁó ré`uÓkɨčYNzrZQÂJ"ÔjfsYĚ,¤˛i +Ö̸.äGI3cůuÎľń6Ť`đ^nž5ňhłc + Ż:š>jPEK˝-
˘¸×ęó°?)í
ö?Ń4úńH!;aÓ˙
÷SoLŢŇŠ=ih$^Łr]sĂŽÂśű˙čLĚzĺam=*6ő%şąU.đÍXŢřVžg,MĺúRébÝěÎYŇŕॢ@Ű÷Ó^ĂŐbá%č ĆŇđĘע`žŐłçňuřYE6ă-ŐMżľOSfrž@żĂ"ěuhyÁĘN7}ĐŇŹ_5Ě.Ň=ů`ĹMOŤˇZĘ÷ČB˘]H°łű×`čNFzZwiÂôÔÎDít2X}×Čq[.ťh¤0)çjÄÓËyŮăÉ2ˇŐöO˝˛ˇůŕ Ő¸Ţ/Phň#㽍$.¨<éŻ6"X.)
ůAŚŮů~1.ÍąýrhŐ%ű+v$ˇÇhýRYĐvjśŻ,ż×-pbÓ;Ţ$,f¤Yä=žW+ćąÝÉmr×[˙FU/OE-Ăď&'Ç>zeU +Ţ × +gČył0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +{restore}if +endstream +endobj +14 0 obj << +/Type /Font +/Subtype /Type1 +/Encoding 322 0 R +/FirstChar 40 +/LastChar 125 +/Widths 323 0 R +/BaseFont /ROBBKI+LMTypewriter10-Regular +/FontDescriptor 12 0 R +>> endobj +12 0 obj << +/Ascent 619 +/CapHeight 619 +/Descent -222 +/FontName /ROBBKI+LMTypewriter10-Regular +/ItalicAngle 0 +/StemV 69 +/XHeight 431 +/FontBBox [-208 -316 731 1023] +/Flags 4 +/CharSet (/parenleft/parenright/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/semicolon/less/greater/at/B/E/F/G/J/N/P/R/S/T/W/X/bracketleft/backslash/bracketright/a/b/c/d/e/f/g/h/i/k/l/m/n/o/p/r/s/t/u/v/w/x/y/z/braceleft/braceright) +/FontFile 13 0 R +>> endobj +323 0 obj +[525 525 0 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 0 525 525 0 525 0 525 0 525 0 0 525 525 525 0 0 525 0 0 0 525 0 525 0 525 525 525 0 0 525 525 0 0 525 525 525 0 0 0 525 525 525 525 525 525 525 525 525 0 525 525 525 525 525 525 0 525 525 525 525 525 525 525 525 525 525 0 525 ] +endobj +18 0 obj << +/Type /Pages +/Count 6 +/Parent 324 0 R +/Kids [7 0 R 20 0 R 26 0 R 32 0 R 38 0 R 44 0 R] +>> endobj +55 0 obj << +/Type /Pages +/Count 6 +/Parent 324 0 R +/Kids [50 0 R 57 0 R 63 0 R 69 0 R 75 0 R 81 0 R] +>> endobj +92 0 obj << +/Type /Pages +/Count 6 +/Parent 324 0 R +/Kids [87 0 R 94 0 R 100 0 R 106 0 R 112 0 R 118 0 R] +>> endobj +129 0 obj << +/Type /Pages +/Count 6 +/Parent 324 0 R +/Kids [124 0 R 131 0 R 137 0 R 143 0 R 149 0 R 155 0 R] +>> endobj +166 0 obj << +/Type /Pages +/Count 6 +/Parent 324 0 R +/Kids [161 0 R 168 0 R 174 0 R 180 0 R 186 0 R 192 0 R] +>> endobj +203 0 obj << +/Type /Pages +/Count 6 +/Parent 324 0 R +/Kids [198 0 R 205 0 R 211 0 R 217 0 R 223 0 R 229 0 R] +>> endobj +242 0 obj << +/Type /Pages +/Count 6 +/Parent 325 0 R +/Kids [235 0 R 244 0 R 250 0 R 256 0 R 262 0 R 268 0 R] +>> endobj +279 0 obj << +/Type /Pages +/Count 6 +/Parent 325 0 R +/Kids [274 0 R 281 0 R 287 0 R 293 0 R 299 0 R 305 0 R] +>> endobj +316 0 obj << +/Type /Pages +/Count 2 +/Parent 325 0 R +/Kids [311 0 R 318 0 R] +>> endobj +324 0 obj << +/Type /Pages +/Count 36 +/Parent 326 0 R +/Kids [18 0 R 55 0 R 92 0 R 129 0 R 166 0 R 203 0 R] +>> endobj +325 0 obj << +/Type /Pages +/Count 14 +/Parent 326 0 R +/Kids [242 0 R 279 0 R 316 0 R] +>> endobj +326 0 obj << +/Type /Pages +/Count 50 +/Kids [324 0 R 325 0 R] +>> endobj +327 0 obj << +/Type /Outlines +/First 8 0 R +/Last 312 0 R +/Count 49 +>> endobj +312 0 obj << +/Title 313 0 R +/A 310 0 R +/Parent 327 0 R +/Prev 306 0 R +>> endobj +306 0 obj << +/Title 307 0 R +/A 304 0 R +/Parent 327 0 R +/Prev 300 0 R +/Next 312 0 R +>> endobj +300 0 obj << +/Title 301 0 R +/A 298 0 R +/Parent 327 0 R +/Prev 294 0 R +/Next 306 0 R +>> endobj +294 0 obj << +/Title 295 0 R +/A 292 0 R +/Parent 327 0 R +/Prev 288 0 R +/Next 300 0 R +>> endobj +288 0 obj << +/Title 289 0 R +/A 286 0 R +/Parent 327 0 R +/Prev 282 0 R +/Next 294 0 R +>> endobj +282 0 obj << +/Title 283 0 R +/A 280 0 R +/Parent 327 0 R +/Prev 275 0 R +/Next 288 0 R +>> endobj +275 0 obj << +/Title 276 0 R +/A 273 0 R +/Parent 327 0 R +/Prev 269 0 R +/Next 282 0 R +>> endobj +269 0 obj << +/Title 270 0 R +/A 267 0 R +/Parent 327 0 R +/Prev 263 0 R +/Next 275 0 R +>> endobj +263 0 obj << +/Title 264 0 R +/A 261 0 R +/Parent 327 0 R +/Prev 257 0 R +/Next 269 0 R +>> endobj +257 0 obj << +/Title 258 0 R +/A 255 0 R +/Parent 327 0 R +/Prev 251 0 R +/Next 263 0 R +>> endobj +251 0 obj << +/Title 252 0 R +/A 249 0 R +/Parent 327 0 R +/Prev 245 0 R +/Next 257 0 R +>> endobj +245 0 obj << +/Title 246 0 R +/A 243 0 R +/Parent 327 0 R +/Prev 236 0 R +/Next 251 0 R +>> endobj +236 0 obj << +/Title 237 0 R +/A 234 0 R +/Parent 327 0 R +/Prev 230 0 R +/Next 245 0 R +>> endobj +230 0 obj << +/Title 231 0 R +/A 228 0 R +/Parent 327 0 R +/Prev 224 0 R +/Next 236 0 R +>> endobj +224 0 obj << +/Title 225 0 R +/A 222 0 R +/Parent 327 0 R +/Prev 218 0 R +/Next 230 0 R +>> endobj +218 0 obj << +/Title 219 0 R +/A 216 0 R +/Parent 327 0 R +/Prev 212 0 R +/Next 224 0 R +>> endobj +212 0 obj << +/Title 213 0 R +/A 210 0 R +/Parent 327 0 R +/Prev 206 0 R +/Next 218 0 R +>> endobj +206 0 obj << +/Title 207 0 R +/A 204 0 R +/Parent 327 0 R +/Prev 199 0 R +/Next 212 0 R +>> endobj +199 0 obj << +/Title 200 0 R +/A 197 0 R +/Parent 327 0 R +/Prev 193 0 R +/Next 206 0 R +>> endobj +193 0 obj << +/Title 194 0 R +/A 191 0 R +/Parent 327 0 R +/Prev 187 0 R +/Next 199 0 R +>> endobj +187 0 obj << +/Title 188 0 R +/A 185 0 R +/Parent 327 0 R +/Prev 181 0 R +/Next 193 0 R +>> endobj +181 0 obj << +/Title 182 0 R +/A 179 0 R +/Parent 327 0 R +/Prev 175 0 R +/Next 187 0 R +>> endobj +175 0 obj << +/Title 176 0 R +/A 173 0 R +/Parent 327 0 R +/Prev 169 0 R +/Next 181 0 R +>> endobj +169 0 obj << +/Title 170 0 R +/A 167 0 R +/Parent 327 0 R +/Prev 162 0 R +/Next 175 0 R +>> endobj +162 0 obj << +/Title 163 0 R +/A 160 0 R +/Parent 327 0 R +/Prev 156 0 R +/Next 169 0 R +>> endobj +156 0 obj << +/Title 157 0 R +/A 154 0 R +/Parent 327 0 R +/Prev 150 0 R +/Next 162 0 R +>> endobj +150 0 obj << +/Title 151 0 R +/A 148 0 R +/Parent 327 0 R +/Prev 144 0 R +/Next 156 0 R +>> endobj +144 0 obj << +/Title 145 0 R +/A 142 0 R +/Parent 327 0 R +/Prev 138 0 R +/Next 150 0 R +>> endobj +138 0 obj << +/Title 139 0 R +/A 136 0 R +/Parent 327 0 R +/Prev 132 0 R +/Next 144 0 R +>> endobj +132 0 obj << +/Title 133 0 R +/A 130 0 R +/Parent 327 0 R +/Prev 125 0 R +/Next 138 0 R +>> endobj +125 0 obj << +/Title 126 0 R +/A 123 0 R +/Parent 327 0 R +/Prev 119 0 R +/Next 132 0 R +>> endobj +119 0 obj << +/Title 120 0 R +/A 117 0 R +/Parent 327 0 R +/Prev 113 0 R +/Next 125 0 R +>> endobj +113 0 obj << +/Title 114 0 R +/A 111 0 R +/Parent 327 0 R +/Prev 107 0 R +/Next 119 0 R +>> endobj +107 0 obj << +/Title 108 0 R +/A 105 0 R +/Parent 327 0 R +/Prev 101 0 R +/Next 113 0 R +>> endobj +101 0 obj << +/Title 102 0 R +/A 99 0 R +/Parent 327 0 R +/Prev 95 0 R +/Next 107 0 R +>> endobj +95 0 obj << +/Title 96 0 R +/A 93 0 R +/Parent 327 0 R +/Prev 88 0 R +/Next 101 0 R +>> endobj +88 0 obj << +/Title 89 0 R +/A 86 0 R +/Parent 327 0 R +/Prev 82 0 R +/Next 95 0 R +>> endobj +82 0 obj << +/Title 83 0 R +/A 80 0 R +/Parent 327 0 R +/Prev 76 0 R +/Next 88 0 R +>> endobj +76 0 obj << +/Title 77 0 R +/A 74 0 R +/Parent 327 0 R +/Prev 70 0 R +/Next 82 0 R +>> endobj +70 0 obj << +/Title 71 0 R +/A 68 0 R +/Parent 327 0 R +/Prev 64 0 R +/Next 76 0 R +>> endobj +64 0 obj << +/Title 65 0 R +/A 62 0 R +/Parent 327 0 R +/Prev 58 0 R +/Next 70 0 R +>> endobj +58 0 obj << +/Title 59 0 R +/A 56 0 R +/Parent 327 0 R +/Prev 51 0 R +/Next 64 0 R +>> endobj +51 0 obj << +/Title 52 0 R +/A 49 0 R +/Parent 327 0 R +/Prev 45 0 R +/Next 58 0 R +>> endobj +45 0 obj << +/Title 46 0 R +/A 43 0 R +/Parent 327 0 R +/Prev 39 0 R +/Next 51 0 R +>> endobj +39 0 obj << +/Title 40 0 R +/A 37 0 R +/Parent 327 0 R +/Prev 33 0 R +/Next 45 0 R +>> endobj +33 0 obj << +/Title 34 0 R +/A 31 0 R +/Parent 327 0 R +/Prev 27 0 R +/Next 39 0 R +>> endobj +27 0 obj << +/Title 28 0 R +/A 25 0 R +/Parent 327 0 R +/Prev 21 0 R +/Next 33 0 R +>> endobj +21 0 obj << +/Title 22 0 R +/A 19 0 R +/Parent 327 0 R +/Prev 8 0 R +/Next 27 0 R +>> endobj +8 0 obj << +/Title 9 0 R +/A 6 0 R +/Parent 327 0 R +/Next 21 0 R +>> endobj +328 0 obj << +/Type /Catalog +/Pages 326 0 R +/Outlines 327 0 R +/OCProperties << /OCGs [1 0 R 2 0 R 3 0 R 4 0 R 5 0 R] /D << /Order [1 0 R 2 0 R 3 0 R 4 0 R 5 0 R] /OFF [2 0 R 4 0 R] >> >> +>> endobj +329 0 obj << +/Producer (pdfeTeX-1.30.0) +/Creator (TeX) +/CreationDate (D:20051030095631+01'00') +/PTEX.Fullbanner (This is pdfeTeX, Version 3.141592-1.30.0-2.2 (Web2C 7.5.5) kpathsea version 3.5.5) +>> endobj +xref +0 330 +0000000000 65535 f +0000000015 00000 n +0000000074 00000 n +0000000133 00000 n +0000000191 00000 n +0000000249 00000 n +0000000308 00000 n +0000002755 00000 n +0000130886 00000 n +0000000354 00000 n +0000002870 00000 n +0000000385 00000 n +0000124362 00000 n +0000096023 00000 n +0000124186 00000 n +0000093904 00000 n +0000074276 00000 n +0000093733 00000 n +0000125145 00000 n +0000003024 00000 n +0000004158 00000 n +0000130799 00000 n +0000003072 00000 n +0000004274 00000 n +0000003101 00000 n +0000004428 00000 n +0000005562 00000 n +0000130711 00000 n +0000004476 00000 n +0000005678 00000 n +0000004505 00000 n +0000005832 00000 n +0000006975 00000 n +0000130623 00000 n +0000005880 00000 n +0000007091 00000 n +0000005910 00000 n +0000007245 00000 n +0000008383 00000 n +0000130535 00000 n +0000007293 00000 n +0000008499 00000 n +0000007325 00000 n +0000008653 00000 n +0000009780 00000 n +0000130447 00000 n +0000008701 00000 n +0000009896 00000 n +0000008731 00000 n +0000010050 00000 n +0000011217 00000 n +0000130359 00000 n +0000010098 00000 n +0000011333 00000 n +0000010128 00000 n +0000125254 00000 n +0000011487 00000 n +0000012681 00000 n +0000130271 00000 n +0000011535 00000 n +0000012797 00000 n +0000011568 00000 n +0000012951 00000 n +0000014119 00000 n +0000130183 00000 n +0000012999 00000 n +0000014235 00000 n +0000013034 00000 n +0000014389 00000 n +0000015565 00000 n +0000130095 00000 n +0000014437 00000 n +0000015681 00000 n +0000014473 00000 n +0000015835 00000 n +0000017018 00000 n +0000130007 00000 n +0000015883 00000 n +0000017134 00000 n +0000015913 00000 n +0000017288 00000 n +0000018602 00000 n +0000129919 00000 n +0000017336 00000 n +0000018718 00000 n +0000017368 00000 n +0000018872 00000 n +0000020076 00000 n +0000129831 00000 n +0000018920 00000 n +0000020192 00000 n +0000018951 00000 n +0000125364 00000 n +0000020346 00000 n +0000021566 00000 n +0000129742 00000 n +0000020394 00000 n +0000021682 00000 n +0000020427 00000 n +0000021836 00000 n +0000023065 00000 n +0000129651 00000 n +0000021885 00000 n +0000023184 00000 n +0000021919 00000 n +0000023339 00000 n +0000024507 00000 n +0000129558 00000 n +0000023389 00000 n +0000024626 00000 n +0000023420 00000 n +0000024781 00000 n +0000025949 00000 n +0000129465 00000 n +0000024831 00000 n +0000026068 00000 n +0000024862 00000 n +0000026223 00000 n +0000027441 00000 n +0000129372 00000 n +0000026273 00000 n +0000027560 00000 n +0000026306 00000 n +0000027715 00000 n +0000028938 00000 n +0000129279 00000 n +0000027765 00000 n +0000029058 00000 n +0000027798 00000 n +0000125478 00000 n +0000029213 00000 n +0000030400 00000 n +0000129186 00000 n +0000029263 00000 n +0000030520 00000 n +0000029294 00000 n +0000030675 00000 n +0000031841 00000 n +0000129093 00000 n +0000030725 00000 n +0000031961 00000 n +0000030756 00000 n +0000032116 00000 n +0000033300 00000 n +0000129000 00000 n +0000032166 00000 n +0000033420 00000 n +0000032198 00000 n +0000033575 00000 n +0000034761 00000 n +0000128907 00000 n +0000033625 00000 n +0000034881 00000 n +0000033655 00000 n +0000035036 00000 n +0000036242 00000 n +0000128814 00000 n +0000035086 00000 n +0000036362 00000 n +0000035119 00000 n +0000036517 00000 n +0000037702 00000 n +0000128721 00000 n +0000036567 00000 n +0000037822 00000 n +0000036600 00000 n +0000125595 00000 n +0000037977 00000 n +0000039201 00000 n +0000128628 00000 n +0000038027 00000 n +0000039321 00000 n +0000038061 00000 n +0000039476 00000 n +0000040664 00000 n +0000128535 00000 n +0000039526 00000 n +0000040784 00000 n +0000039560 00000 n +0000040939 00000 n +0000042128 00000 n +0000128442 00000 n +0000040989 00000 n +0000042248 00000 n +0000041023 00000 n +0000042403 00000 n +0000043619 00000 n +0000128349 00000 n +0000042453 00000 n +0000043739 00000 n +0000042489 00000 n +0000043894 00000 n +0000045110 00000 n +0000128256 00000 n +0000043944 00000 n +0000045230 00000 n +0000043980 00000 n +0000045385 00000 n +0000046604 00000 n +0000128163 00000 n +0000045435 00000 n +0000046724 00000 n +0000045472 00000 n +0000125712 00000 n +0000046879 00000 n +0000048098 00000 n +0000128070 00000 n +0000046929 00000 n +0000048218 00000 n +0000046966 00000 n +0000048373 00000 n +0000049614 00000 n +0000127977 00000 n +0000048423 00000 n +0000049734 00000 n +0000048456 00000 n +0000049889 00000 n +0000051136 00000 n +0000127884 00000 n +0000049939 00000 n +0000051256 00000 n +0000049974 00000 n +0000051411 00000 n +0000052640 00000 n +0000127791 00000 n +0000051461 00000 n +0000052760 00000 n +0000051490 00000 n +0000052915 00000 n +0000054118 00000 n +0000127698 00000 n +0000052965 00000 n +0000054238 00000 n +0000052997 00000 n +0000054393 00000 n +0000056018 00000 n +0000127605 00000 n +0000054443 00000 n +0000054477 00000 n +0000054927 00000 n +0000056138 00000 n +0000055070 00000 n +0000125829 00000 n +0000056321 00000 n +0000057503 00000 n +0000127512 00000 n +0000056371 00000 n +0000057623 00000 n +0000056400 00000 n +0000057778 00000 n +0000058939 00000 n +0000127419 00000 n +0000057828 00000 n +0000059059 00000 n +0000057861 00000 n +0000059214 00000 n +0000060378 00000 n +0000127326 00000 n +0000059264 00000 n +0000060498 00000 n +0000059298 00000 n +0000060653 00000 n +0000061826 00000 n +0000127233 00000 n +0000060703 00000 n +0000061946 00000 n +0000060733 00000 n +0000062101 00000 n +0000063270 00000 n +0000127140 00000 n +0000062151 00000 n +0000063390 00000 n +0000062181 00000 n +0000063545 00000 n +0000064708 00000 n +0000127047 00000 n +0000063595 00000 n +0000064828 00000 n +0000063630 00000 n +0000125946 00000 n +0000064983 00000 n +0000065764 00000 n +0000126954 00000 n +0000065033 00000 n +0000065884 00000 n +0000065062 00000 n +0000066039 00000 n +0000066635 00000 n +0000126861 00000 n +0000066089 00000 n +0000066755 00000 n +0000066118 00000 n +0000066910 00000 n +0000067700 00000 n +0000126768 00000 n +0000066960 00000 n +0000067820 00000 n +0000066992 00000 n +0000067975 00000 n +0000068640 00000 n +0000126675 00000 n +0000068025 00000 n +0000068760 00000 n +0000068054 00000 n +0000068915 00000 n +0000069718 00000 n +0000126582 00000 n +0000068965 00000 n +0000069838 00000 n +0000068999 00000 n +0000069993 00000 n +0000070753 00000 n +0000126503 00000 n +0000070043 00000 n +0000070873 00000 n +0000070076 00000 n +0000126063 00000 n +0000072301 00000 n +0000072181 00000 n +0000071028 00000 n +0000072444 00000 n +0000094119 00000 n +0000094193 00000 n +0000124829 00000 n +0000126148 00000 n +0000126263 00000 n +0000126357 00000 n +0000126427 00000 n +0000130958 00000 n +0000131154 00000 n +trailer +<< /Size 330 +/Root 328 0 R +/Info 329 0 R +/ID [<139D3BECA4BB3F71D412E038970D1044> <139D3BECA4BB3F71D412E038970D1044>] >> +startxref +131360 +%%EOF diff --git a/Master/texmf-dist/doc/generic/pdf-trans/example.tex b/Master/texmf-dist/doc/generic/pdf-trans/example.tex new file mode 100644 index 00000000000..db91f9697df --- /dev/null +++ b/Master/texmf-dist/doc/generic/pdf-trans/example.tex @@ -0,0 +1,215 @@ +%%% Self-documented example of pdf-trans.tex usage (pdfeTeX) +%%% P.Jackowski@gust.org.pl + +%\input pdfeplay +%\input pdftrans +\input pdf-trans + +\pdfdecimaldigits=3 +\pdfcompresslevel=0 % to see what is happening + +% Some configuration +% \enablefractangle % float angles support (deafult) +% \disablefractangle % integer only (old behaviour) +% \enablebpround % round \pdfliteral dimens to \pdfdecimanligits (default) +% \disablebpround % disable rounding (old behaviour) +% \let\tobp\roundfixedbp % calculate \pdfliteral dimens with fixed precision (risky) +\setbpround\pdfdecimaldigits % fix rounding precision (speed-up things) + +\font\F=qx-lmr10 at 120pt +\font\f=qx-lmr10 at 60pt +\font\T=qx-lmtt10 at 15pt +\font\tt=qx-lmtt10 at 10pt +\font\ttt=qx-lmtt10 at 8pt + +\pdfpagewidth=160mm +\pdfpageheight=120mm +\pdfhorigin=10mm +\pdfvorigin=10mm +\hsize=\dimexpr\pdfpagewidth-2\pdfhorigin +\vsize=\dimexpr\pdfpageheight-2\pdfvorigin + +\parindent=0pt +\nopagenumbers + +\ifx\pdfminorversion\undefined + \pdfoptionpdfminorversion=5 +\else + \pdfminorversion=5 +\fi + +\immediate\pdfobj{<< /Type /OCG /Name (box content before) >>} +\immediate\pdfobj{<< /Type /OCG /Name (box outline before) >>} +\immediate\pdfobj{<< /Type /OCG /Name (box content after) >>} +\immediate\pdfobj{<< /Type /OCG /Name (box outline after) >>} +\immediate\pdfobj{<< /Type /OCG /Name (final bounding box) >>} + +\pdfpageresources{/Properties << /OC1 1 0 R /OC2 2 0 R /OC3 3 0 R /OC4 4 0 R /OC5 5 0 R>>} +\pdfcatalog{/OCProperties +<< + /OCGs [1 0 R 2 0 R 3 0 R 4 0 R 5 0 R] + /D << /Order [1 0 R 2 0 R 3 0 R 4 0 R 5 0 R] + /OFF [2 0 R 4 0 R] + >> +>>} + +\newbox\qbox + +\def\defaultgs{\pdfliteral direct{.5 w 1 j 1 J}} + +\def\boxbe{\boxshow{/OC /OC2 BDC 0.3 G} {[2 2] 1 d}{EMC} \boxgs{/OC /OC1 BDC 2 Tr 0.7 g}{EMC}} +\def\boxaf{\boxshow{/OC /OC4 BDC 1.0 0.6 0.0 RG}{[2 2] 1 d}{EMC} \boxgs{/OC /OC3 BDC 2 Tr 1.0 0.8 0.0 rg}{EMC}} +\def\boxbb{\boxshow{/OC /OC5 BDC 0.7 0.0 0.0 RG}{[2 2] 1 d}{EMC}} + +\def\bookmark#1{% + \pdfoutline goto page\pageno {/Fit}{\getbookmark#1\relax}} + +\def\getbookmark#1#2\relax{\string\\\expandafter\gobbleone\string#1} +\def\gobbleone#1{} + +\def\test/#1/#2/{% + \bookmark{#2}\defaultgs + \vbox to4cm{\vss + Yo\boxbe\copy\qbox\kern-\wd\qbox + \boxbb#1\boxaf\copy\qbox a}\vfill + {\tt\detokenize{#2 <box>}}\medskip{\ttt\detokenize{#1}}\eject} + +\def\rawtest/#1/#2/{% + \bookmark{#2}\defaultgs + \vbox to4cm{\vss + Yo#1\copy\qbox a}\vfill + {\tt\detokenize{#2 <box>}}\medskip{\ttt\detokenize{#1}}\eject} + +%%% + +\T\defaultgs + +box tra\boxflipy\boxgs{1.0 0.8 0.0 rg}{}\hbox{N}% +sfo\boxrotatec{15}\boxgs{1.0 0.8 0.0 rg}{}\hbox{R}% +mation\boxflipx\boxgs{1.0 0.8 0.0 rg}{}\hbox{S} in +\boxgs{0.7 g}{}\hbox{pdf-trans.tex} + +\vskip0pt plus 4fil +\setbox\qbox\hbox{\f g} +\ttt +\leavevmode\boxbe\copy\qbox \quad before +\vfil +\leavevmode\boxaf\copy\qbox \quad after +\vfil +\leavevmode\boxbb\boxphantom\copy\qbox \quad bounding box + +\line{\hfill\boxrevolveleft\boxsmash\hbox{P.Jackowski@gust.org.pl}} +\pdfoutline goto page\pageno {/Fit}{pdf-trans.tex} + +\eject + +%%% + +\F\setbox\qbox\hbox{g} + +\test/\boxflipx /\boxflipx/ +\test/\boxflipy /\boxflipy/ +\test/\boxflipxy /\boxflipxy/ +\test/\boxflipbase/\boxflipbase/ +\test/\bboxtrans\boxflipbase/\bboxtrans{<trans>}/ +\test/\cboxtrans\boxflipbase/\cboxtrans{<trans>}/ + +\test/\boxtranslate{3mm}{2mm}/\boxtranslate{<dimexpr>}{<dimexpr>}/ + +\test/\boxrevolveleft /\boxrevolveleft/ +\test/\boxrevolveright/\boxrevolveright/ + +\test/\boxrotate{394.7}/\boxrotate{<angle>}/ +\test/\boxrotatexy{34.2}{\wd\transbox}{\ht\transbox} + /\boxrotatexy{<angle>}{<dimexpr>}{<dimexpr>}/ +\test/\boxrotatec{90}/\boxrotatec{<angle>}/ + +\test/\boxrotatebbl{-34.1}/\boxrotatebbl{<angle>}/ +%\test/\boxrotatebbl{-34.2}/\boxrotatebbl{<angle>}/ +\test/\boxrotatebbr{-34.2}/\boxrotatebbr{<angle>}/ + +\test/\boxslantx{15.2} /\boxslantx{<angle>}/ +\test/\boxslanty{25.3} /\boxslanty{<angle>}/ +%\test/\boxslantxy{15}{25} /\boxslantxy{<angle>}{<angle>}/ + +\test/\boxslantbbl{15}{25}/\boxslantbbl{<angle>}{<angle>}/ +\test/\boxslantbbr{15}{25}/\boxslantbbr{<angle>}{<angle>}/ + +\test/\boxscalex{75} /\boxscalex{<numexpr>}/ +\test/\boxscaley{75} /\boxscaley{<numexpr>}/ +\test/\cboxtransoff\boxscalexy{150}{75}/\boxscalexy{<numexpr>}{<numexpr>}/ +\test/\bboxtransoff\boxscale{75} /\boxscale{<numexpr>}/ + +\test/\boxscalexto{.5in+.1cm} /\boxscalexto{<dimexpr>}/ +\test/\boxscaleyto{.5in+.1cm} /\boxscaleyto{<dimexpr>}/ +\test/\boxscalexyto{.5in+.1cm}{1in/2}/\boxscalexyto{<dimxpr>}{<dimexpr>}/ +\test/\boxscalehtto{.5in+.1cm}/\boxscalehtto{<dimexpr>}/ +\test/\boxscaledpto{.5in+.1cm}/\boxscaledpto{<dimexpr>}/ + +\test/\boxuniscalexto{.5in+.1cm} /\boxuniscalexto{<dimexpr>}/ +\test/\boxuniscaleyto{.5in+.1cm} /\boxuniscaleyto{<dimexpr>}/ +\test/\boxuniscalehtto{.5in+.1cm}/\boxuniscalehtto{<dimexpr>}/ +\test/\boxuniscaledpto{.5in+.1cm}/\boxuniscaledpto{<dimexpr>}/ + +\test/\boxextscale{2mm}{5mm}{8mm}/\boxextscale{<dimexpr>}{<dimexpr>}{<dimexpr>}/ +\test/\boxextscaleto{3cm}{1cm}{2cm}/\boxextscaleto{<dimexpr>}{<dimexpr>}{<dimexpr>}/ + +\test/\boxexts{3mm}{3mm}{5mm}{5mm} + /\boxexts{<dimexpr>}{<dimexpr>}{<dimexpr>}{<dimexpr>}/ + +\test/\boxextents{2mm}{4mm}{6mm}{8mm} + /\boxextents{<dimexpr>}{<dimexpr>}{<dimexpr>}{<dimexpr>}/ + +% obsolete +%\test/\boxresizeto{}{3cm}{2cm} +% /\boxresizeto{<dimexpr>}{<dimexpr>}{<dimexpr>}/ +%\test/\boxresize{-3mm}{}{-2mm} /\boxresize{<dimexpr>}{<dimexpr>}{<dimexpr>}/ + +\test/\boxxformspec resources{\the\pdfpageresources} \boxxform\boxresizeto{11mm}{8mm}{3mm} + /\boxxformspec resources{/Foo /Bar} \boxxform/ + +\test/\boxclip\boxresizeto{}{8mm}{3mm} /\boxclip/ + +\test/\boxmoveleft{.3\wd\transbox}/\boxmoveleft{<dimexpr>}/ +\test/\boxmoveright{.3\wd\transbox}/\boxmoveright{<dimexpr>}/ +\test/\boxlower{\dp\transbox}/\boxlower{<dimexpr>}/ +\test/\boxraise{\dp\transbox}/\boxraise{<dimexpr>}/ +\test/\boxbaselineat{50}/\boxbaselineat{<numexpr>}/ + +% \rawtest/\boxphantom /\boxphntom/ +\rawtest/\boxinfo\boxsh/\boxinfo/ +\rawtest/\boxshow{0 1 0 RG}{[1 1]0 d}{} + /\boxshow{<gsspec>}{<gsspec>}{<gsspec>}/ +% \rawtest/\boxsh/\boxsh/ +\rawtest/\boxmarkers{-12pt}{3pt}{1 0 0 RG 1 J}/\boxmarkers{<dimexpr>}{<dimexpr>}{<gsspec>}/ + +\rawtest/\boxpath{3 w .7 0 0 rg 1 .8 0 RG}{B}\bboxtrans{\boxextscale{3mm}{3mm}{3mm}}\boxmoveright{3mm} + /\boxpath{<gsspec>}{<paintop>}/ +\rawtest/\boxroundpath{4mm}{3 w .7 0 0 rg 1 .8 0 RG}{B}\boxextent{3mm} + /\boxroundpath{<dimexpr>}{<gsspec>}{<paintop>}/ +\rawtest/\boxedgypath{4mm}{3 w .7 0 0 rg 1 .8 0 RG}{B}\boxextent{3mm} + /\boxedgypath{<dimexpr>}{<gsspec>}{<paintop>}/ + +%%% + +\ttt +Each transformation expands to <box> (\string\hbox\ in most cases).\par +Each transformation must be followed by a <box>.\bigskip + +<box> states for any kind of \TeX\ box; \string\hbox, + \string\vbox, + \string\vtop, + \string\box, + \string\copy\par + +<trans> is a list of box transformations \par +<dimexpr> states for dimen in eTeX form \par +<numexpr> states for integer in eTeX form \par +<angle> is an integer or float-like string \par +<gsspec> is a literal pdf content stream \par +<paintop> means pdf painting operator (S, f, B, W...)\par + +\bigskip +See the code for more. + +\end diff --git a/Master/texmf-dist/doc/generic/pst-bar/LICENSE b/Master/texmf-dist/doc/generic/pst-bar/LICENSE new file mode 100644 index 00000000000..5758f0f0045 --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-bar/LICENSE @@ -0,0 +1,2 @@ +This material is subject to the LaTeX Project Public License. See +http://www.ctan.org/tex-archive/help/Catalogue/licenses.lppl.html for details. diff --git a/Master/texmf-dist/doc/generic/pst-bar/README b/Master/texmf-dist/doc/generic/pst-bar/README new file mode 100644 index 00000000000..cab7a017cba --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-bar/README @@ -0,0 +1,17 @@ +With pst-bar, one may use pstricks to produce bar charts directly from a data +file. This package is still in the beta stage --- the usual caveats pertaining +to beta software apply. Additional features and improved (in both content and +layout) documentation will be provided as the code stabilizes. + +INSTALLATION: + +pst-bar consists of three files: pst-bar.sty, pst-bar.tex, and pst-bar.pro. +Place the first two anywhere your installation can find them (typically +$LOCALTEXMF/tex/latex/pst-bar for pst-bar.sty and +$LOCALTEXMF/tex/generic/pst-bar for pst-bar.tex). Place pst-bar.pro where dvips +can find it, typically in the pstricks subdirectory of your dvips directory +(i.e., $LOCALTEXMF/dvips/pstricks). + +DOCUMENTATION: + +See pst-bar-doc.ps or pst-bar-doc.pdf for details on using pst-bar. diff --git a/Master/texmf-dist/doc/generic/pst-bar/pst-bar-doc.pdf b/Master/texmf-dist/doc/generic/pst-bar/pst-bar-doc.pdf Binary files differnew file mode 100644 index 00000000000..1b2b2673cd6 --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-bar/pst-bar-doc.pdf diff --git a/Master/texmf-dist/doc/generic/pst-circ/README b/Master/texmf-dist/doc/generic/pst-circ/README new file mode 100644 index 00000000000..6c34f8ddf0d --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-circ/README @@ -0,0 +1,6 @@ +Save the files pst-circ.sty|.tex in a directory, which is part of your +local TeX tree. pst-circ.pro should be saved in ../texmf/dvips/pstricks/ +Then do not forget to run texhash to update this tree. +pst-circ needs pst-plot and pst-tricks, which should be part of your +local TeX installation, otherwise get it from a CTAN server, f.ex. +ftp://ftp.dante.de diff --git a/Master/texmf-dist/doc/generic/pst-circ/Version-1.21 b/Master/texmf-dist/doc/generic/pst-circ/Version-1.21 new file mode 100644 index 00000000000..e69de29bb2d --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-circ/Version-1.21 diff --git a/Master/texmf-dist/doc/generic/pst-circ/logic.ltx b/Master/texmf-dist/doc/generic/pst-circ/logic.ltx new file mode 100644 index 00000000000..2427a21f7fa --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-circ/logic.ltx @@ -0,0 +1,91 @@ +\documentclass[11pt]{article} +\usepackage[a4paper,margin=1.5cm]{geometry} +\usepackage[baw,pstricks]{fvrb-ex} +\usepackage{pst-circ} +\usepackage{pstcol} +\usepackage{url} +\makeatletter +\def\@UrlFont{\small\ttfamily} +\renewenvironment{description} + {\list{}{\labelwidth\z@ \itemindent-\leftmargin + \itemsep0pt \parsep0pt + \let\makelabel\descriptionlabel}} + {\endlist} +\renewcommand{\Begin@Example}{% +\parindent=0pt +\multiply\topsep by 2 \VerbatimEnvironment +\begin{VerbatimOut}[codes={\catcode`\Ł=12\catcode`\/=12\catcode`\&=12% + \catcode`\"=12}]{\jobname.tmp}} +\renewcommand{\Below@Example}[1]{% +\VerbatimInput[gobble=0,commentchar=Ł,commandchars=/&",numbersep=3pt]% + {\jobname.tmp} +\catcode`\Ł=9\relax% +\NoHighlight@Attributes % To suppress possible highlighting +\ifFvrbEx@Grid\vspace{5pt}\fi +#1% +\ifFvrbEx@Grid\vspace{5pt}\fi +\par} +\renewcommand{\SideBySide@Example}[1]{% +\@tempdimb=\FV@XRightMargin \advance\@tempdimb -5mm +\begin{minipage}[c]{\@tempdimb} + \fvset{xrightmargin=0pt} + \catcode`\Ł=9\relax% + \NoHighlight@Attributes % To suppress possible highlighting + #1 +\end{minipage}% +\@tempdimb=\textwidth \advance\@tempdimb -\FV@XRightMargin \advance\@tempdimb 5mm +\begin{minipage}[c]{\@tempdimb} + \VerbatimInput[gobble=0,commentchar=Ł,commandchars=/&",numbersep=3pt, + xleftmargin=5mm,xrightmargin=0pt]{\jobname.tmp} +\end{minipage}} +% The \NoHighlight@Attributes from `hbaw' and `hcolors' packages +% must be modified too +\def\NoHighlight@Attributes{% +\catcode`\/=0\relax% +\catcode`\&=1\relax% +\catcode`\"=2\relax% +\def\HLa##1{##1}% +\def\HLb##1{##1}% +\def\HLc##1{##1}% +\def\HLd##1{##1}% +\def\HLe##1{##1}% +\def\HLf##1{##1}% +\def\HLBFa##1{##1}% +\def\HLBFb##1{##1}% +\def\HLBFc##1{##1}% +\def\HLBFd##1{##1}% +\def\HLBFe##1{##1}% +\def\HLBFf##1{##1}% +\def\HLITa##1{##1}% +\def\HLITb##1{##1}% +\def\HLITc##1{##1}% +\def\HLITd##1{##1}% +\def\HLITe##1{##1}% +\def\HLITf##1{##1}% +\def\HLCBBa##1{##1}% +\def\HLCBBb##1{##1}% +\def\HLCBBc##1{##1}% +\def\HLCBBd##1{##1}% +\def\HLCBBe##1{##1}% +\def\HLCBBf##1{##1}% +\def\HLCBBz##1{##1}% +\def\HLCBWa##1{##1}% +\def\HLCBWb##1{##1}% +\def\HLCBWc##1{##1}% +\def\HLCBWd##1{##1}% +\def\HLCBWe##1{##1}% +\def\HLCBWf##1{##1}% +\def\HLCBWz##1{##1}% +} +\makeatother +\fvset{numbers=none,frame=single,labelposition=topline} +\DeclareRobustCommand\cs[1]{\texttt{\char`\\#1}} +\newcommand{\CircPackage}{\textbf{`pst-circ'}} +\usepackage{fancyhdr} +\lhead{\CircPackage}\rhead{A PSTricks package for drawing electric circuits} +\pagestyle{fancy} +% +\begin{document} +\input logic +\end{document} + diff --git a/Master/texmf-dist/doc/generic/pst-circ/logic.pdf b/Master/texmf-dist/doc/generic/pst-circ/logic.pdf Binary files differnew file mode 100644 index 00000000000..0a813ef62ba --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-circ/logic.pdf diff --git a/Master/texmf-dist/doc/generic/pst-circ/logic.tex b/Master/texmf-dist/doc/generic/pst-circ/logic.tex new file mode 100644 index 00000000000..ba2d7cb84f7 --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-circ/logic.tex @@ -0,0 +1,436 @@ +\section{Flip Flops} + +The syntax for all logical base circuits is +\begin{verbatim} +logic[<options>](<originX,originY>){Label} +\end{verbatim} + +\noindent where the options and the origin are optional. If they are missing, +then the default options, described in the next section and the default +origin $(0,0)$ is used. The origin specifies the lower left corner +of the logical circuit. + +\begin{verbatim} +logic{Demo} +logic[logicType=and]{Demo} +logic(0,0){Demo} +logic[logicType=and](0,0){Demo} +\end{verbatim} + +The above four ,,different`` calls of the \verb|logic| macro give the +same output, because they are equivalent. + +\subsection{The Options} + +\begin{description} +\item[\HLTTc{logicShowNode} (boolean):] (\emph{default:~false}) +\item[\HLTTc{logicShowDot} (boolean):] (\emph{default:~false}) +\item[\HLTTc{logicNodestyle} (command):] (\emph{default:~\textbackslash footnotesize}) +\item[\HLTTc{logicSymbolstyle} (command):] (\emph{default:~\textbackslash large}) +\item[\HLTTc{logicSymbolpos} (value):] (\emph{default:~0.5}) +\item[\HLTTc{logicLabelstyle} (command):] (\emph{default:~\textbackslash small}) +\item[\HLTTc{logicType} (string):] (\emph{default:~and}) +\item[\HLTTc{logicChangeLR} (boolean):] (\emph{default:~false}) +\item[\HLTTc{logicWidth} (length):] (\emph{default:~1.5}) +\item[\HLTTc{logicHeight} (length):] (\emph{default:~2.5}) +\item[\HLTTc{logicWireLength} (length):] (\emph{default:~0.5}) +\item[\HLTTc{logicNInput} (number):] (\emph{default:~2}) +\item[\HLTTc{logicJInput} (number):] (\emph{default:~2}) +\item[\HLTTc{logicKInput} (number):] (\emph{default:~2}) +\end{description} + +\subsection{Basic Logical Circuits} +At least the basic objects require a unique label name, otherwise it is +not sure, that all nodes will work well. The label may contain any +alphanumerical character and most of all symbols. But it is save +using only combinations of letters and digits. For example: +\begin{verbatim} +And0 +a0 +a123 +12 +NOT123a +\end{verbatim} + +\verb|A_1| is not a good choice, the underscore may causes some +problems. + +\subsubsection{And} + +\psset{subgriddiv=0,griddots=5,gridlabels=7pt} +\begin{PSideBySideExample}[xrightmargin=4.5cm](3,3) + \begin{pspicture}(-1,0)(3,3) + \psgrid + \logic{AND1} + \end{pspicture} +\end{PSideBySideExample} + +\begin{PSideBySideExample}[xrightmargin=4.5cm](3,3) + \begin{pspicture}(-0.5,0)(3,3) + \logic[/HLCBWz&logicChangeLR"=true]{AND2} + \end{pspicture} +\end{PSideBySideExample} + +\begin{PSideBySideExample}[xrightmargin=4.5cm](4,6) + \begin{pspicture}(-0.5,0)(4,5) + \psgrid + \logic[/HLCBWz&logicShowNode"=true,% + /HLCBWz&logicWidth"=2,% + /HLCBWz&logicHeight"=4,% + /HLCBWz&logicNInput"=6,% + logicChangeLR=true](1,1){AND3} + \end{pspicture} +\end{PSideBySideExample} + +\subsubsection{NotAnd} +\begin{PSideBySideExample}[xrightmargin=4.5cm](3,3) + \begin{pspicture}(-0.5,0)(3,3) + \logic[logicType=/HLCBWz&nand",% + logicShowNode=true]{NAND1} + \end{pspicture} +\end{PSideBySideExample} + + +\begin{PSideBySideExample}[xrightmargin=4.5cm](3,3) + \begin{pspicture}(-0.5,0)(3,3) + \logic[logicType=nand,% + logicChangeLR=true]{NAND2} + \end{pspicture} +\end{PSideBySideExample} + +\begin{PSideBySideExample}[xrightmargin=4.5cm](4,6) + \begin{pspicture}(4,5) + \psgrid + \logic[logicType=nand,% + logicShowNode=true,% + logicWidth=2,% + logicHeight=4,% + /HLCBWz&logicNInput"=6,% + logicChangeLR=true](1,1){NAND3} + \end{pspicture} +\end{PSideBySideExample} + +\subsubsection{Or} +\begin{PSideBySideExample}[xrightmargin=4.5cm](3,3) + \begin{pspicture}(-0.5,0)(3,3) + \logic[logicType=/HLCBWz&or",% + logicShowNode=true]{OR1} + \end{pspicture} +\end{PSideBySideExample} + + +\begin{PSideBySideExample}[xrightmargin=4.5cm](3,3) + \begin{pspicture}(-0.5,0)(3,3) + \logic[logicType=or,% + logicChangeLR=true]{OR2} + \end{pspicture} +\end{PSideBySideExample} + + +\begin{PSideBySideExample}[xrightmargin=4.5cm](4,6) + \begin{pspicture}(4,5) + \psgrid + \logic[logicType=or,% + logicShowNode=true,% + logicWidth=2,% + logicHeight=4,% + logicNInput=6,% + logicChangeLR=true](1,1){OR3} + \end{pspicture} +\end{PSideBySideExample} + +\subsubsection{Not Or} + +\begin{PSideBySideExample}[xrightmargin=4.5cm](3,3) + \begin{pspicture}(-0.5,0)(3,3) + \logic[logicType=/HLCBWz&nor",% + logicShowNode=true]{NOR1} + \end{pspicture} +\end{PSideBySideExample} + + +\begin{PSideBySideExample}[xrightmargin=4.5cm](3,3) + \begin{pspicture}(-0.5,0)(3,3) + \logic[logicType=nor,% + logicChangeLR=true]{NOR2} + \end{pspicture} +\end{PSideBySideExample} + +\begin{PSideBySideExample}[xrightmargin=4.5cm](4,6) + \begin{pspicture}(4,5) + \psgrid + \logic[logicType=nor,% + logicShowNode=true,% + logicWidth=2,% + logicHeight=4,% + logicNInput=6,% + logicChangeLR=true](1,1){NOR3} + \end{pspicture} +\end{PSideBySideExample} + + +\subsubsection{Not} + +\begin{PSideBySideExample}[xrightmargin=4.5cm](3,3) + \begin{pspicture}(-0.5,0)(3,3) + \logic[logicType=/HLCBWz¬",% + logicShowNode=true]{NOT1} + \end{pspicture} +\end{PSideBySideExample} + + +\begin{PSideBySideExample}[xrightmargin=4.5cm](3,3) + \begin{pspicture}(-0.5,0)(3,3) + \logic[logicType=not,% + logicChangeLR=true]{NOT2} + \end{pspicture} +\end{PSideBySideExample} + +\begin{PSideBySideExample}[xrightmargin=4.5cm](4,6) + \begin{pspicture}(4,5) + \psgrid + \logic[logicType=not,% + logicShowNode=true,% + logicWidth=2,% + logicHeight=4,% + logicChangeLR=true](1,1){NOT3} + \end{pspicture} +\end{PSideBySideExample} + +\subsubsection{Exclusive OR} + +\begin{PSideBySideExample}[xrightmargin=4.5cm](3,3) + \begin{pspicture}(-0.5,0)(3,3) + \logic[logicType=/HLCBWz&exor",% + logicShowNode=true]{ExOR1} + \end{pspicture} +\end{PSideBySideExample} + + +\begin{PSideBySideExample}[xrightmargin=4.5cm](3,3) + \begin{pspicture}(-0.5,0)(3,3) + \logic[logicType=exor,% + logicChangeLR=true]{ExOR2} + \end{pspicture} +\end{PSideBySideExample} + +\begin{PSideBySideExample}[xrightmargin=4.5cm](4,6) + \begin{pspicture}(4,5) + \psgrid + \logic[logicType=exor,% + logicShowNode=true,% + logicNInput=6,% + logicWidth=2,% + logicHeight=4,% + logicChangeLR=true](1,1){ExOR3} + \end{pspicture} +\end{PSideBySideExample} + + + +\subsubsection{Exclusive NOR} + +\begin{PSideBySideExample}[xrightmargin=4.5cm](3,3) + \begin{pspicture}(-0.5,0)(3,3) + \logic[logicType=/HLCBWz&exnor",% + logicShowNode=true]{ExNOR1} + \end{pspicture} +\end{PSideBySideExample} + + +\begin{PSideBySideExample}[xrightmargin=4.5cm](3,3) + \begin{pspicture}(-0.5,0)(3,3) + \logic[logicType=exnor,% + logicChangeLR=true]{ExNOR2} + \end{pspicture} +\end{PSideBySideExample} + +\begin{PSideBySideExample}[xrightmargin=4.5cm](4,6) + \begin{pspicture}(4,5) + \psgrid + \logic[logicType=exnor,% + logicShowNode=true,% + logicNInput=6,% + logicWidth=2,% + logicHeight=4,% + logicChangeLR=true](1,1){ExNOR3} + \end{pspicture} +\end{PSideBySideExample} + + +\subsection{RS Flip Flop} + +\begin{PSideBySideExample}[xrightmargin=4.5cm](3,4.5) + \begin{pspicture}(-1,-1)(3,3) + \logic[logicShowNode=true,% + logicType=/HLCBWz&RS"]{RS1} + \end{pspicture} +\end{PSideBySideExample} + + +\begin{PSideBySideExample}[xrightmargin=4.5cm](3,4.5) + \begin{pspicture}(-1,-1)(3,3) + \logic[logicShowNode=true,% + logicType=RS,% + logicChangeLR=true]{RS2} + \end{pspicture} +\end{PSideBySideExample} + + +\subsection{D Flip Flop} + +\begin{PSideBySideExample}[xrightmargin=4.5cm](3,4.5) + \begin{pspicture}(-1,-1)(3,3) + \logic[logicShowNode=true,% + logicType=/HLCBWz&D"]{D1} + \end{pspicture} +\end{PSideBySideExample} + +\begin{PSideBySideExample}[xrightmargin=4.5cm](3,4.5) + \begin{pspicture}(-1,-1)(3,3) + \logic[logicShowNode=true,% + logicType=D,% + logicChangeLR=true]{D2} + \end{pspicture} +\end{PSideBySideExample} + + +\subsection{JK Flip Flop} +\begin{PSideBySideExample}[xrightmargin=4.5cm](3,4.5) + \begin{pspicture}(-1,-1)(3,3) + \logic[logicShowNode=true,% + logicType=/HLCBWz&JK",% + /HLCBWz&logicKInput"=2,% + /HLCBWz&logicJInput"=2]{JK1} + \end{pspicture} +\end{PSideBySideExample} + +\begin{PSideBySideExample}[xrightmargin=4.5cm](3,4.5) + \begin{pspicture}(-1,-1)(3,3) + \logic[logicShowNode=true,% + logicType=JK,% + logicKInput=2, logicJInput=4,% + logicChangeLR=true]{JK2} + \end{pspicture} +\end{PSideBySideExample} + +\subsection{Other Options} + +\begin{PSideBySideExample}[xrightmargin=3.5cm](3,3) + \begin{pspicture}(-0.5,0)(3,2.5) + \logic[/HLCBWz&logicShowDot"=true]{A0} + \end{pspicture} +\end{PSideBySideExample} + +\begin{PSideBySideExample}[xrightmargin=4.5cm](4,3) + \begin{pspicture}(-1,0)(3,2.5) + \logic[/HLCBWz&logicWireLength"=1,% + logicShowDot=true]{A1} + \end{pspicture} +\end{PSideBySideExample} + +\bigskip +The unit of \verb|logicWireLength| is the same than the actual one for pstricks, set by +the \verb|unit| option. + +\subsection{The Node Names} +Every logic circuit is defined with its name, which should be a unique one. +If we have the following NAND circuit, then \verb|pst-circ| defines the nodes +\begin{verbatim} +NAND11, NAND12, NAND13, NAND14, NAND1Q +\end{verbatim} + +\noindent If there exists an inverted output, like for alle Flip Flops, +then the negated one gets the appendix \verb|neg| to the node name. For +example: +\begin{verbatim} +NAND1Q, NAND1Qneg +\end{verbatim} + +\begin{PSideBySideExample}[xrightmargin=3cm](3,3.5) + \begin{pspicture}(-0.5,0)(2.5,3) + \logic[/HLCBWz&logicShowNode"=true,% + /HLCBWz&logicLabelstyle"=\footnotesize,% + /HLCBWz&logicType"=nand,% + /HLCBWz&logicNInput"=4]{NAND1} + \multido{\n=1+1}{4}{% + \pscircle*[linecolor=red](NAND1\n){2pt}% + } + \pscircle*[linecolor=blue](NAND1Q){2pt} + \end{pspicture} +\end{PSideBySideExample} + +\vspace{0.5cm} +Now it is possible to draw a line from the output to the input + +\begin{verbatim} +\ncbar[angleA=0,angleB=180]{<Node A>}{<Node B>} +\end{verbatim} + +It may be easier to print a grid since the drawing phase and then comment it out if +all is finished. + +\bigskip +\begin{PSideBySideExample}[xrightmargin=3.5cm](3,3.5) + \begin{pspicture}(-1,-1)(2.5,3) + \logic[/HLCBWz&logicShowNode"=true,% + logicLabelstyle=\footnotesize,% + logicType=nand,% + /HLCBWz&logicWireLength"=1,% + /HLCBWz&logicNInput"=4]{NAND1} + \pnode(-0.5,0|NAND11){tempA} + \pnode(2,0|NAND1Q){tempB} + \end{pspicture} + \ncbar[angleA=-90,angleB=0,arm=0.75,% + arrows=*-*, dotsize=0.15]{tempA}{tempB} +\end{PSideBySideExample} + +\subsection{Examples} + +\begin{CenterExample} + \begin{pspicture}(-1,0)(5,5) + \psgrid + \psset{logicType=nor, logicLabelstyle=\normalsize,% + logicWidth=1, logicHeight=1.5, dotsize=0.15} + \logic(1.5,0){nor1} + \logic(1.5,3){nor2} + \psline(nor2Q)(4,0|nor2Q) + \uput[0](4,0|nor2Q){$Q$} + \psline(nor1Q)(4,0|nor1Q) + \uput[0](4,0|nor1Q){$\overline{Q}$} + \psline{*-}(3.50,0|nor2Q)(3.5,2.5)(1.5,2.5) + (0.5,1.75)(0.5,0|nor12)(nor12) + \psline{*-}(3.50,0|nor1Q)(3.5,2)(1.5,2) + (0.5,2.5)(0.5,0|nor21)(nor21) + \psline(0,0|nor11)(nor11)\uput[180](0,0|nor11){R} + \psline(0,0|nor22)(nor22)\uput[180](0,0|nor22){S} + \end{pspicture} +\end{CenterExample} + +\bigskip +\begin{CenterExample} + \begin{pspicture}(-4,0)(5,7) + \psgrid + \psset{logicWidth=1, logicHeight=2, dotsize=0.15} + \logic[logicWireLength=0](-2,0){A0} + \logic[logicWireLength=0](-2,5){A1} + \ncbar[angleA=-180,angleB=-180,arm=0.5]{A11}{A02} + \psline[dotsize=0.15]{-*}(-3.5,3.5)(-2.5,3.5) + \uput[180](-3.5,3.5){$T$} + \psline(-3.5,0.5)(A01)\uput[180](-3.5,0.5){$S$} + \psline(-3.5,6.5)(A12)\uput[180](-3.5,6.5){$R$} + \psset{logicType=nor, logicLabelstyle=\normalsize} + \logic(1,0.5){nor1} + \logic(1,4.5){nor2} + \psline(nor2Q)(4,0|nor2Q) + \uput[0](4,0|nor2Q){$Q$} + \psline(nor1Q)(4,0|nor1Q) + \uput[0](4,0|nor1Q){$\overline{Q}$} + \psline{*-}(3,0|nor2Q)(3,4)(1,4)(0,3)(0,0|nor12)(nor12) + \psline{*-}(3,0|nor1Q)(3,3)(1,3)(0,4)(0,0|nor21)(nor21) + \psline(A0Q)(nor11) + \psline(A1Q)(nor22) + \end{pspicture} +\end{CenterExample} + +\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/doc/generic/pst-circ/poti.pdf b/Master/texmf-dist/doc/generic/pst-circ/poti.pdf Binary files differnew file mode 100644 index 00000000000..7cbeb47e31c --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-circ/poti.pdf diff --git a/Master/texmf-dist/doc/generic/pst-circ/poti.tex b/Master/texmf-dist/doc/generic/pst-circ/poti.tex new file mode 100644 index 00000000000..bd93942a9b8 --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-circ/poti.tex @@ -0,0 +1,81 @@ +\documentclass[a4paper,12pt]{article} +\usepackage{pst-circ} +\begin{document} +\section*{Potentiometer tripole} + +\psset{griddots=5,gridlabels=7pt,subgriddiv=0} +\begin{pspicture}(3,3) + \psgrid + \pnode(0,1){A} + \pnode(3,1){B} + \pnode(3,2){C} + \potentiometer[labeloffset=0pt](A)(B)(C){P} +\end{pspicture} +\hfill +\begin{pspicture}(3,3) + \psgrid + \pnode(0,2.5){A} + \pnode(3,2.5){B} + \pnode(0,1){C} + \potentiometer[labeloffset=0pt](A)(B)(C){P} +\end{pspicture} +\hfill +\begin{pspicture}(3,3) + \psgrid + \pnode(0,0){A} + \pnode(3,2){B} + \pnode(2.5,3){C} + \potentiometer[labeloffset=0pt,labelangle=:U](A)(B)(C){P} +\end{pspicture} + +\vspace{1cm} +\begin{pspicture}(3,3) + \psgrid + \pnode(1,0){A} + \pnode(1,3){B} + \pnode(2.5,0){C} + \potentiometer[labeloffset=0pt](A)(B)(C){P} +\end{pspicture} +\hfill +\begin{pspicture}(3,3) + \psgrid + \pnode(0,3){A} + \pnode(3,0){B} + \pnode(2,0){C} + \potentiometer[labeloffset=0pt,labelangle=:U](A)(B)(C){P} +\end{pspicture} +\hfill +\begin{pspicture}(3,3) + \psgrid + \pnode(0,2){A} + \pnode(3,2){B} + \pnode(1.5,0){C} + \potentiometer[labeloffset=0pt](A)(B)(C){P} +\end{pspicture} + + +\vspace{1cm} +\begin{pspicture}(3,3) + \psgrid + \pnode(1,0){A} + \pnode(1,3){B} + \pnode(2.5,0){C} + \potentiometer[dipolestyle=zigzag](A)(B)(C){P} +\end{pspicture} +\hfill +\begin{pspicture}(3,3) + \psgrid + \pnode(0,3){A} + \pnode(3,0){B} + \pnode(2,0){C} + \potentiometer[dipolestyle=zigzag,labelangle=:U](A)(B)(C){P} +\end{pspicture} +\hfill +\begin{pspicture}(3,3) + \psgrid + \pnode(0,2){A} + \pnode(3,2){B} + \pnode(1.5,0){C} + \potentiometer[dipolestyle=zigzag](A)(B)(C){P} +\end{pspicture} +\end{document} diff --git a/Master/texmf-dist/doc/generic/pst-circ/pst-circ-doc.pdf b/Master/texmf-dist/doc/generic/pst-circ/pst-circ-doc.pdf Binary files differnew file mode 100644 index 00000000000..aa74333ac9b --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-circ/pst-circ-doc.pdf diff --git a/Master/texmf-dist/doc/generic/pst-circ/pst-circ-doc.tex b/Master/texmf-dist/doc/generic/pst-circ/pst-circ-doc.tex new file mode 100644 index 00000000000..09dba0a68ce --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-circ/pst-circ-doc.tex @@ -0,0 +1,1180 @@ +\documentclass{article} + +\usepackage{multicol} +\usepackage[a4paper,margin=1.5cm]{geometry} +\usepackage{fancyhdr} +\usepackage[baw,pstricks]{fvrb-ex} +\usepackage{pst-circ} +\usepackage{pstcol} +\usepackage{url} +\makeatletter +\def\@UrlFont{\small\ttfamily} +\renewenvironment{description} + {\list{}{\labelwidth\z@ \itemindent-\leftmargin + \itemsep0pt \parsep0pt + \let\makelabel\descriptionlabel}} + {\endlist} + +\renewcommand{\Begin@Example}{% +\parindent=0pt +\multiply\topsep by 2 \VerbatimEnvironment +\begin{VerbatimOut}[codes={\catcode`\Ł=12\catcode`\/=12\catcode`\&=12% + \catcode`\"=12}]{\jobname.tmp}} + +\renewcommand{\Below@Example}[1]{% +\VerbatimInput[gobble=0,commentchar=Ł,commandchars=/&",numbersep=3pt]% + {\jobname.tmp} +\catcode`\Ł=9\relax% +\NoHighlight@Attributes % To suppress possible highlighting +\ifFvrbEx@Grid\vspace{5pt}\fi +#1% +\ifFvrbEx@Grid\vspace{5pt}\fi +\par} + +\renewcommand{\SideBySide@Example}[1]{% +\@tempdimb=\FV@XRightMargin \advance\@tempdimb -5mm +\begin{minipage}[c]{\@tempdimb} + \fvset{xrightmargin=0pt} + \catcode`\Ł=9\relax% + \NoHighlight@Attributes % To suppress possible highlighting + #1 +\end{minipage}% +\@tempdimb=\textwidth \advance\@tempdimb -\FV@XRightMargin \advance\@tempdimb 5mm +\begin{minipage}[c]{\@tempdimb} + \VerbatimInput[gobble=0,commentchar=Ł,commandchars=/&",numbersep=3pt, + xleftmargin=5mm,xrightmargin=0pt]{\jobname.tmp} +\end{minipage}} +% The \NoHighlight@Attributes from `hbaw' and `hcolors' packages +% must be modified too +\def\NoHighlight@Attributes{% +\catcode`\/=0\relax% +\catcode`\&=1\relax% +\catcode`\"=2\relax% +\def\HLa##1{##1}% +\def\HLb##1{##1}% +\def\HLc##1{##1}% +\def\HLd##1{##1}% +\def\HLe##1{##1}% +\def\HLf##1{##1}% +\def\HLBFa##1{##1}% +\def\HLBFb##1{##1}% +\def\HLBFc##1{##1}% +\def\HLBFd##1{##1}% +\def\HLBFe##1{##1}% +\def\HLBFf##1{##1}% +\def\HLITa##1{##1}% +\def\HLITb##1{##1}% +\def\HLITc##1{##1}% +\def\HLITd##1{##1}% +\def\HLITe##1{##1}% +\def\HLITf##1{##1}% +\def\HLCBBa##1{##1}% +\def\HLCBBb##1{##1}% +\def\HLCBBc##1{##1}% +\def\HLCBBd##1{##1}% +\def\HLCBBe##1{##1}% +\def\HLCBBf##1{##1}% +\def\HLCBBz##1{##1}% +\def\HLCBWa##1{##1}% +\def\HLCBWb##1{##1}% +\def\HLCBWc##1{##1}% +\def\HLCBWd##1{##1}% +\def\HLCBWe##1{##1}% +\def\HLCBWf##1{##1}% +\def\HLCBWz##1{##1}% +} + +\makeatother + +\fvset{numbers=none,frame=single,labelposition=topline} + +\DeclareRobustCommand\cs[1]{\texttt{\char`\\#1}} + +\newcommand{\CircPackage}{\textbf{`pst-circ'}} + +\lhead{\CircPackage}\rhead{A PSTricks package for drawing electric circuits} +\pagestyle{fancy} + +\psset{subgriddiv=0,griddots=5,gridlabels=7pt}% +\showgrid +\usepackage[colorlinks,linktocpage]{hyperref} + +\begin{document} + +\title{\CircPackage\\ A PSTricks package for drawing electric circuits\\\normalsize ver. 1.2b} +\author{{Christophe \textsc{Jorssen} \url{<christophe.jorssen@noos.fr>}}\\ +Herbert \textsc{Voss} \url{<voss@perce.de>}} +\date{28 August 2003} +\maketitle + +\begin{center} +\psframebox[framearc=0.3,framesep=5mm,linewidth=.7mm]{% +\parbox{15cm}{% +{\textbf{Abstract:} \CircPackage{} is a PSTricks package to draw easily electric circuits. Most +dipoles, tripoles and quadrupoles used in classical electrotechnical +circuits are provided as graphical units which can readily be +interconnectedd to produce circuit diagrams of a reasonable level of complexity}}} +\end{center} + +\setlength{\columnseprule}{0.6pt} +\begin{multicols}{2} +{\parskip 0pt \tableofcontents} +\end{multicols} + +\section{Introduction} + +The package \CircPackage{} is a collection of graphical elements based +on PStricks that can be used to facilitate display of electronic +circuit elements. For example, an equivalent circuit of a voltage +source, its source impedance, and a connected load can easily be +constructed along with arrows indicating current flow and potential +differences. The emphasis is upon the circuit elements and the +details of the exact placement are hidden as much as possible so the +author can focus on the circuitry without the distraction of sorting +out the underlying vector graphics. + +\section{Usage} + +\subsection{Parameters} + +There are specific paramaters defined to change easily the behaviour of the pst-circ +objects you are drawing. + +%\begin{multicols}{2} +\begin{description} +\item[\HLTTc{intensity} (boolean):] (\emph{default:~false}) +\item[\HLTTc{intensitylabel} (string):] (\emph{default:~\texttt{\cs{empty}}}) +\item[\HLTTc{intensitylabeloffset} (dimension):] (\emph{default:~0.5}) +\item[\HLTTc{intensitycolor} (PSTricks color):] (\emph{default:~black}) +\item[\HLTTc{intensitylabelcolor} (PSTricks color):] (\emph{default:~black}) +\item[\HLTTc{intensitywidth} (dimension):] (\emph{default:~\texttt{\cs{pslinewidth}}}) +\item[\HLTTc{tension} (boolean):] (\emph{default:~false}) +\item[\HLTTc{tensionlabel} (string):] (\emph{default:~\texttt{\cs{empty}}}) +\item[\HLTTc{tensionoffset} (dimension):] (\emph{default:~1}) +\item[\HLTTc{tensionlabeloffset} (dimension):] (\emph{default:~1.2}) +\item[\HLTTc{tensioncolor} (PSTricks color):] (\emph{default:~black}) +\item[\HLTTc{tensionlabelcolor} (PSTricks color):] (\emph{default:~black}) +\item[\HLTTc{tensionwidth} (dimension):] (\emph{default:~\texttt{\cs{pslinewidth}}}) +\item[\HLTTc{labeloffset} (dimension):] (\emph{default:~0.7}) +\item[\HLTTc{labelangle} (PSTricks label angle):] (\emph{default:~0}) +\item[\HLTTc{dipoleconvention}:] (\emph{default:~receptor}) +\item[\HLTTc{directconvetion} (boolean):] (\emph{default:~true}) +\item[\HLTTc{dipolestyle} (string):] (\emph{default:~normal}) +\item[\HLTTc{variable} (boolean):] (\emph{default:~false}) +\item[\HLTTc{parallel} (boolean):] (\emph{default:~false}) +\item[\HLTTc{parallelarm} (dimension):] (\emph{default:~1.5}) +\item[\HLTTc{parallelsep} (real):] (\emph{default:~0}) +\item[\HLTTc{parallelnode} (boolean):] (\emph{default:~false}) +\item[\HLTTc{intersect} (boolean):] (\emph{default:~false}) +\item[\HLTTc{intersectA} (node):] +\item[\HLTTc{intersectB} (node):] +\item[\HLTTc{OAinvert} (boolean):] (\emph{default:~true}) +\item[\HLTTc{OAperfect} (boolean):] (\emph{default:~true}) +\item[\HLTTc{OAiplus} (boolean):] (\emph{default:~false}) +\item[\HLTTc{OAiminus} (boolean):] (\emph{default:~false}) +\item[\HLTTc{OAiout} (boolean):] (\emph{default:~false}) +\item[\HLTTc{OAipluslabel} (string):] (\emph{default:~\texttt{\cs{empty}}}) +\item[\HLTTc{OAiminuslabel} (string):] (\emph{default:~\texttt{\cs{empty}}}) +\item[\HLTTc{OAioutlabel} (string):] (\emph{default:~\texttt{\cs{empty}}}) +\item[\HLTTc{transistorcircle} (boolean):] (\emph{default:~true}) +\item[\HLTTc{transistorinvert} (boolean):] (\emph{default:~false}) +\item[\HLTTc{transistoribase} (boolean):] (\emph{default:~false}) +\item[\HLTTc{transistoricollector} (boolean):] (\emph{default:~false}) +\item[\HLTTc{transistoriemitter} (boolean):] (\emph{default:~false}) +\item[\HLTTc{transistoribaselabel} (string):] (\emph{default:~\texttt{\cs{empty}}}) +\item[\HLTTc{transistoricollectorlabel} (string):] (\emph{default:~\texttt{\cs{empty}}}) +\item[\HLTTc{transistoriemitterlabel} (string):] (\emph{default:~\texttt{\cs{empty}}}) +\item[\HLTTc{transistortype} (string):] (\emph{default:~PNP}) +\item[\HLTTc{primarylabel} (string):] (\emph{default:~\texttt{\cs{empty}}}) +\item[\HLTTc{secondarylabel} (string):] (\emph{default:~\texttt{\cs{empty}}}) +\item[\HLTTc{transformeriprimary} (boolean):] (\emph{default:~false}) +\item[\HLTTc{transformerisecondary} (boolean):] (\emph{default:~false}) +\item[\HLTTc{transformeriprimarylabel} (string):] (\emph{default:~\texttt{\cs{empty}}}) +\item[\HLTTc{transformerisecondarylabel} (string):] (\emph{default:~\texttt{\cs{empty}}}) +\item[\HLTTc{tripolestyle} (string):] (\emph{default:~normal}) +\end{description} +%\end{multicols} + +\section{Macros} + +\subsection{Dipole macros} + +\begin{PSideBySideExample}[xrightmargin=5.5cm](3,2) + \pnode(0,1){A} + \pnode(3,1){B} + /HLCBWz&\resistor"(A)(B){$R$} +\end{PSideBySideExample} + +\begin{PSideBySideExample}[xrightmargin=5.5cm](3,2) + \pnode(0,1){A} + \pnode(3,1){B} + /HLCBWz&\capacitor"(A)(B){$C$} +\end{PSideBySideExample} + +\begin{PSideBySideExample}[xrightmargin=5.5cm](3,2) + \pnode(0,1){A} + \pnode(3,1){B} + /HLCBWz&\battery"(A)(B){$E$} +\end{PSideBySideExample} + +\begin{PSideBySideExample}[xrightmargin=5.5cm](3,2) + \pnode(0,1){A} + \pnode(3,1){B} + /HLCBWz&\coil"(A)(B){$L$} +\end{PSideBySideExample} + +\begin{PSideBySideExample}[xrightmargin=5.5cm](3,2) + \pnode(0,1){A} + \pnode(3,1){B} + /HLCBWz&\Ucc"(A)(B){$E$} +\end{PSideBySideExample} + +\begin{PSideBySideExample}[xrightmargin=5.5cm](3,2) + \pnode(0,1){A} + \pnode(3,1){B} + /HLCBWz&\Icc"(A)(B){$\eta$} +\end{PSideBySideExample} + +\begin{PSideBySideExample}[xrightmargin=5.5cm](3,2) + \pnode(0,1){A} + \pnode(3,1){B} + /HLCBWz&\switch"(A)(B){$K$} +\end{PSideBySideExample} + +\begin{PSideBySideExample}[xrightmargin=5.5cm](3,2) + \pnode(0,1){A} + \pnode(3,1){B} + /HLCBWz&\diode"(A)(B){$D$} +\end{PSideBySideExample} + +\begin{PSideBySideExample}[xrightmargin=5.5cm](3,2) + \pnode(0,1){A} + \pnode(3,1){B} + /HLCBWz&\Zener"(A)(B){$D$} +\end{PSideBySideExample} + +\begin{PSideBySideExample}[xrightmargin=5.5cm](3,2) + \pnode(0,1){A} + \pnode(3,1){B} + /HLCBWz&\lamp"(A)(B){$\mathcal L$} +\end{PSideBySideExample} + +\begin{PSideBySideExample}[xrightmargin=5.5cm](3,2) + \pnode(0,1){A} + \pnode(3,1){B} + /HLCBWz&\circledipole"(A)(B){$\mathcal G$} +\end{PSideBySideExample} + +\begin{PSideBySideExample}[xrightmargin=5.5cm](3,2) + \pnode(0,1){A} + \pnode(3,1){B} + /HLCBWz&\LED"(A)(B){$\mathcal D$} +\end{PSideBySideExample} + +\subsection{Tripole macros} + +Obviously, tripoles are not node connections. So \CircPackage{} tries its best to adjust the +position of the tripole regarding the three nodes. Internally, the connections are done by the +\cs{ncangle} pst-node macro. However, the auto-positionning and the auto-connections are not always +well chosen\footnote{This is something we are working on. I think that auto-positionning and +auto-connections should be done at PostScript level and not at PSTricks level. If someone has any +ideas, please mail us.}, so don't try to use tripole macros in strange situations! + +\begin{PSideBySideExample}[xrightmargin=5.5cm](5,3) + \pnode(0,0){A} + \pnode(0,3){B} + \pnode(5,1.5){C} + /HLCBWz&\OA"(B)(A)(C) +\end{PSideBySideExample} + +\begin{PSideBySideExample}[xrightmargin=5.5cm](5,3) + \pnode(0,1.5){A} + \pnode(5,3){B} + \pnode(5,0){C} + /HLCBWz&\transistor"(A)(B)(C) +\end{PSideBySideExample} + +\begin{PSideBySideExample}[xrightmargin=5.5cm](5,3) + \pnode(0,2){A} + \pnode(5,2){B} + \pnode(0,0){C} + /HLCBWz&\Tswitch"(A)(B)(C){$K$} +\end{PSideBySideExample} + +\begin{PSideBySideExample}[xrightmargin=3.5cm](3,3) + \pnode(0,1){A} + \pnode(3,1){B} + \pnode(3,2.25){C} + /HLCBWz&\potentiometer"[labeloffset=0pt](A)(B)(C){$P$} +\end{PSideBySideExample} + +\subsection{Quadrupole macros} + +\begin{PSideBySideExample}[xrightmargin=5.5cm](5,5) + \pnode(0,5){A} + \pnode(0,0){B} + \pnode(5,5){C} + \pnode(5,0){D} + /HLCBWz&\transformer"(A)(B)(C)(D){$\mathcal T$} +\end{PSideBySideExample} + +\begin{PSideBySideExample}[xrightmargin=4.5cm](4,3) + \pnode(0,2.5){A} + \pnode(0,0.5){B} + \pnode(4,2.5){C} + \pnode(4,0.5){D} + /HLCBWz&\optoCoupler"(A)(B)(C)(D){$OC$} +\end{PSideBySideExample} + +\subsection{Multidipole} + + + +\cs{multidipole} is a macro that allows multiple dipoles to be drawn between two specified nodes. +\cs{multidipole} takes as many arguments as you want. \textbf{Note the \rnode{Dot}{dot} that is +after the last dipole.} + +\def\HLrnode#1{\rnode{Dot2}{#1}} +\begin{PSideBySideExample}[xrightmargin=8.5cm](8,8) + \pnode(0,0){A} + \pnode(8,8){B} + /HLCBWz&\multidipole"(A)(B)\resistor{$R$}% + \capacitor[linecolor=red]{$C$}% + \diode{$D$}/HLrnode&/HLCBWz." +\end{PSideBySideExample} + +\ncangles[linestyle=dashed,linecolor=gray,nodesep=3pt,armA=.5cm,angleA=-90,armB=4cm,angleB=0]{->}{Dot}{Dot2} +Important: for the time being, \cs{multidipole} takes optional arguments but does not +restore original values. We recommand not using it. + + +\subsection{Wire} + +\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2) + \pnode(0,1){A} + \pnode(3,1){B} + /HLCBWz&\wire"(A)(B) +\end{PSideBySideExample} + +\subsection{Potential} + +\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2) + \pnode(0,1){A} + \pnode(3,1){B} + /HLCBWz&\tension"(A)(B){$u$} +\end{PSideBySideExample} + +\subsection{ground} + +\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2) + \pnode(0.5,1){A} + \pnode(1,1){B} + \pnode(2.5,1){C} + /HLCBWz&\ground"(A) + \ground{/HLCBWz&135"}(B) + \ground[/HLCBWz&linecolor"=blue]{180}(C) +\end{PSideBySideExample} + +\section{Parameters} + +\subsection{Label parameters} + +\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2) + \pnode(0,.5){A} + \pnode(3,.5){B} + \resistor[/HLCBWz&labeloffset"=0](A)(B){$R$} +\end{PSideBySideExample} + +\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2) + \pnode(0,0){A} + \pnode(3,2){B} + \resistor[/HLCBWz&labelangle"=:U](A)(B){$R$} +\end{PSideBySideExample} + +\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2) + \pnode(0,0){A} + \pnode(3,2){B} + \resistor[/HLCBWz&labelangle"=0](A)(B){$R$} +\end{PSideBySideExample} + +\begin{PSideBySideExample}[xrightmargin=5.5cm](5,5) + \pnode(0,5){A} + \pnode(0,0){B} + \pnode(5,5){C} + \pnode(5,0){D} + \transformer[/HLCBWz&primarylabel"=$n_1$, + /HLCBWz&secondarylabel"=$n_2$](A)(B)(C)(D){$\mathcal T$} +\end{PSideBySideExample} + + +\subsection{Current intensity and electrical potential parameters} + +If the \HLTTc{intensity} parameter is set to \texttt{true}, an arrow is drawn on the wire +connecting one of the nodes to the dipole. If the \HLTTc{tension} parameter is set to \texttt{true}, +an arrow is drawn parallel to the dipole. + +The way those arrows are drawn is set by \HLTTc{dipoleconvention} and \HLTTc{directconvention} +parameters. \HLTTc{dipoleconvention} can take two values~: \texttt{generator} or \texttt{receptor}. +\HLTTc{directconvention} is a boolean. + +\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2) + \pnode(0,.5){A} + \pnode(3,.5){B} + \resistor[/HLCBWz&intensity",/HLCBWz&tension"](A)(B){} +\end{PSideBySideExample} + +\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2) + \pnode(0,.5){A} + \pnode(3,.5){B} + \resistor[intensity,tension, + /HLCBWz&dipoleconvention"=generator](A)(B){} +\end{PSideBySideExample} + +\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2) + \pnode(0,.5){A} + \pnode(3,.5){B} + \resistor[intensity,tension, + /HLCBWz&directconvention"=false](A)(B){} +\end{PSideBySideExample} + +\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2) + \pnode(0,.5){A} + \pnode(3,.5){B} + \resistor[intensity,tension, + dipoleconvention=generator,directconvention=false](A)(B){} +\end{PSideBySideExample} + +If \HLTTc{intensitylabel} is set to an non empty argument, then \HLTTc{intensity} is automatically +set to true. If \HLTTc{tensionlabel} is set to an non empty argument, then \HLTTc{tension} is +automatically set to true. + +\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2) + \pnode(0,.5){A} + \pnode(3,.5){B} + \resistor[/HLCBWz&intensitylabel"=$i$,/HLCBWz&tensionlabel"=$u$](A)(B){} +\end{PSideBySideExample} + +\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2) + \pnode(0,1.5){A} + \pnode(3,1.5){B} + \resistor[intensitylabel=$i$,/HLCBWz&intensitylabeloffset"=-0.5, + tensionlabel=$u$,/HLCBWz&tensionlabeloffset"=-1.2, + /HLCBWz&tensionoffset"=-1](A)(B){} +\end{PSideBySideExample} + +\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2) + \pnode(0,.5){A} + \pnode(3,.5){B} + \resistor[intensitylabel=$i$,/HLCBWz&intensitywidth"=3\pslinewidth, + /HLCBWz&intensitycolor"=red,/HLCBWz&intensitylabelcolor"=yellow, + tensionlabel=$u$,/HLCBWz&tensionwidth"=2\pslinewidth, + /HLCBWz&tensioncolor"=green,/HLCBWz&tensionlabelcolor"=blue](A)(B){} +\end{PSideBySideExample} + +Some specific intensity parameters are available for tripoles and quadrupoles. + +\begin{PSideBySideExample}[xrightmargin=5.5cm](5,3) + \pnode(0,0){A} + \pnode(0,3){B} + \pnode(5,1.5){C} + \OA[/HLCBWz&OAipluslabel"=$i_+$, + /HLCBWz&OAiminuslabel"=$i_-$, + /HLCBWz&OAioutlabel"=$i_o$](B)(A)(C) +\end{PSideBySideExample} + +\begin{PSideBySideExample}[xrightmargin=5.5cm](5,3) + \pnode(0,1.5){A} + \pnode(5,3){B} + \pnode(5,0){C} + \transistor[/HLCBWz&transistoribaselabel"=$i_B$, + /HLCBWz&transistoricollectorlabel"=$i_C$, + /HLCBWz&transistoriemitterlabel"=$i_E$](A)(B)(C) +\end{PSideBySideExample} + +\begin{PSideBySideExample}[xrightmargin=5.5cm](5,5) + \pnode(0,5){A} + \pnode(0,0){B} + \pnode(5,5){C} + \pnode(5,0){D} + \transformer[/HLCBWz&transformeriprimarylabel"=$i_1$, + /HLCBWz&transformerisecondarylabel"=$i_2$]% + (A)(B)(C)(D){$\mathcal T$} +\end{PSideBySideExample} + + +\subsection{Parallel parameters} + +If the \HLTTc{parallel} parameter is set to \texttt{true}, the dipole is drawn parallel to the line +connecting the nodes. + +\begin{PSideBySideExample}[xrightmargin=3.5cm](3,3) + \pnode(0,.5){A} + \pnode(3,.5){B} + \resistor(A)(B){} + \resistor[/HLCBWz¶llel"](A)(B){} +\end{PSideBySideExample} + +\begin{PSideBySideExample}[xrightmargin=3.5cm](3,3) + \pnode(0,.5){A} + \pnode(3,.5){B} + \resistor(A)(B){} + \resistor[parallel,/HLCBWz¶llelsep"=.5](A)(B){} +\end{PSideBySideExample} + +\begin{PSideBySideExample}[xrightmargin=3.5cm](3,3) + \pnode(0,.5){A} + \pnode(3,.5){B} + \resistor(A)(B){} + \resistor[parallel,parallelsep=.3, + /HLCBWz¶llelarm"=2](A)(B){} +\end{PSideBySideExample} + +\begin{PSideBySideExample}[xrightmargin=3.5cm](3,3) + \pnode(0,.5){A} + \pnode(3,.5){B} + \resistor(A)(B){} + \resistor[parallel,parallelsep=.3, + parallelarm=2,/HLCBWz¶llelnode"](A)(B){} +\end{PSideBySideExample} + +\begin{PSideBySideExample}[xrightmargin=8.5cm](8,8) + \pnode(0,0){A} + \pnode(8,8){B} + \multidipole(A)(B)\resistor{$R$}% + \capacitor[linecolor=red]{$C$}% + \coil[parallel,parallelsep=.1]{$L$}% + \diode{$D$}. +\end{PSideBySideExample} + +Note: When used with \cs{multidipole}, the parallel \HLTTc{parameter} +must not be set for the first dipole. + +\subsection{Wire intersections} + +\begin{PSideBySideExample}[xrightmargin=3.5cm](3,3) + \pnode(0,0){A} + \pnode(3,3){B} + \pnode(0,3){C} + \pnode(3,0){D} + \wire(A)(B) + \wire[/HLCBWz&intersect",/HLCBWz&intersectA"=A,/HLCBWz&intersectB"=B](C)(D) +\end{PSideBySideExample} + +Wire intersect parameters work also with \cs{multidipole}. + +\begin{PSideBySideExample}[xrightmargin=8.5cm](8,8) + \pnode(0,0){A} + \pnode(8,8){B} + \pnode(0,8){C} + \pnode(8,0){D} + \wire(A)(B) + \multidipole(C)(D)\resistor{$R$}% + \wire[intersect,intersectA=A,intersectB=B]% + \capacitor{$C$}. +\end{PSideBySideExample} + + + +\subsection{Dipole style parameters} + +\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2) + \pnode(0,1){A} + \pnode(3,1){B} + \resistor[/HLCBWz&dipolestyle"=/HLCBWz&zigzag"](A)(B){$R$} +\end{PSideBySideExample} + +\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2) + \pnode(0,1){A} + \pnode(3,1){B} + \capacitor[dipolestyle=/HLCBWz&chemical"](A)(B){$C$} +\end{PSideBySideExample} + +\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2) + \pnode(0,1){A} + \pnode(3,1){B} + \capacitor[dipolestyle=/HLCBWz&elektor"](A)(B){$C$} +\end{PSideBySideExample} + +\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2) + \pnode(0,1){A} + \pnode(3,1){B} + \capacitor[dipolestyle=/HLCBWz&elektorchemical"](A)(B){$C$} +\end{PSideBySideExample} + +\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2) + \pnode(0,1){A} + \pnode(3,1){B} + \coil[dipolestyle=/HLCBWz&rectangle"](A)(B){$L$} +\end{PSideBySideExample} + +\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2) + \pnode(0,1){A} + \pnode(3,1){B} + \coil[dipolestyle=/HLCBWz&curved"](A)(B){$L$} +\end{PSideBySideExample} + +\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2) + \pnode(0,1){A} + \pnode(3,1){B} + \coil[dipolestyle=/HLCBWz&elektor"](A)(B){$L$} +\end{PSideBySideExample} + +\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2) + \pnode(0,1){A} + \pnode(3,1){B} + \coil[dipolestyle=/HLCBWz&elektorcurved"](A)(B){$L$} +\end{PSideBySideExample} + +\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2) + \pnode(0,1){A} + \pnode(3,1){B} + \diode[dipolestyle=/HLCBWz&thyristor"](A)(B){$T$} +\end{PSideBySideExample} + +\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2) + \pnode(0,1){A} + \pnode(3,1){B} + \diode[dipolestyle=/HLCBWz>O"](A)(B){$T$} +\end{PSideBySideExample} + +\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2) + \pnode(0,1){A} + \pnode(3,1){B} + \diode[dipolestyle=/HLCBWz&triac"](A)(B){$T$} +\end{PSideBySideExample} + +\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2) + \pnode(0,1){A} + \pnode(3,1){B} + \resistor[/HLCBWz&variable"](A)(B){$R$} +\end{PSideBySideExample} + +\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2) + \pnode(0,1){A} + \pnode(3,1){B} + \capacitor[/HLCBWz&variable"](A)(B){$C$} +\end{PSideBySideExample} + +\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2) + \pnode(0,1){A} + \pnode(3,1){B} + \coil[/HLCBWz&variable"](A)(B){$L$} +\end{PSideBySideExample} + +\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2) + \pnode(0,1){A} + \pnode(3,1){B} + \battery[/HLCBWz&variable"](A)(B){$U$} +\end{PSideBySideExample} + +\begin{PSideBySideExample}[xrightmargin=3.5cm](3,2) + \pnode(0,1){A} + \pnode(3,1){B} + \coil[dipolestyle=/HLCBWz&elektor",variable](A)(B){$L$} +\end{PSideBySideExample} + +In the following example the parameter \verb|dipolestyle| is used for a tripole and quadrupole, because +the coils are drawn as rectangles and the resistor as a zigzag. + +\begin{PSideBySideExample}[xrightmargin=3.5cm](3,3) + \pnode(0,0){A} + \pnode(3,3){B} + \pnode(3,1.5){C} + \potentiometer[,dipolestyle=/HLCBWz&zigzag",% + labelangle=:U](A)(B)(C){$P$} +\end{PSideBySideExample} + +\begin{PSideBySideExample}[xrightmargin=4.5cm](4,4) + \pnode(0,4){A} + \pnode(0,0){B} + \pnode(4,4){C} + \pnode(4,0){D} + /HLCBWz&\transformer"[dipolestyle=/HLCBWz&rectangle"](A)(B)(C)(D){$\mathcal T$} +\end{PSideBySideExample} + + +\subsection{Tripole style parameters} + +\begin{PSideBySideExample}[xrightmargin=5.5cm](5,3) + \pnode(0,2){A} + \pnode(5,2){B} + \pnode(0,0){C} + \Tswitch[tripolestyle=left](A)(B)(C){$K$} +\end{PSideBySideExample} + +\begin{PSideBySideExample}[xrightmargin=5.5cm](5,3) + \pnode(0,2){A} + \pnode(5,2){B} + \pnode(0,0){C} + \Tswitch[tripolestyle=right](A)(B)(C){$K$} +\end{PSideBySideExample} + +\begin{PSideBySideExample}[xrightmargin=5.5cm](5,3) + \pnode(0,3){A} + \pnode(0,0){B} + \pnode(5,1.5){C} + \OA[tripolestyle=french](A)(B)(C) +\end{PSideBySideExample} + +\subsection{Other Parameters} + +\begin{PSideBySideExample}[xrightmargin=5.5cm](5,3) + \pnode(0,0){A} + \pnode(0,3){B} + \pnode(5,1.5){C} + \OA[/HLCBWz&OAinvert"=false](B)(A)(C) +\end{PSideBySideExample} + +\begin{PSideBySideExample}[xrightmargin=5.5cm](5,3) + \pnode(0,0){A} + \pnode(0,3){B} + \pnode(5,1.5){C} + \OA[/HLCBWz&OAperfect"=false](B)(A)(C) +\end{PSideBySideExample} + +\begin{PSideBySideExample}[xrightmargin=5.5cm](5,3) + \pnode(0,1.5){A} + \pnode(5,3){B} + \pnode(5,0){C} + \transistor[/HLCBWz&transistorinvert",/HLCBWz&transistorcircle"=false](A)(B)(C) +\end{PSideBySideExample} + + +\section{Examples} + +\begin{SideBySideExample}[xrightmargin=8cm] + \begin{pspicture}(-1.5,-1)(6,5) + \psgrid[subgriddiv=1,griddots=10] + % Node definitions + \pnode(0,0){A} + \pnode(0,3){B} + \pnode(4.5,3){C} + \pnode(4.5,0){D} + % Dipole node connection + \Ucc[tension,dipoleconvention=generator](A)(B){$E$} + \multidipole(B)(C)% + \switch[intensitylabel=$i$]{$K$}% + \resistor[labeloffset=0,tensionlabel=$u_R$]{$R$}. + \capacitor[tensionlabel={$u_C$}, + tensionlabeloffset=-1.2,tensionoffset=-1, + directconvention=false](D)(C){$C$} + % Wire to complete circuit + \wire(A)(D) + % Ground + \ground(D) + \end{pspicture} +\end{SideBySideExample} + +\begin{SideBySideExample}[xrightmargin=8cm] + \begin{pspicture}(-0.5,0)(7,8) + \psgrid[subgriddiv=1,griddots=10] + % Node definitions + \pnode(0.5,1){A} + \pnode(3.5,1){B} + \pnode(6.5,1){C} + \pnode(0.5,4){D} + \pnode(3.5,4){Minus} + \pnode(3.5,3){Plus} + \pnode(6.5,5){S} + \pnode(3.5,5){E} + % Dipole node connections + \resistor(D)(Minus){$R_2$} + \capacitor(E)(S){$C$} + \resistor[parallel,parallelarm=2](E)(S){$R_1$} + \OA[intensity](Minus)(Plus)(S) + % Wires + \wire(Minus)(E) + \wire(Plus)(B) + % Tensions + \tension(A)(D){$u_E$} + \makeatletter % (special tricks see below) + \tension(C)(S@@){$u_S$} + \tension[linecolor=blue](Plus@@)(Minus@@){$\epsilon$} + \makeatother + % Grounds + \ground(A) + \ground(B) + \ground(C) + \end{pspicture} +\end{SideBySideExample} + +\begin{SideBySideExample}[xrightmargin=8.5cm] + \begin{pspicture}(-1,0)(7,8) + \psgrid[subgriddiv=1,griddots=10] + % Node definitions + \pnode(1,1){A} + \pnode(1,7){B} + \pnode(3,1){C} + \pnode(3,7){D} + % Dipole node connections + \Ucc[tensionlabel=$E$](A)(B){} + \resistor(B)(D){$R$} + \coil(D)(C){$L$} + \capacitor[parallel,parallelarm=2.5](D)(C){$C$} + % Wire + \wire(A)(C) + \end{pspicture} +\end{SideBySideExample} + +\begin{SideBySideExample}[xrightmargin=8.5cm] + \begin{pspicture}(6,6) + \psgrid[subgriddiv=1,griddots=10] + % Node definitions + \pnode(0,3){A} + \pnode(3,3){B} + \pnode(6,3){C} + % Dipole node connections + \coil[intensitylabel=$i$](A)(B){$L$} + \coil[intensitylabel=$i'$,intensitycolor=green,% + parallel,parallelarm=2](B)(C){$L'$} + \capacitor[parallel,parallelarm=-2](B)(C){$C$} + \end{pspicture} +\end{SideBySideExample} + +\begin{SideBySideExample}[xrightmargin=8.5cm] + \begin{pspicture}(6,6) + \psgrid[subgriddiv=1,griddots=10] + % Node definitions + \pnode(0,0){A}\pnode(6,0){B} + \pnode(0.3,4){Cprime}\pnode(5.7,4){Dprime} + \pnode(2.5,4){Gprime}\pnode(2.5,0){Hprime} + \pnode(0,4){C}\pnode(6,4){D} + \pnode(0.3,6){E}\pnode(5.7,6){F} + \pnode(4,6){G}\pnode(4,0){H} + \multidipole(G)(H)% + \wire[intersect, + intersectA=C,intersectB=D] + \resistor{$R'_3$}. + \resistor(E)(G){$R'_1$} + \resistor(G)(F){$R'_2$} + \multidipole(C)(D)\resistor{$R_1$}% + \wire\resistor{$R_2$}. + \wire(A)(B)\wire(Cprime)(E) + \wire(Dprime)(F) + \resistor(Hprime)(Gprime){$R_3$} + \end{pspicture} +\end{SideBySideExample} + + + +\begin{SideBySideExample}[xrightmargin=9.5cm] + \begin{pspicture}(9,11) + \psgrid[subgriddiv=1,griddots=10] + % Node definitions + \pnode(0,0){A} + \pnode(9,0){B} + \pnode(0,6){C} + \pnode(9,6){D} + \pnode(4.5,1){E} + \pnode(4.5,10.5){F} + % + \switch(A)(C){$K$} + \multidipole(A)(B)\resistor{$R$}% + \battery[intensitylabel=$i$]{$V$}. + \wire(B)(D) + \multidipole(C)(D)\diode{$D$}\wire. + \resistor[tensionlabel=$U_1$](C)(F){$R_1$} + \resistor(C)(E){$R_4$} + \capacitor[parallel,parallelarm=1.2, + parallelsep=1.5](C)(E){$C_2$} + \coil(E)(D){$L$} + \capacitor[parallel,parallelarm=1.2, + parallelsep=1.5](E)(D){$C_3$} + \capacitor[tensionlabel=$U_2$](F)(D){$C_1$} + \multidipole(E)(F)\wire% + \wire[intersect, + intersectA=C,intersectB=D]% + \circledipole[labeloffset=-0.7]{$E$}% + \resistor[parallel, + parallelsep=.6,parallelarm=.8]{$R$}. + \end{pspicture} +\end{SideBySideExample} + + +\begin{CenterExample} + \begin{pspicture}(13,8) + \psset{intensitycolor=red,intensitylabelcolor=red,% + tensioncolor=green,tensionlabelcolor=green,% + intensitywidth=3pt} + \psgrid[griddots=5,gridlabels=7pt,subgriddiv=0] + \circledipole[ + tension,% + tensionlabel=$U_0$,% + tensionoffset=0.75,% + labeloffset=0](0,0)(0,6){\LARGE\textbf{=}} + \wire[intensity,intensitylabel=$i_0$](0,6)(2.5,6) + \diode[dipolestyle=thyristor](2.5,6)(4.5,6){$T_1$} + \wire[intensity,intensitylabel=$i_1$](4.5,6)(6.5,6) + \multidipole(6.5,7.5)(2.5,7.5)% + \coil[dipolestyle=rectangle,labeloffset=-0.75]{$L_5$}% + \diode[labeloffset=-0.75]{$D_5$}. + \wire[intensity,intensitylabel=$i_5$](6.5,6)(6.5,7.5) + \wire(2.5,7.5)(2.5,3) + \wire[intensity,intensitylabel=$i_c$](2.5,4.5)(2.5,6) + \qdisk(2.5,6){2pt}\qdisk(6.5,6){2pt} + \diode[dipolestyle=thyristor](2.5,4.5)(4.5,4.5){$T_2$} + \wire[intensity,intensitylabel=$i_2$](4.5,4.5)(6.5,4.5) + \capacitor[tension,tensionlabel=$u_c$,% + tensionoffset=-0.75,tensionlabeloffset=-1](6.5,4.5)(6.5,6){$C_k$} + \qdisk(2.5,4.5){2pt}\qdisk(6.5,4.5){2pt} + \wire[intensity,intensitylabel=$i_3$](6.5,4.5)(6.5,3) + \multidipole(6.5,3)(2.5,3)% + \coil[dipolestyle=rectangle,labeloffset=-0.75]{$L_3$}% + \diode[labeloffset=-0.75]{$D_3$}. + \wire(6.5,6)(9,6)\qdisk(9,6){2pt} + \diode(9,0)(9,6){$D_4$} + \wire[intensity,intensitylabel=$i_4$](9,3.25)(9,6) + \wire[intensity,intensitylabel=$i_a$](9,6)(11,6) + \multidipole(11,6)(11,0)% + \resistor{$R_L$} + \coil[dipolestyle=rectangle]{$L_L$}% + \circledipole[labeloffset=0,% + tension,tensionoffset=0.7,% + tensionlabel=$U_B$]{\LARGE\textbf{=}}. + \wire(0,0)(11,0)\qdisk(9,0){2pt} + \pnode(12.5,5.5){A}\pnode(12.5,0.5){B} + \tension(A)(B){$u_a$} + \end{pspicture} +\end{CenterExample} + + +\makeatletter +% +\def\REG{\@ifnextchar[{\pst@REG}{\pst@REG[]}} +% +\def\pst@REG[#1](#2)(#3)(#4)#5{{% + \setkeys{psset}{#1,dimen=middle,arm=0}% + \pst@getcoor{#2}\pst@tempa + \pst@getcoor{#3}\pst@tempb + \pst@getcoor{#4}\pst@tempc + \pnode(!% + \pst@tempa /Y1 exch \pst@number\psyunit div def + /X1 exch \pst@number\psxunit div def + \pst@tempb /Y2 exch \pst@number\psyunit div def + /X2 exch \pst@number\psxunit div def + \pst@tempc /Y3 exch \pst@number\psyunit div def + /X3 exch \pst@number\psxunit div def + /XC X1 X2 add 2 div def + /YC Y1 2 mul Y3 add 3 div def + /Xin XC 1 sub def + /Yin YC 0.5 add def + /Xout XC 1 add def + /Yout Yin def + /Xref XC def + /Yref YC 1 sub def + XC YC){C@} + \pnode(! Xin Yin){in@} + \pnode(! Xout Yout){out@} + \pnode(! Xref Yref){ref@} + \rput(C@){\pst@draw@REG} + \ncangle{#2}{in@} + \ncangle{#3}{out@} + \ncangle{#4}{ref@} + \rput(C@){#5} + }\ignorespaces} +% +\def\pst@draw@REG{% + \begingroup + \psset{linewidth=1.5\pslinewidth}% + \psframe(-1,-0.5)(1,0.75) + \psline(-1.5,0.5)(-1,0.5) + \psline(1.5,0.5)(1,0.5) + \psline(0,-0.5)(0,-1) + \endgroup + } +% +\makeatother + +The fellowing example was written by Manuel Luque. +\begin{CenterExample} + \begin{pspicture}(14,4) + \psgrid[subgriddiv=1,griddots=10] + \pnode(0,0){B}\pnode(0,3){A} + \pnode(2.5,3.5){C}\pnode(2.5,-0.5){D} + \pnode(5,3){E}\pnode(6.5,1.5){F} + \pnode(5,0){G}\pnode(3.5,1.5){H} + \pnode(8,2.5){I}\pnode(8,1){J} + \pnode(10,2.5){K}\pnode(10,1){L} + \pnode(14,2.5){M}\pnode(12,1){N} + \pnode(3,1){H'}\pnode(14,2.5){O} + \pnode(14,1){P}\pnode(13.5,1){Q} + \transformer[transformeriprimarylabel=$i_1$, + transformerisecondarylabel=$i_2$, + primarylabel=$n_1$,secondarylabel=$n_2$]% + (A)(B)(C)(D){$T_1$} + {\psset{fillstyle=solid,fillcolor=black} + \diode(H)(E){}\diode(H)(G){} + \diode(E)(F){}\diode(G)(F){}} + \capacitor[dipolestyle=chemical](I)(J){} + \capacitor(K)(L){} + \REG(K)(M)(N)% + {\shortstack{\textsf{% + \textbf{\large LM7805}}\\\textbf{+5V}}} + \ncangle{I}{F}\psline(I)(K) + \ncangle{E}{C}\ncangle{G}{D} + \ncangle[arm=0]{P}{Q} + \ncangle[arm=0]{H}{H'} + \ground(H')\ground(J) + \ground(L)\ground(N) + \ground(Q)\qdisk(I){1.5pt} + \qdisk(K){1.5pt}\qdisk(E){1.5pt} + \qdisk(G){1.5pt}\qdisk(H){1.5pt} + \qdisk(F){1.5pt} + \pscircle[fillstyle=solid](A){0.075} + \pscircle[fillstyle=solid](B){0.075} + \pscircle[fillstyle=solid](P){0.075} + \pscircle[fillstyle=solid](O){0.075} + \end{pspicture} +\end{CenterExample} + +The fellowing example was written by Lionel Cordesses. + +\begin{CenterExample} + \begin{pspicture}(11,3) + \psset{dipolestyle=elektor} + \pnode(1,2){Vin}\pnode(0.5,2){S}\pnode(0.5,0){Sm} + \pnode(2.5,2){A}\pnode(4.5,2){B}\pnode(6.5,2){C} + \pnode(8,2){Cd}\pnode(8.5,2){D}\pnode(9.5,2){E} + \pnode(2.5,0){Am}\pnode(4.5,0){Bm}\pnode(6.5,0){Cm} + \pnode(8.5,0){Dm}\pnode(9.5,0){Em} + \Ucc[labeloffset=0.9](Sm)(S){$V_{in}$}\resistor(Vin)(A){$R$} + \capacitor(A)(Am){$C_1$} \capacitor(B)(Bm){$C_3$} + \capacitor[labeloffset=-0.7](D)(Dm){$C_n$}\resistor(E)(Em){$R$} + \coil(A)(B){$L_2$}\coil(B)(C){$L_4$} + \wire(Am)(Bm)\wire(Bm)(Cm)\wire(Cm)(Dm)\wire(Dm)(Em)\wire(D)(E) + \wire(Cd)(D)\psline[linestyle=dashed](C)(Cd) + \wire(S)(Vin)\wire(Sm)(Am) + \pscircle*(D){2\pslinewidth} \pscircle*(Dm){2\pslinewidth} + \pscircle*(A){2\pslinewidth} \pscircle*(Am){2\pslinewidth} + \pscircle*(B){2\pslinewidth} \pscircle*(Bm){2\pslinewidth} + \end{pspicture} +\end{CenterExample} + +\section{Adding new components} + +Adding new components is not simple. As a matter of fact, because of the complex +mechanism of \cs{multidipole}, there are multiple steps. The easiest way to proceed is +to draw the component, send it to me (\texttt{\makeatletter +christophe.jorssen@noos.fr\makeatother}) and I'll do the programming work regarding your +component. Nevertheless, it can take some time\dots + +If you want to modify the code, you need to know the following +things. For a dipole, you first +need to define the following items \fvset{commandchars=/&"} + +\begin{Verbatim} + \def\/emph&component/_name"{\@ifnextchar[{\pst@/emph&component/_name"}{\pst@/emph&component/_name"[]}} + % + \def\pst@/emph&component/_name"[#1](#2)(#3)#4{{% + \pst@draw@dipole{#1}{#2}{#3}{#4}\pst@draw@/emph&component/_name" + }\ignorespaces} + % + \def\pst@multidipole@/emph&component/_name"{\@ifnextchar[{\pst@multidipole@/emph&component/_name"@}% + {\pst@multidipole@/emph&component/_name"@[]}} + % + \def\pst@multidipole@/emph&component/_name"@[#1]#2{% + \expandafter\def\csname pst@circ@tmp@\number\pst@circ@count@iii\endcsname{#2}% + {\setkeys{psset}{#1}% + \ifPst@circ@parallel\aftergroup\advance\aftergroup\pst@circ@count@i\aftergroup\m@ne\fi}% + \pst@circ@count@ii=\pst@circ@count@i% + \advance\pst@circ@count@ii\@ne% + \toks0\expandafter{\pst@multidipole@output}% + \edef\pst@multidipole@output{% + \the\toks0% + \pst@multidipole@def@coor% + \noexpand\/emph&component/_name"[#1]% + (! X@\the\pst@circ@count@i\space Y@\the\pst@circ@count@i)% + (! X@\the\pst@circ@count@ii\space Y@\the\pst@circ@count@ii)% + {\noexpand\csname pst@circ@tmp@\number\pst@circ@count@iii\endcsname}% + }% + \pst@multidipole@ + } + % + \def\pst@draw@/emph&component/_name"{% + % The PSTricks code for your component + % The center of the component is at (0,0) + \pnode(/emph&component/_left/_end",0){dipole@1} + \pnode(/emph&component/_right/_end",0){dipole@2} + } +\end{Verbatim} + +Then, you have to make some changes in the \cs{multidipole} core code\dots In the definition +of \Verb+\pst@multidipole+, look for the last \Verb+\ifx+ test +\begin{Verbatim} + % ... + % Extract from \pst@multidipole + \else + \ifx\circledipole #4% + \let\next\pst@multidipole@circledipole + \else + \ifx\LED #4% + \let\next\pst@multidipole@LED + \else + % Put your modification here + \let\next\ignorespaces + \fi + \fi + \fi + % Extract form \pst@multidipole + % ... +\end{Verbatim} +and add (in red) +\begin{Verbatim} + % ... + % Extract from \pst@multidipole + \else + \ifx\circledipole #4% + \let\next\pst@multidipole@circledipole + \else + \ifx\LED #4% + \let\next\pst@multidipole@LED + \else + /red&\ifx\/emph&component/_name" #4%" + /red&\let\next\pst@multidipole@/emph&component/_name"" + /red&\else" + \let\next\ignorespaces + /red&\fi" + \fi + \fi + \fi + % Extract form \pst@multidipole + % ... +\end{Verbatim} +Do the same in \Verb+\pst@multidipole@+ +\begin{Verbatim} + % ... + % Extract from \pst@multidipole@ + \else + \ifx\circledipole #1% + \let\next\pst@multidipole@circledipole + \else + \ifx\LED #1% + \let\next\pst@multidipole@LED + \else + /red&\ifx\/emph&component/_name" #1%" + /red&\let\next\pst@multidipole@/emph&component/_name"" + /red&\else" + \let\next\ignorespaces + \pst@multidipole@output + /red&\fi" + \fi + \fi + \fi + % Extract form \pst@multidipole@ + % ... +\end{Verbatim} +and that's it! All you have to do then is send your modified \texttt{pst-circ.tex} to +me and it will become part of the official release of \CircPackage. + +\textbf{Important:} Pay attention to the comment character \Verb+%+ +at the end of lines. They are \emph{very} important in order to avoid spurious blanks. + +\section{Acknowledgements} + +We thank of course Manuel Luque for his original work on pst-circ and for his circuit +drawings: this wouldn't have been possible without him. As usual, Denis Girou gave us a +precious hand with some dark tricks of \TeX{} and PSTricks. Jean-C\^ome Charpentier +wrote the outline of \cs{multidipole} (a story about riri, fifi and loulou\dots). +Thanks also to Douglas Waud. + +\end{document} diff --git a/Master/texmf-dist/doc/generic/pst-ghsb/README b/Master/texmf-dist/doc/generic/pst-ghsb/README new file mode 100644 index 00000000000..37be37827fa --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-ghsb/README @@ -0,0 +1,25 @@ + ------------------------------------------------ + | pst-ghsb: PSTricks package for HSB gradients | + | | + | Version 1.2 (June 05, 2004) | + | Denis Girou <Denis.Girou@idris.fr> | + ------------------------------------------------ + + + + * Install pst-ghsb.sty and pst-ghsb.tex in one of your TeX input directories + + * Install pst-ghsb.pro in one of your DVI to PostScript converter input +directories + + * As the programmation and usage are stricly modeled on the `pst-grad' +package, there is no documentation but only two test files: t-ghsb.tex +and t2-ghsb.tex + + * It must be considered today (September, 1998) as superceded +by the `pst-slpe' package from Martin Giese. Users of `pst-ghsb' +are encouraged to migrate. + +-- +Denis Girou (updated September 15, 1998) +Herbert Voss (updated June 23, 2004) diff --git a/Master/texmf-dist/doc/generic/pst-ghsb/t-ghsb.pdf b/Master/texmf-dist/doc/generic/pst-ghsb/t-ghsb.pdf Binary files differnew file mode 100644 index 00000000000..a38678f945b --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-ghsb/t-ghsb.pdf diff --git a/Master/texmf-dist/doc/generic/pst-ghsb/t-ghsb.tex b/Master/texmf-dist/doc/generic/pst-ghsb/t-ghsb.tex new file mode 100644 index 00000000000..c7f30a91c1d --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-ghsb/t-ghsb.tex @@ -0,0 +1,33 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -*- Mode: Latex -*- %%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% t-ghsb.tex --- Test of HSB mode gradients +%% +%% Author : Denis GIROU (CNRS/IDRIS - France) <Denis.Girou@idris.fr> +%% Created the : Wed May 14 18:51:17 1997 +%% Last mod. by : Denis GIROU (CNRS/IDRIS - France) <Denis.Girou@idris.fr> +%% Last mod. the : Thu Jan 29 17:18:16 1998 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\documentclass{article} + +\usepackage{pst-ghsb} + +\newcommand{\Fig}[1][]{% +\begin{pspicture}(5.5,5.5) + \psframe[#1](5,5) +\end{pspicture}} + +\newhsbcolor{ColorA}{0 0 0.7} +\newhsbcolor{ColorB}{0 1 0.7} +\newhsbcolor{ColorC}{.5 0.8 0} +\newhsbcolor{ColorD}{.5 0.8 1} + +\pagestyle{empty} + +\begin{document} + +\psset{fillstyle=gradient,gradientHSB=true} + +\Fig[gradmidpoint=1,gradbegin=ColorA,gradend=ColorB] +\Fig[gradmidpoint=0.5,gradbegin=ColorC,gradend=ColorD] + +\end{document} diff --git a/Master/texmf-dist/doc/generic/pst-ghsb/t2-ghsb.pdf b/Master/texmf-dist/doc/generic/pst-ghsb/t2-ghsb.pdf Binary files differnew file mode 100644 index 00000000000..3f7a33b9f93 --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-ghsb/t2-ghsb.pdf diff --git a/Master/texmf-dist/doc/generic/pst-ghsb/t2-ghsb.tex b/Master/texmf-dist/doc/generic/pst-ghsb/t2-ghsb.tex new file mode 100644 index 00000000000..474ab389a98 --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-ghsb/t2-ghsb.tex @@ -0,0 +1,68 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -*- Mode: Latex -*- %%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% t2-ghsb.tex --- Test of HSB mode gradients +%% +%% Author : Denis GIROU (CNRS/IDRIS - France) <Denis.Girou@idris.fr> +%% Created the : Mon May 12 18:03:18 1997 +%% Last mod. by : Denis GIROU (CNRS/IDRIS - France) <Denis.Girou@idris.fr> +%% Last mod. the : Thu Jan 29 17:18:33 1998 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\documentclass{article} + +\usepackage{pst-grad} +\usepackage{pst-ghsb} + +\newcommand{\Fig}[1][]{% +\begin{pspicture}(5.5,5.5) + \psframe[#1](5,5) +\end{pspicture}} + +\newhsbcolor{ColorA}{0.7 0.1 0.8} +\newhsbcolor{ColorB}{0.7 0.9 0.8} +\newhsbcolor{ColorC}{0 0 0} +\newhsbcolor{ColorD}{0 0 1} +\newhsbcolor{ColorE}{0 0 0.5} +\newhsbcolor{ColorF}{0 1 0.5} +\newhsbcolor{ColorG}{0 0 0.5} +\newhsbcolor{ColorH}{0.99999 0 0.5} % As it's cycliç 1=0 ! +\newhsbcolor{ColorI}{1 1 1} +\newhsbcolor{ColorJ}{1 0 0} +\newhsbcolor{ColorK}{0.99999 1 1} % As it's cyclic 1=0 ! +\newhsbcolor{ColorL}{0 1 0} +\newhsbcolor{ColorM}{0.99999 1 1} % As it's cyclic 1=0 ! +\newhsbcolor{ColorN}{0 0 1} +\newhsbcolor{ColorO}{0 0.6 0.7} +\newhsbcolor{ColorP}{0.99999 0.7 0.7} % As it's cyclic 1=0 ! +\newhsbcolor{ColorQ}{0.3 0 0.8} +\newhsbcolor{ColorR}{0.3 1 0.8} +\newhsbcolor{ColorS}{0.6 0.3 0} +\newhsbcolor{ColorT}{0.6 0.3 1} + +\textheight=29cm +\textwidth=20cm +\oddsidemargin=0cm + +\pagestyle{empty} + +\begin{document} + +\psset{fillstyle=gradient,gradmidpoint=1} + +\Fig[gradbegin=yellow,gradend=green] +\Fig[gradientHSB=true,gradbegin=ColorA,gradend=ColorB] +\Fig[gradbegin=green,gradend=yellow] + +\psset{gradientHSB=true} +\Fig[gradbegin=ColorC,gradend=ColorD] +\Fig[gradbegin=ColorE,gradend=ColorF] +\Fig[gradbegin=ColorG,gradend=ColorH] + +\Fig[gradbegin=ColorI,gradend=ColorJ] +\Fig[gradbegin=ColorK,gradend=ColorL] +\Fig[gradbegin=ColorM,gradend=ColorN] + +\Fig[gradbegin=ColorO,gradend=ColorP] +\Fig[gradbegin=ColorQ,gradend=ColorR] +\Fig[gradbegin=ColorS,gradend=ColorT] + +\end{document} diff --git a/Master/texmf-dist/doc/generic/pst-optic/Changes b/Master/texmf-dist/doc/generic/pst-optic/Changes new file mode 100644 index 00000000000..651d1e9e01a --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-optic/Changes @@ -0,0 +1,7 @@ +---- pst-optic.tex +0.92 2004-11-08 spurious blank +0.91 2004-10-23 use pst-xkey instead of pst-key + +---- pst-optic.sty + 2004-11-09 new version to get a TeX output + of the used version
\ No newline at end of file diff --git a/Master/texmf-dist/doc/generic/pst-optic/README b/Master/texmf-dist/doc/generic/pst-optic/README new file mode 100644 index 00000000000..7fba0811a5d --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-optic/README @@ -0,0 +1,34 @@ +%% Package `pst-optic.tex' +%% +%% Manuel Luque <Mluque5130@aol.com> (France) +%% Herbert Voss <voss@perce.de> (Germany) +%% +%% 2003-02-16 +%% + +Save the files + +pst-optic.sty +pst-optic.tex + +in any place, where latex or any other TeX program will find it. +If you like to get the documentation file in another format run + +latex pst-optic-doc.tex +bibtex pst-optic.doc +latex pst-optic-doc.tex +dvips pst-optic-doc.dvi + +to get a PostScript file. But pay attention, that the pst-optic +files are saved in the above mentioned way, before you run +latex on the documentation file. + +It is nearly the same for the example file +pst-optic-examples.tex + + +The intermediate DVI file works only with viewers which can +interprete the embedded PostScript code, like the one from KDE. + +For another PDF output read the Introduction from +the documentation. diff --git a/Master/texmf-dist/doc/generic/pst-optic/optic.bib b/Master/texmf-dist/doc/generic/pst-optic/optic.bib new file mode 100644 index 00000000000..a684c82d02a --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-optic/optic.bib @@ -0,0 +1,56 @@ +@Book{PostScript, + Author = {Kollock, Nikolai G.}, + Title = {PostScript richtig eingesetzt: vom Konzept zum + praktischen Einsatz}, + Publisher = {IWT}, + Address = {Vaterstetten}, + year = 1989, +} + +@Manual{pstricks, + Title = {PSTricks - {\PS} macros for Generic TeX}, + Author = {Timothy Van Zandt}, + Organization = {}, + Address = {\url{http://www.tug.org/application/PSTricks}}, + Note = {}, + year = 1993, +} + + +@Manual{pdftricks, + Title = {PSTricks Support for pdf}, + Author = {Herbert Voss}, + Organization = {}, + Address = {\url{http://www.educat.hu-berlin.de/~voss/lyx/pdf/pdftricks.phtml}}, + Note = {}, + year = 2002, +} + +@Manual{miwi, + Title = {References for \TeX{} and Friends}, + Author = {Michael Wiedmann and Peter Karp}, + Organization = {}, + Address = {\url{http://www.miwie.org/tex-refs/}}, + Note = {}, + year = 2003, +} + + +@Manual{pstlens:2001, + Title = {PST-lens - {\PS} macros for Generic TeX}, + Author = {Denis Girou and Manuel Luque}, + Organization = {}, + Address = {\url{ftp://ftp.dante.de/tex-archive/graphics/pstricks/contrib/pst-lens/}}, + Note = {}, + year = 2001, +} + +@Manual{pstoptic:2001, + Title = {Lentilles convergentes: {PST}-optic v. 0.2}, + Author = {Manuel Luque}, + Organization = {}, + Address = {\url{http://members.aol.com/ManuelLuque2/optique.htm}}, + Note = {}, + year = 2001, +} + diff --git a/Master/texmf-dist/doc/generic/pst-optic/pst-optic-doc.pdf b/Master/texmf-dist/doc/generic/pst-optic/pst-optic-doc.pdf Binary files differnew file mode 100644 index 00000000000..e762e4c88ab --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-optic/pst-optic-doc.pdf diff --git a/Master/texmf-dist/doc/generic/pst-optic/pst-optic-doc.tex b/Master/texmf-dist/doc/generic/pst-optic/pst-optic-doc.tex new file mode 100644 index 00000000000..67b82d1e258 --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-optic/pst-optic-doc.tex @@ -0,0 +1,1696 @@ +\documentclass[12pt]{article} +\usepackage[T1]{fontenc} +\usepackage[latin1]{inputenc} +\usepackage[vtex]{geometry} +\usepackage{graphicx} +\usepackage{subfigure} +\usepackage{pstcol} +\usepackage{pst-optic} +\usepackage{pst-text} +\usepackage{url} +\usepackage{amsmath} +\usepackage{tabularx} +\usepackage{lscape} +\usepackage{fancyhdr} +\pagestyle{fancy} +\lfoot{\small\ttfamily\jobname.tex} +\cfoot{} +\rfoot{} +\renewcommand{\headrulewidth}{0pt} +\renewcommand{\footrulewidth}{0pt} +\usepackage{listings} +\lstset{language=TEX,basicstyle=\ttfamily\footnotesize,% + extendedchars=true,numbers=left,numberstyle=\tiny} +\usepackage{multicol} +\let\myPart\part +\renewcommand{\part}[1]{% + \clearpage\myPart{#1}% +} +\newcommand{\PS}{PostScript} +\newcommand\CMD[1]{\texttt{\textbackslash#1}} +\psset{subgriddiv=0,gridlabels=7pt,griddots=5} +\usepackage[vtex]{hyperref} + +\begin{document} +\author{Manuel Luque\thanks{Mluque5130@aol.com} \and Herbert Voß\thanks{voss@perce.de}} +\date{2003/02/15} +\title{Lenses and Mirrors: PST-optic v0.9} +\maketitle + + +\tableofcontents + + +\section*{Introduction} + +\verb|pstricks| writes pure PostScript\cite{PostScript} code, so it is not possible to run \TeX{} files with pdf\LaTeX{} when there are pstricks macros in the document. If you still need a PDF output use the package \verb|pdftricks.sty|\cite{pdftricks} or the for Linux free available program \verb|vlatex| (\url{http://www.micropress-inc.com/linux/}) or build the PDF with \verb|ps2pdf| (\verb|dvi|$\rightarrow$\verb|ps|$\rightarrow$\verb|pdf|). +\par +If you need package \verb|graphicx.sty| load it before any \verb|pstricks| package. You do not need to load \verb|pstricks.sty|, it will be done by \verb|pst-optic| by default. + +\vspace{\fill} +This PDF file was created with the \textbf{vlatex} program from the free available \textit{VTeX/Lnx v7.530 - the VTeX distribution for Linux (x86)}. + +\part{General Options} + +All options are by default documentwide valid but not supported by all macros. Table \ref{tab:generalOptions} shows the general ones. Others are shown in table \ref{tab:defaultLens} and \ref{tab:defaultSpiegel}. + +\begin{table}[!htb] + \centering + \begin{tabular}{l|l|l} + \textbf{Option} & \textbf{Name} & \textbf{Default}\\\hline + Left value of the picture in cm & xLeft & -7.5\\ + Right value of the picture in cm & xRight & 7.5\\ + Lowest value of the picture in cm & xBottom & -3\\ + Highest value of the picture in cm & xTop & 3\\ + x-Offset & XO & 0\\ + y-Offset & YO & 0\\ + Node A as string & nameA & A\\ + Angle A in degrees & spotA & 270\\ + Node B as string & nameB & B\\ + Angle B in degrees & spotB & 270\\ + Node F as string & nameF & F\\ + Angle F in degrees & spotF & 270\\ + Node O as string & nameO & O\\ + Angle O in degrees & spotO & 225\\ + Node A' as string & nameAi & A'\\ + Angle A' in degrees & spotAi & 90\\ + Node B' as string & nameBi & B'\\ + Angle B' in degrees & spotBi & 270\\ + Node F' as string & nameFi & B'\\ + Angle F' in degrees & spotFi & 270\\ + Ray color & rayColor & black\\\hline + \end{tabular} + \caption{General options and the defaults}\label{tab:generalOptions} +\end{table} + +\verb|pst-optic| puts the lens and mirror macros in an own \verb|pspicture| environment. The star version enables the clipping option of \verb|pstricks|: + +\begin{lstlisting} +\begin{pspicture}*(xLeft,yBottom)(xRight,yTop) + \lens[% + focus=2,OA=-3,AB=1,XO=0,YO=0,% + xLeft=-7.5,xRight=7.5,yBottom=-3,yTop=3] +\end{pspicture} +\end{lstlisting} + +If you need other values for the \verb|pspicture| environment, then use the \verb|\rput| command to place the macro at any position. + +\begin{lstlisting} +\begin{pspicture}(-5,-1.5)(7,4) + \rput(1.5,1.5){% + \lens[lensType=DVG,lensGlass=true,% + lensWidth=0.5,rayColor=red]} +\end{pspicture} +\end{lstlisting} + +\par +\begin{center} +\begin{pspicture}(-5,-1.5)(7,4) + \psgrid[subgriddiv=0,gridlabels=5pt,griddots=5] + \rput(1.5,1.5){\scalebox{0.75}{\lens[lensType=DVG,% + lensGlass=true,lensWidth=0.5,rayColor=red]}} +\end{pspicture} +\end{center} +\par + + + +\part{Lenses} + +There are macros for the convergent and divergent lens +\begin{description} + \item \verb|\lens[CVG]| \textbf{C}on\textbf{v}er\textbf{g}ent (Collecting lens ) - default + \item \verb|\lens[DVG]| \textbf{D}i\textbf{v}er\textbf{g}ent (Scatter lens ) +\end{description} + +\section{The Coordinates of the predefined Nodes} + +Figure \ref{fig:nodes} shows the coordinates of the predefined nodes (see table \ref{tab:generalOptions}). + +\begin{lstlisting} +\begin{pspicture}*(-8,-3.25)(8,3.25) + \rput(0,0){% + \lens[drawing=false] + \psline[linewidth=1pt](xLeft)(xRight) + \qdisk(A){1.5pt} + \qdisk(B){1.5pt} + \qdisk(A'){1.5pt}\qdisk(B'){1.5pt} + \qdisk(F){1.5pt}\qdisk(F'){1.5pt} + \qdisk(O){1.5pt}\qdisk(I){1.5pt} + \qdisk(I'){1.5pt}\qdisk(I1){1.5pt} + \qdisk(I2){1.5pt} + \uput[270](A){A}\uput[90](B){B} + \uput[270](F){F}\uput[0](I){I} + \uput[0](I'){$\mathrm{I'}$}\uput[270](F'){$\mathrm{F'}$} + \uput[270](B'){$\mathrm{B'}$}\uput[90](A'){$\mathrm{A'}$} + \uput[180](I1){I1}\uput[0](I2){I2}% + } +\end{pspicture} +\end{lstlisting} + + +\begin{figure}[!htb] +\resizebox{\textwidth}{!}{% +\begin{pspicture}*(-8,-3.25)(8,3.25) + \rput(0,0){% + \lens[drawing=false] + \psline[linewidth=1pt](xLeft)(xRight) + \qdisk(A){1.5pt} + \qdisk(B){1.5pt} + \qdisk(A'){1.5pt}\qdisk(B'){1.5pt} + \qdisk(F){1.5pt}\qdisk(F'){1.5pt} + \qdisk(O){1.5pt}\qdisk(I){1.5pt} + \qdisk(I'){1.5pt}\qdisk(I1){1.5pt} + \qdisk(I2){1.5pt} + \uput[270](A){A}\uput[90](B){B}\uput[270](F){F}\uput[0](I){I} + \uput[0](I'){$\mathrm{I'}$}\uput[270](F'){$\mathrm{F'}$} + \uput[270](B'){$\mathrm{B'}$}\uput[90](A'){$\mathrm{A'}$} + \uput[180](I1){I1}\uput[0](I2){I2}% + } + \psgrid[subgriddiv=0,griddots=4,gridlabels=7pt] +\end{pspicture}% +} +\caption{Coodinates of the predefined Nodes}\label{fig:nodes} +\end{figure} + +\section{The Lens Type} + +\begin{figure}[htb] + \centering + \scalebox{0.75}{\lens[lensType=CVG]}\vspace{-0.5cm} + \caption{\texttt{\textbackslash lens[lensType=CVG]} (Collecting lens)}% + \label{fig:defaultCVG} + + \scalebox{0.75}{\lens[lensType=DVG]}\vspace{-0.5cm} + \caption{\texttt{\textbackslash lens[lensType=DVG]} (Scatter lens)}% + \label{fig:defaultDVG} +\end{figure} + +\par + +Using \verb|\lens[<lensType>]| gives the in figure \ref{fig:defaultCVG} and \ref{fig:defaultDVG} shown lenses with the default values from table \ref{tab:defaultLens}. +\par + +\begin{table}[!htb] + \centering +\begin{minipage}{\columnwidth} + \centering + \begin{tabular}{l|l|l} + \textbf{Option} & \textbf{Name} & \textbf{Default}\\\hline + Lense type & lensType & CVG\\ + Lense height in cm & lensHeight & 5cm\\ + Lense width in cm & lensWidth & 0.5cm\footnotemark\\ + vertical scale (obsolet) & lensScale& 1\\ + View the lens & lensGlass& false\\ + Second lens & lensTwo & false\\ + Focus in cm & focus & 2\\ + Distance $\mathrm{\overline{OA}}$& OA & -4\\ + Distance $\mathrm{\overline{AB}}$& AB & 1.5\\ + Lens color & lenscolor& black\\ + Arrow length in cm & lensarrowsize &0.2\\ + Arrow inset in cm & lensarrowinset&0.5\\ + \end{tabular} + \caption{Available options for lenses with the defaults}\label{tab:defaultLens} +\footnotetext{\textsuperscript{1} only for \texttt{lensGlass=true}, otherwise set to \texttt{2\textbackslash pslinewidth}} +\end{minipage} +\end{table} + +The origin of the coordinate system is by default vertically and horinzontally symmetric. If you want to place the lens at another coordinates then define your own \verb|pspicture|-environment and use the \verb|\rput|-command: + +\begin{lstlisting} +\begin{pspicture}*(-7.5,-3)(7.5,3) + \rput(0,0){\lens[...]} +\begin{pspicture} +\end{lstlisting} + +The star version enables the clipping option. + + +\section{\CMD{Transform}} + +The \verb|Transform|-macro renames all existing nodes in names with an additional "{}1"{}. Table \ref{tab:Transform} shows a list of all nodes. \verb|Transform| also defines a new node \verb|factice| with the coordinates \verb|(XO1,YO1)|. The renaming of all nodes makes it easier to handle objects with more than one lens. With the option \verb|lensTwo=true| it is possible to chain the different rays of the lenses (figure \ref{fig:lensTwo}). + +\par + +\begin{table}[!htb] +\addtolength{\tabcolsep}{-3pt} +\centering +{\small\begin{tabular}{l|lllllllllllll} +\textbf{Alt}& A & B & A' & B' & O & F & F' & I & I' & XO & YO & OA' & A'B'\\\hline +\textbf{Neu} &A1& B1& A'1& B'1& O1& F1& F'1& I1& I'1& XO1& YO1& O1A1'& A'1B'1 +\end{tabular}} +\addtolength{\tabcolsep}{3pt} +\caption{Renaming of the nodes after calling the macro \texttt{\textbackslash Transform}}\label{tab:Transform} +\end{table} + + +\begin{figure}[htb] +\subfigure[Definition of two unchained lenses]{% +\resizebox{0.49\textwidth}{!}{% +\begin{pspicture}*(-7.5,-3)(7.5,3) +\rput(0,0){% + \lens[lensScale=0.6,XO=-4,% + focus=1,OA=-2,lensGlass=true, lensWidth=0.5]% +} +%\Transform +\rput(0,0){% + \lens[lensScale=1.2,XO=2,focus=2,% +% lensTwo=true,% + lensGlass=true,lensWidth=0.5]% +} +\end{pspicture} +}}\hfill% +\subfigure[Definition of two chained lenses with \texttt{\textbackslash lens[...] \textbackslash Transform \textbackslash lens[...]} and \texttt{lensTwo-Option}]{% +\resizebox{0.49\textwidth}{!}{% +\begin{pspicture}*(-7.5,-3)(7.5,3) +\rput(0,0){% + \lens[lensScale=0.6,XO=-4,% + focus=1,OA=-2,lensGlass=true, lensWidth=0.5]% +} +\Transform +\rput(0,0){% + \lens[lensScale=1.2,XO=2,focus=2,% + lensTwo=true,% + lensGlass=true,lensWidth=0.5]% +} +\end{pspicture} +}} + +\subfigure[Definition of two chained lenses and an additional modification of the node labels. \label{fig:lensTwoC}]{% +\resizebox{\textwidth}{!}{% +\begin{pspicture}*(-7.5,-3)(7.5,3) +\rput(0,0){% + \lens[lensScale=0.6,XO=-4,% + nameF=F_1,nameA=A_1,nameB=B_1,% + nameFi=F'_1,nameAi={ },nameBi={},nameO=O_1,% + focus=1,OA=-2,lensGlass=true, lensWidth=0.5]% +} +\pspolygon[style=rayuresJaunes,linestyle=none](B)(I)(B')(I')(B) +\Transform +\rput(0,0){% + \lens[lensScale=1.2,XO=2,focus=2,% + nameA=A'_1,spotA=90,nameB=B'_1,spotB=270,% + nameO=O_2,nameAi=A'_2,spotAi=270,% + nameBi=B'_2,spotBi=90,nameF=F_2,nameFi=F'_2,% + lensTwo=true,% + lensGlass=true,lensWidth=0.5]% +} +\pspolygon[style=rayuresJaunes,linestyle=none](B)(I)(B')(I')(B) +\end{pspicture} +}} + +\caption{The meaning of the \texttt{\textbackslash Transform}-Macro with the default labels}\label{fig:lensTwo} +\end{figure} + +\begin{lstlisting} +\begin{pspicture}*(-7.5,-3)(7.5,3) +\rput(0,0){% + \lens[lensScale=0.6,XO=-4,% + nameF=F_1,nameA=A_1,nameB=B_1,% + nameFi=F'_1,nameAi={ },nameBi={},nameO=O_1, + focus=1,OA=-2,lensGlass=true, lensWidth=0.5]% +} +\pspolygon[style=rayuresJaunes,linestyle=none](B)(I)(B')(I')(B) +\Transform +\rput(0,0){% + \lens[lensScale=1.2,XO=2,focus=2,% + nameA=A'_1,spotA=90,nameB=B'_1,spotB=270,% + nameO=O_2,nameAi=A'_2,spotAi=270,% + nameBi=B'_2,spotBi=90,nameF=F_2,nameFi=F'_2,% + lensTwo=true,% + lensGlass=true,lensWidth=0.5]% +} +\pspolygon[style=rayuresJaunes,linestyle=none](B)(I)(B')(I')(B) +\end{pspicture} +\end{lstlisting} + +\section{\CMD{rayInterLens}} + +This macro is only useful for a two-lens-system. Figure \ref{fig:RayInter} shows such a system. The nodes \verb|B1, I11, F'1, B'1| are predefined by the \verb|lens|-macro. To draw the two rays from the left lense via the node \verb|B'1| to the second lens, we need the coordinates of these points. \verb|\rayInterLense| defines such nodes. The Syntax: +{\small\begin{verbatim} +\rayInterLense(StartNode)(IntermediatNode)(LensDistance){LensNode} +\end{verbatim}} + +For the node of figure \ref{fig:RayInter} we have + +\begin{lstlisting} +\rayInterLens(I11)(B'1){4}{Inter1L2} +\psline(B1)(I11)(B'1)(Inter1L2) +\rayInterLens(O1)(B'1){4}{Inter2L2} +\psline(B1)(O1)(B'1)(Inter2L2) +\end{lstlisting} + +The two parallel lines are drawn with the \verb|\Parallel|-Macro. + +\begin{figure}[!htb] +\resizebox{\textwidth}{!}{% +\begin{pspicture}*(-7.5,-4)(7.5,4) +\rput(0,0){% + \lens[focus=1.5,OA=-2,AB=0.6,XO=-5,lensGlass=true,% + yBottom=-4,yTop=4,drawing=false,lensWidth=0.5,lensScale=0.5,% + nameF=F_1,nameFi=F'_1]% + \psline[linewidth=1pt](xLeft)(xRight) +} +\Transform +\rput(0,0){% + \lens[focus=2,XO=4,lensGlass=true,% + yBottom=-4,yTop=4,drawing=false,lensWidth=0.5,lensHeight=7,% + nameF=F_2,nameFi=F'_2,spotF=90,spotFi=90]% + } +\psline{->}(A1)(B1)\psline{->}(A'1)(B'1) +\psset{linecolor=red} +\uput[45](B1){B1} +\uput[90](O){O} +\uput[225](O1){O1} +\uput[45](I11){I11} +\uput[45](B'1){$B'_1$} +\rayInterLens(I11)(B'1){4}{Inter1L2} +\rayInterLens(O1)(B'1){4}{Inter2L2} +\uput[350](Inter1L2){Inter1L2} +\psline(B1)(I11)(B'1)(Inter1L2) +\psline(B1)(O1)(B'1)(Inter2L2) +\Parallel(B'1)(O)(Inter2L2){B2inftyRigth} +\Parallel(B'1)(O)(Inter1L2){B3inftyRigth} +\psset{length=-2,linestyle=dashed} +\Parallel(B'1)(O)(Inter2L2){B2inftyLeft} +\Parallel(B'1)(O)(Inter1L2){B3inftyLeft} +\psgrid[subgriddiv=0,griddots=5, gridlabels=7pt] +\psline[linestyle=dotted, linewidth=2pt,linecolor=black]{->}(0,-4)(0,+4) +\end{pspicture}% +} +\caption{Demonstration of \texttt{\textbackslash rayInterLens}\label{fig:RayInter}} +\end{figure} + +\clearpage + +\section{\CMD{telescope}} + +Figure {\ref{fig:defaultTele} shows the configuration of a telescope and table \ref{tab:defaultSpiegel} the special options for the \verb|\telescop|-Macro. + + +\begin{figure}[!htb] + \resizebox{\textwidth}{!}{\telescope}\vspace{-0.5cm} + \caption{\texttt{\textbackslash telescope}-Macro}% + \label{fig:defaultTele} +\end{figure} + + + + +\part{Mirrors} + +\section{options} +Figure \ref{fig:Spiegel} shows the available mirrors and table \ref{tab:defaultSpiegel} the possible options. + +\begin{table}[!htb] + \centering + \begin{tabular}{p{5cm}|l|l} + \textbf{Option} & \textbf{Name} & \textbf{Default}\\\hline + Left value of the picture in cm & xLeft & -0.5\\ + Right value of the picture in cm & xRight & 11\\ + Lowest value of the picture in cm & xBottom & -6\\ + Highest value of the picture in cm & xTop & 2.5\\ + Mirror height in cm & mirrorHeight & 5\\ + Mirror depth in cm & mirrorDepth & 1\\ + Mirror width in cm & mirrorWidth & 0.25\\ + Mirror color & mirrorColor & lightgray\\ + Ray color & rayColor & black\\ + Focus in cm + (only together with the option \verb|posMirrorTwo| senseful) & mirrorFocus & 8\\ + Position of the 2. mirror in cm & posMirrorTwo & 8\\ + Inclination of the 2. mirror in degrees & mirrorTwoAngle & 45\\ + Draw lines & drawing & true\\ + \end{tabular} + \caption{List of options for mirrors with the predefines values}\label{tab:defaultSpiegel} +\end{table} + + +\par + +\begin{figure}[!htb] +\centering +\subfigure[]{% +\begin{pspicture}*(-1,-3)(3,3) + \psgrid[subgriddiv=0,griddots=5] + \rput(0,0){\mirrorCVG[mirrorColor=gray,drawing=false]} + \psaxes[linestyle=dashed,linecolor=red,linewidth=1pt,arrows=->](0,0)(-1,-3)(3,3) + \qdisk(Focus){2pt}\rput(Focus){\rput(0,0.25){Focus}} + \pcline[arrows=|-|](-0.75,-2.5)(-0.75,2.5)\ncput*[nrot=:U]{mirrorHeight} + \pcline[arrows=|-|](0,2.75)(1,2.75)\rput[l](1.1,2.75){mirrorDepth} + \pcline[arrows=|-|](1,-2.75)(0.75,-2.75)\rput[l](1.1,-2.75){mirrorWidth} + \rput[l](1,-1){mirrorColor}\psline{<-}(0.2,-1)(0.8,-1) +\end{pspicture}% +}\hfill% +\subfigure[]{% +\begin{pspicture}*(-4,-3)(1,3) + \psgrid[subgriddiv=0,griddots=5] + \rput(0,0){\mirrorDVG[mirrorColor=gray,drawing=false]} + \psaxes[linestyle=dashed,linecolor=red,linewidth=1pt,arrows=->](0,0)(-4,-3)(1,3) + \qdisk(Focus){2pt}\rput(Focus){\rput(0,0.25){Focus}} + \pcline[arrows=|-|](.5,-2.5)(.5,2.5)\ncput*[nrot=:U]{mirrorHeight} + \pcline[arrows=|-|](-1.25,2.75)(-.25,2.75)\rput[r](-1.3,2.75){mirrorDepth} + \pcline[arrows=|-|](-1.25,-2.75)(-1,-2.75)\rput[r](-1.3,-2.75){mirrorWidth} + \rput[r](-2,-2){mirrorColor}\psline{->}(-2,-2)(-0.9,-2) +\end{pspicture} +}\hfill +\subfigure[\label{fig:planMirror}]{% +\begin{pspicture}(-2,-2)(2,2) + \psgrid[subgriddiv=0, gridlabels=5pt,griddots=4] + \pnode(-1.5,-1.5){M1} + \pnode(1,1){M2} + \uput[-90](M1){$\mathrm{M_1}$} + \uput[90](M2){$\mathrm{M_2}$} + \pnode(-1.5,1.5){A} + \planMirrorRay(A)(M1)(M2){A'} + \psline[linewidth=5pt](M1)(M2) + \pscircle*(A){2pt} + \uput[0](A){A} + \uput[0](A'){$\mathrm{A'}$} + \pscircle*(A'){2pt} + \psline[linestyle=dashed](A)(A') +\end{pspicture} +} +\caption{The different mirror macros: +a) \texttt{\textbackslash mirrorCVG} +b) \texttt{\textbackslash mirrorDVG} +c) \texttt{\textbackslash planMirrorRay}% +}\label{fig:Spiegel} +\end{figure} + + +\section{\CMD{mirrorCVG}} + +Figure \ref{fig:mirrorCVG} shows the default for the \verb|mirrorCVG|-macro with the predefined nodes anf three default rays. + + +\begin{figure}[!htb] +\begin{minipage}{0.48\textwidth} +\resizebox{\textwidth}{!}{% +\begin{pspicture}*(-1,-3)(6,3) + \psgrid[subgriddiv=0,gridlabels=5pt,griddots=5] + \rput(0,0){\mirrorCVG[rayColor=red]} +\end{pspicture}% +} +\caption{Parabolic Mirror \texttt{\textbackslash mirrorCVG}}\label{fig:mirrorCVG} +\end{minipage}\hfill +\begin{minipage}{0.48\textwidth} +\resizebox{0.9\textwidth}{!}{% +\begin{pspicture}*(-0.5,-4)(8,4) + \rput(0,0){\mirrorCVG[mirrorHeight=8,mirrorDepth=4,drawing=false]} + \multido{\rY=-4.00+0.25}{33}{% + \mirrorCVGRay[% + linewidth=0.5pt,% + mirrorHeight=8,% + mirrorDepth=4](10,\rY)(1,\rY){Dummy}% + } +\end{pspicture}% +} +\caption{Example}\label{fig:CVGAnwendung} +\end{minipage} +\end{figure} + +\section{\CMD{mirrorDVG}} + +Figure \ref{fig:mirrorDVG} shows the defaults for the macro \verb|mirrorDVG|-Makros. + +\begin{figure}[!htb] +\begin{minipage}{0.48\textwidth} +\resizebox{\textwidth}{!}{% +\begin{pspicture}*(-2,-3)(5,3) + \psgrid[subgriddiv=0,gridlabels=5pt,griddots=5] + \rput(0,0){\mirrorDVG[rayColor=red]} +\end{pspicture}% +}% +\caption{\texttt{\textbackslash mirrorDVG}}\label{fig:mirrorDVG} +\end{minipage}\hfill +\begin{minipage}{0.48\textwidth} +\resizebox{\textwidth}{!}{% +\begin{pspicture}*(-4,-4)(6,4) + \psgrid[subgriddiv=0,gridlabels=5pt,griddots=5] + \rput(0,0){\mirrorCVG[drawing=false,mirrorDepth=0.75,mirrorHeight=7]} + \qdisk(Focus){2pt} + \rput(6,2.5){\eye} + \pnode(1.75,-1.5){A}\pnode(1.75,1){B} + \psline[arrows=->,linewidth=4pt](A)(B) + \uput{0.2}[0](2,0){\Huge G} + \psset{linecolor=red} + \mirrorCVGRay[% + rayColor=red,% + mirrorHeight=7,% + mirrorDepth=0.75](A)(0,-0.9){P1} + \psOutLine[length=3](P1)(P1'){PEnd} + \psBeforeLine[length=5,linestyle=dashed](P1)(P1'){PBegin} + \mirrorCVGRay[rayColor=red,% + mirrorHeight=7,% + mirrorDepth=0.75](A)(0,-0.2){P2} + \psOutLine[length=3](P2)(P2''){PEnd} + \psBeforeLine[length=5,linestyle=dashed](P2)(P2'){PBegin} +% + \mirrorCVGRay[% + rayColor=red,% + mirrorHeight=7,% + mirrorDepth=0.75](B)(0,2.75){P3} + \psOutLine[length=3](P3)(P3'){PEnd} + \psBeforeLine[length=5,linestyle=dashed](P3)(P3'){PBegin} + \mirrorCVGRay[% + rayColor=red,% + mirrorHeight=7,% + mirrorDepth=0.75](B)(0,1.8){P4} + \psOutLine[length=3](P4)(P4'){PEnd} + \psBeforeLine[length=5,linestyle=dashed](P4)(P4'){PBegin} + \ABinterCD(P3)(P3')(P4)(P4'){A'} + \ABinterCD(P1)(P1')(P2)(P2'){B'} + \psline[arrows=->,linewidth=4pt,linestyle=dashed](B')(A') + \nodeBetween(A')(B'){G''} + \uput{0}[0](G''){\Huge G'} +\end{pspicture}% +} +\caption{Example as a magnifier}\label{fig:DVGAnwendung} +\end{minipage} +\end{figure} + + +\subsection{Drawing Rays in the Mirror Macros} + +There are two different macros for drawing rays: +\par +\bigskip +\begin{minipage}{\textwidth} +\verb|\mirrorCVGRay[options](Node1)(Node2){MirrorNode}|\\ +\verb|\mirrorDVGRay[options](Node1)(Node2){MirrorNode}| +\end{minipage} +\par +\bigskip +The \verb|MirrorNode| maybe +\par +\bigskip +\begin{tabularx}{\textwidth}{l|X} +MirrorNode & first point on the mirror\\ +MirrorNode' & end node or second point on the mirror if one more reflection happens\\ +MirrorNode'' & end node for a second reflection +\end{tabularx} +\smallskip + +If there are only one reflection, then \verb|MirrorNode'| and \verb|MirrorNode''| are the same. + +\subsection{\CMD{planMirrorRay}} + +The \verb|planMirrorRay|-Macro caculates the coordinates of a mirrored point. In figure \ref{fig:planMirror} is a given node \verb|A|, whereas \verb|A'| is calculated by the macro. The syntax is: +\par +\bigskip +\verb|\planMirrorRay(Mirrorbegin)(Mirrorend)(Originalpoint){New point}| +\bigskip +\par +The macro doesn't draw any lines, only the coordinates of the new point are saved by the new node name. + +\subsection{\CMD{symPlan}} + +\verb|\symPlan| allows to mirroring complete plain graphical objects along a virtual center line. Figure \ref{fig:symPlan} shows that this mirroring is a mathematical one and not a physical one. For more examples look at \cite{pstoptic:2001}. The syntax is: + +\par +\verb|\symPlan(node1)(node2){Graphicobject}| +\par + +The two nodes define the mirror axis and the graphics object is in most cases a user defined macro, f.ex: + +\begin{lstlisting} +\newcommand{\dtk}{% + \pstextpath(0,0){% + \psplot[linestyle=none]{0}{8}{x sqrt sqrt 2 mul}}% + {\Large Die \TeX{}nische Komödie von DANTE}% +} +\begin{pspicture}(-4.5,-2)(2.5,5) + \pnode(-4,-2){M1} \uput[-90](M1){M1} + \pnode(4,4){M2}\uput[90](M2){M2} + \psline[linewidth=5\pslinewidth,linecolor=lightgray](M1)(M2) + \rput(-3.5,-1.75){\dtk}% Original schreiben + \symPlan(M1)(M2){\rput(-3.5,-1.75){\dtk}}% Spiegelbild schreiben +\end{pspicture} +\end{lstlisting} + +This example needs the package \verb|pst-text.sty| for the \verb|\pstextpath| macro ( +\url{CTAN:/graphics/pstricks/generic/pst-text.tex}). + +\begin{figure}[!htb] +\centering +\newcommand{\dtk}{% + \pstextpath(0,0){% + \psplot[linestyle=none]{0}{8}{x sqrt sqrt 2 mul}}% + {\Large Die \TeX{}nische Komödie von DANTE}% +} +\begin{pspicture}(-4.5,-2.5)(2.5,5) + \pnode(-4,-2){M1} \uput[-90](M1){M1} + \pnode(4,4){M2}\uput[90](M2){M2} + \psline[linewidth=5\pslinewidth,linecolor=lightgray](M1)(M2) + \rput(-3.5,-1.75){\dtk} + \symPlan(M1)(M2){\rput(-3.5,-1.75){\dtk}} +\end{pspicture}% +\caption{Demonstration of the \texttt{\textbackslash symPlan}-Macro} \label{fig:symPlan} +\end{figure} + +\section{Beam Light} + +This macro is useful for the demonstration of high and low beam light. The syntax for this macro is: + +\par +\bigskip +\verb|\beamLight[<Options>]| +\par +\bigskip + +The predefined options especially for the \verb|pspicture|-coordinates are +\begin{lstlisting} +\setkeys{psset}{xLeft=-5,xRight=5,yBottom=-5,yTop=5,drawing=false}% the default +\end{lstlisting} + +You can place this macro with the \verb|\rput|-command at any place in your own \verb|pspicture|-environment. + +\begin{figure}[!htb] +\begin{minipage}{0.35\textwidth} + \begin{pspicture}(-1,-3)(3,3) + \rput(0,0){\beamLight} + \end{pspicture} +\begin{lstlisting} +\begin{pspicture}(-1,-3)(3,3) + \rput(0,0){\beamLight} +\end{pspicture} +\end{lstlisting} + \caption{\CMD{beamLight} without any Options} +\end{minipage}\hfill% +\begin{minipage}{0.5\textwidth} +\centering +\begin{pspicture}(-1,-5.5)(5,5.5) + \rput(0,0){% + \beamLight[mirrorDepth=4.75,% + mirrorWidth=0.1,% + mirrorHeight=10,% + linecolor=lightgray]} +\end{pspicture} + +\begin{lstlisting} +\begin{pspicture}(-1,-5.5)(5,5.5) + \rput(0,0){% + \beamLight[mirrorDepth=4.75,% + mirrorWidth=0.1,% + mirrorHeight=10,% + linecolor=lightgray]} +\end{pspicture}% +\end{lstlisting} +\caption{\CMD{beamLight} with Options} +\end{minipage} +\end{figure} + + + + +\part{Refraction} + +\section{\CMD{refractionRay}} +The syntax is + +\medskip +\verb|\refractionRay(A)(B)(C)(D){n1}{n2}{EndNode}| +\medskip + + +The macro uses the law of Snell + +\begin{align} +\frac{n_1}{n_2}&=\frac{\sin \beta}{\sin \alpha}\label{snell} +\end{align} + +where the $n_1$ and $n_2$ are the refraction numbers with the predefined values + +\begin{align} + n_1 &= 1 \\ + n_2 &= 1.41 +\end{align} + +and $\alpha$ the incoming abd $\beta$ the outgoing angle of the ray. + +The refractionnumbers have the internal names \verb|refractA| and \verb|refractB|. + +A total reflection instead of a refraction is possible, when the ray starts in a medium with a higher refrectionnumber. This happens when $\sin\beta>1$ in equ.\ref{snell}. In this case we have $\alpha =\beta$, a total reflection. + + +\begin{multicols}{2} + +\begin{pspicture}(5,5) + \psgrid + \pnode(0.5,1.5){A}\qdisk(A){2pt}\uput[90](A){A} + \pnode(2,3){B}\qdisk(B){2pt}\uput[90](B){B} + \psline[linewidth=1.5pt,linecolor=red]{->}(A)(B) + \pnode(3,5){C}\qdisk(C){2pt}\uput[225](C){C} + \pnode(4,0){D}\qdisk(D){2pt}\uput[135](D){D} + \pspolygon[fillstyle=solid,% + fillcolor=lightgray,% + linecolor=lightgray](C)(D)(5,0)(5,5)(C) + \psline[linewidth=1.5pt,linecolor=red](C)(D) + \rput(2,2){\Large$n_1$} + \rput(4.5,2){\Large$n_2$} + \refractionRay(A)(B)(C)(D){1}{4}{E} + \psline[linestyle=dashed,linecolor=red](B)(E) + \psline[linestyle=dashed,linecolor=red](E)(E') + \qdisk(E){2pt}\uput[-20](E){E} + \qdisk(E'){2pt}\uput[-90](E'){E'} +\end{pspicture} + + +The macro needs the values for the four nodes, the two refractionnumbers and the name for the end node. As you can see in the figure the end node of the ray is the intermediate point between the linear ray and the linear medium. The end node of the refracted ray has the same name with an additional single quotation mark. In the figure the macro was called as + +\medskip +\verb|\refractionRay(A)(B)(C)(D){1}{4}{E}| +\medskip + +\begin{align}n_1&<n_2\end{align} + +\end{multicols} + +It is no problem to draw a ray which is going straight through another medium. It can be done by using the macro twice as shown in the following examples. + + +\section{Total Reflection} + + + +\begin{multicols}{2} + +\begin{pspicture}(5,5) + \psgrid + \pnode(0.5,1.5){A} + \pnode(2,3){B} + \pnode(3,5){C} + \pnode(4,0){D} + \pspolygon[fillstyle=solid,% + fillcolor=lightgray,% + linecolor=lightgray](C)(D)(0,0)(0,5)(C) + \qdisk(A){2pt}\uput[90](A){A} + \qdisk(B){2pt}\uput[90](B){B} + \qdisk(C){2pt}\uput[225](C){C} + \qdisk(D){2pt}\uput[135](D){D} + \psline[linewidth=1.5pt,linecolor=red]{->}(A)(B) + \psline[linewidth=1.5pt,linecolor=red](C)(D) + \rput(2,2){\Large$n_1$} + \rput(4.5,2){\Large$n_2$} + \refractionRay(A)(B)(C)(D){4}{1}{E} + \psline[linestyle=dashed,linecolor=red](B)(E) + \psline[linestyle=dashed,linecolor=red](E)(E') + \qdisk(E){2pt}\uput[-20](E){E} + \qdisk(E'){2pt}\uput[-90](E'){E'} +\end{pspicture} + + +In the figure the macro was called as + +\medskip +\verb|\refractionRay(A)(B)(C)(D){4}{1}{E}| +\medskip + +\begin{align}n_1&>n_2\end{align} + +\end{multicols} + + + +\part{Spherical Optic} + + +\section{\CMD{lensSPH}} +\subsection{Convergent Lens} + + + +The syntax is + +\bigskip + +\verb|\lensSPH[<Options>]|\\ +\verb|\lensSPH[lensType=CVG,<Options>]| + +\bigskip + +Without any option it draws a spherical convergent lens: + +\bigskip +\lensSPH[lensType=CVG] +\bigskip + +It changes some default values for the options to: + + +\begin{tabular}{lll} +\textbf{Meaning} & \textbf{Name} & \textbf{Default}\\\hline +Object Distance in cm & OA & -7 \\ +Lens Height in cm & lensHeight & 6 \\ +Lens Width in cm & lensWidth & 1.5\\ +Refraction Number $n_2$ & refractB & 2 +\end{tabular} + + +\subsection{Divergent Lens} + +The syntax is + +\medskip +\verb|\lensSPH[lensType=DVG,<Options>]| +\medskip + +It draws a spherical divergent lens: + +\bigskip +\lensSPH[lensType=DVG,lensWidth=0.5] +\bigskip + +It changes some default values for the options in the same way as for the convergent lens. + + +\subsection{Options} + +The macro uses the law of Snell + +\begin{align} +\frac{n_1}{n_2}&=\frac{\sin \beta}{\sin \alpha} +\end{align} + +where the $n_1$ and $n_2$ are the refraction numbers with the predefined values + +\begin{align} + n_1 &= 1 \\ + n_2 &= 1.41 +\end{align} + +and $\alpha$ the incoming abd $\beta$ the outgoing angle of the ray. + +The refractionnumbers have the internal names \verb|refractA| and \verb|refractB|. + + +\section{\CMD{mirrorCVG}} + + +The syntax is + +\bigskip +\verb|\mirrorCVG[mirrorType=SPH]| +\bigskip + + +Without the option \verb|mirrorType=SPH| you'll get a parabolic mirror, which is the default. + +\mirrorCVG[mirrorType=SPH] + + + + + +\section{\CMD{mirrorDVG}} + +The syntax is + +\bigskip +\verb|\mirrorDVG[mirrorType=SPH]| +\bigskip + + + +Without the option \verb|mirrorType=SPH| you'll get a parabolic mirror (option PARA). +\par + +\mirrorDVG[mirrorType=SPH] + +\section{\CMD{ABinterSPHLens}} + +The syntax is + +\bigskip +\verb|\ABinterSPHLens(A)(B)(Center){NodeName}| +\bigskip + + +\begin{pspicture}(-6,-3)(6,3) + \rput(0,0){\lensSPH[lensType=CVG,lensHeight=8,lensWidth=3,drawing=false]} + \qdisk(Center){2pt}\uput[-90](Center){Center} + \qdisk(Center'){2pt}\uput[-90](Center'){Center'} + \pnode(-5,1){A}\qdisk(A){2pt}\uput[90](A){A} + \pnode(-3,0){B}\qdisk(B){2pt}\uput[90](B){B} + \psline[linewidth=1.5pt,linecolor=red]{->}(A)(B) + \pnode(5,-2.5){C}\qdisk(C){2pt}\uput[90](C){C} + \pnode(3,-2){D}\qdisk(D){2pt}\uput[90](D){D} + \psline[linewidth=1.5pt,linecolor=red]{->}(C)(D) + \rput(-4.5,2){\Large $n_1$} + \rput(0,2){\Large $n_2$} + \rput(4.5,2){\Large $n_1$} + \ABinterSPHLens(A)(B)(Center'){E} + \ABinterSPHLens(C)(D)(Center){F} + \psline[linestyle=dashed,linecolor=red](B)(E) + \psline[linestyle=dashed,linecolor=red](D)(F) + \qdisk(E){2pt}\uput[-20](E){E} + \qdisk(F){2pt}\uput[-90](F){F} + \psgrid +\end{pspicture} + +The macro needs two nodes for the rays, the coordinates/nodes of the center/middle of the sperical lens and a name of the intermediate node.In the figure the macro was called as + +\bigskip + +\verb|\ABinterSPHLens(A)(B)(Center'){E}| +\verb|\ABinterSPHLens(C)(D)(Center){F}| + +\bigskip + + +\section{\CMD{lensSPHRay}} + +The syntax is + +\bigskip +\verb|\lensSPHRay[Option](A)(B){refractA}{refractB}{NodeName}| +\bigskip + +This macro calculates the coordinates of the given ray $\overline{\mathrm{AB}}$ on its way into the lens. The only possible option \verb*rightRay=false|true*\footnote{Default is \texttt{false}} enables rays from the right to the left. There are still some problems with this option but try it out. + + + +\bigskip + +\begin{pspicture*}(-5,-3)(7,3) + \psgrid + \rput(0,0){\lensSPH[lensType=CVG,lensHeight=8,lensWidth=3,drawing=false]} + \qdisk(Center){2pt}\uput[-90](Center){Center} + \qdisk(Center'){2pt}\uput[-90](Center'){Center'} + \pnode(-4,1){A}\qdisk(A){2pt}\uput[90](A){A} + \pnode(-2,0.5){B}\qdisk(B){2pt}\uput[90](B){B} + \rput(-4.5,2.5){\Large $n_1$} + \rput(0,2.5){\Large $n_2=1.5$} + \rput(4,2.5){\Large $n_1=1$} + \multido{\rA=3+-0.5,\rB=2.5+-0.5}{9}{% + \lensSPHRay[rightRay=false](-4,\rA)(-2,\rB){1}{1.5}{F} + \psline[linewidth=1.5pt,linecolor=red]{->}(-4,\rA)(F) + \psline[linestyle=dashed,linecolor=red](-4,\rA)(F)(F')(F'') + \psOutLine[linestyle=dashed,linecolor=red,length=4.5](F')(F''){FEnd} + } + \psline[linewidth=1.5pt,linecolor=blue]{->}(A)(B) + \lensSPHRay[lensType=CVG](A)(B){1}{1.5}{E} + \psline[linestyle=dashed,linecolor=blue](B)(E)(E')(E'') + \qdisk(E){2pt}\uput[-20](E){E} + \qdisk(E'){2pt}\uput[-20](E'){E'} + \qdisk(E''){2pt}\uput[-20](E''){E''} +\end{pspicture*} + + +\bigskip + +And the same with $n_2=3$: + +\bigskip + + +\begin{pspicture*}(-5,-3)(7,3) + \psgrid + \rput(0,0){\lensSPH[lensType=CVG,lensHeight=8,lensWidth=3,drawing=false]} + \qdisk(Center){2pt}\uput[-90](Center){Center} + \qdisk(Center'){2pt}\uput[-90](Center'){Center'} + \pnode(-4,1){A}\qdisk(A){2pt}\uput[90](A){A} + \pnode(-2,0.5){B}\qdisk(B){2pt}\uput[90](B){B} + \rput(-4.5,2.5){\Large $n_1$} + \rput(0,2.5){\Large $n_2=3$} + \rput(4,2.5){\Large $n_1=1$} + \multido{\rA=3+-0.5,\rB=2.5+-0.5}{11}{% + \lensSPHRay[rightRay=false](-4,\rA)(-2,\rB){1}{3}{F} + \psline[linewidth=1.5pt,linecolor=red]{->}(-4,\rA)(F) + \psline[linestyle=dashed,linecolor=red](-4,\rA)(F)(F')(F'') + \psOutLine[linestyle=dashed,linecolor=red](F')(F''){FEnd} + } + \psline[linewidth=1.5pt,linecolor=blue]{->}(A)(B) + \lensSPHRay[lensType=CVG](A)(B){1}{3}{E} + \psline[linestyle=dashed,linecolor=blue](B)(E)(E')(E'') + \qdisk(E){2pt}\uput[-20](E){E} + \qdisk(E'){2pt}\uput[-20](E'){E'} + \qdisk(E''){2pt}\uput[-20](E''){E''} +\end{pspicture*} + + + + +\section{\CMD{reflectionRay}} + +The syntax is + +\bigskip +\verb|\reflectionRay[Option](A)(B){NodeName}| +\bigskip + +This macro calculates the coordinates of the given ray $\overline{\mathrm{AB}}$ on its way out of the mirror. The only senseful option is \verb$mirrorType=CVG|DVG$. The most important fact is that the point \verb|B| must be the one on the mirror. If you do not know it's coordinates you can use the macro \verb|ABinterSPHLens[lensType=CVG](A1)(A2)(Center){NodeName)|, which calculates the coordinates of the intermediate point. + +\bigskip + + +\begin{pspicture*}(-1,-3)(6,3) + \rput(0,0){% + \mirrorCVG[% + mirrorType=SPH,% + mirrorHeight=5,% + mirrorWidth=0.2,% + yBottom=-3,yTop=3,% + drawing=false,% + mirrorDepth=3]% + \qdisk(Center){2pt}\qdisk(Focus){2pt} + \uput[-90](Center){Center}\uput[-90](Focus){F} + \psline(O)(xRight) + } + \ABinterSPHLens(5,1)(3,1)(Center){C} + \reflectionRay[mirrorType=CVG-SPH](5,1)(C){D} + \qdisk(5,1){2pt}\uput[-90](5,1){A} + \qdisk(3,1){2pt}\uput[-90](3,1){B} + \qdisk(C){2pt}\uput[180](C){C} + \qdisk(D){2pt}\uput[45](D){D} + \psset{linewidth=1.5pt,linecolor=red,arrows=->} + \psline(5,1)(3,1) + \psline(3,1)(C) + \psline(C)(D) + \psgrid +\end{pspicture*} + + +\begin{lstlisting} +\begin{pspicture*}(-1,-3)(6,3) + \rput(0,0){% + \mirrorCVG[% + mirrorType=SPH,% + mirrorHeight=5,% + mirrorWidth=0.2,% + yBottom=-3,yTop=3,% + drawing=false,% + mirrorDepth=3]% + \qdisk(Center){2pt}\qdisk(Focus){2pt} + \uput[-90](Center){Center}\uput[-90](Focus){F} + \psline(O)(xRight) + } + \ABinterSPHLens(5,1)(3,1)(Center){C} + \reflectionRay[mirrorType=CVG-SPH](5,1)(C){D} + \qdisk(5,1){2pt}\uput[-90](5,1){A} + \qdisk(3,1){2pt}\uput[-90](3,1){B} + \qdisk(C){2pt}\uput[180](C){C} + \qdisk(D){2pt}\uput[45](D){D} + \psset{linewidth=1.5pt,linecolor=red,arrows=->} + \psline(5,1)(3,1) + \psline(3,1)(C) + \psline(C)(D) + \psgrid +\end{pspicture*} +\end{lstlisting} + + + +\section{Refraction at a Spherical Surface} + +\subsection[Simple Example]{Construction for finding the position of the image point P' of a point object P formed by refraction at a sperical surface} + + +\begin{pspicture*}(-10,-4)(3,4) + \psgrid[subgriddiv=0,griddots=5,gridlabels=7pt] + \rput(0,0){\lensSPH[% + lensType=CVG,% + lensHeight=12,% + lensWidth=10,% + yBottom=-6,yTop=6,xLeft=-6,xRight=6,% + drawing=false]} + \psset{linecolor=red,linewidth=1.5pt,dotstyle=|} + \pnode(-9,0){P}\psdots(P)\uput[-90](P){P} + \psline(P)(xRight) + \lensSPHRay(P)(-5,2){1}{9}{Q} + \psline(P)(Q)(Q') + \psdots(Q)\uput[90](Q){B} + \ABinterCD(Q)(Q')(0,0)(5,0){P'} + \psdots(Q')\uput[-90](P'){P'} + \psline[linewidth=0.5pt,linecolor=black](Center')(Q) + \psline[linewidth=0.5pt,linecolor=black](Q)(Q|0,0) + \psdots(Center')\uput[-90](Center'){C} +\end{pspicture*} + + +\bigskip + + +\begin{lstlisting} +\begin{pspicture}*(-10,-4)(3,4) + \psgrid[subgriddiv=0,griddots=5,gridlabels=7pt] + \rput(0,0){\lensSPH[% + lensType=CVG,% + lensHeight=12,% + lensWidth=10,% + yBottom=-4,yTop=4,xLeft=-5,xRight=5,% + drawing=false]} + \psset{linecolor=red,linewidth=1.5pt,dotstyle=|} + \pnode(-9,0){P}\psdots(P)\uput[-90](P){P} + \psline(P)(xRight) + \lensSPHRay(P)(-5,2){1}{9}{Q}% + \psline(P)(Q)(Q') + \psdots(Q)\uput[90](Q){B} + \ABinterCD(Q)(Q')(0,0)(5,0){P'} + \psdots(Q')\uput[-90](P'){P'} + \psline[linewidth=0.5pt,linecolor=black](Center')(Q) + \psline[linewidth=0.5pt,linecolor=black](Q)(Q|0,0) + \psdots(Center')\uput[-90](Center'){C} +\end{pspicture} +\end{lstlisting} + + +\subsection[Height of an Image]{Construction for determining the height of an image formed by refraction at a sperical surface} + +\begin{pspicture}*(-13,-3)(3,5) + \psgrid[subgriddiv=0,griddots=5,gridlabels=7pt] + \rput(0,0){\lensSPH[% + lensType=CVG,% + lensHeight=12,% + lensWidth=10,% + yBottom=-4,yTop=4,xLeft=-5,xRight=5,% + drawing=false]} + \psset{linecolor=red,linewidth=1.5pt,dotstyle=|} + \pnode(-12,0){P}\psdots(P)\uput[-90](P){P} + \pnode(-12,4){Q}\psdots(Q)\uput[90](Q){Q} + \psline[linecolor=blue,linewidth=3pt,arrows=->](P)(Q) + \psline(P)(xRight) + \lensSPHRay(Q)(Center'){1}{9}{S1}% + \lensSPHRay(Q)(-5,0){1}{9}{S2}% + \psline(Q)(S1') + \psline(Q)(S2)(S2') + \ABinterCD(Q)(S1')(S2)(S2'){Q'} + \pnode(Q'|0,0){P'} + \psline[linecolor=blue,linewidth=3pt,arrows=->](P')(Q') + \uput[90](P'){P'} + \uput[-90](Q'){Q'} + \psdots(Center')\uput[90](Center'){C} +\end{pspicture} + +\bigskip +\begin{lstlisting} +\begin{pspicture}*(-13,-3)(3,5) + \psgrid[subgriddiv=0,griddots=5,gridlabels=7pt] + \rput(0,0){\lensSPH[% + lensType=CVG,% + lensHeight=12,% + lensWidth=10,% + yBottom=-4,yTop=4,xLeft=-5,xRight=5,% + drawing=false]} + \psset{linecolor=red,linewidth=1.5pt,dotstyle=|} + \pnode(-12,0){P}\psdots(P)\uput[-90](P){P} + \pnode(-12,4){Q}\psdots(Q)\uput[90](Q){Q} + \psline[linecolor=blue,linewidth=3pt,arrows=->](P)(Q) + \psline(P)(xRight) + \lensSPHRay(Q)(Center'){1}{9}{S1}% + \lensSPHRay(Q)(-5,0){1}{9}{S2}% + \psline(Q)(S1') + \psline(Q)(S2)(S2') + \ABinterCD(Q)(S1')(S2)(S2'){Q'} + \pnode(Q'|0,0){P'} + \psline[linecolor=blue,linewidth=3pt,arrows=->](P')(Q') + \uput[90](P'){P'} + \uput[-90](Q'){Q'} + \psdots(Center')\uput[90](Center'){C} +\end{pspicture} +\end{lstlisting} + + + + +\part{Utility Macros} + +\section{\texttt{\textbackslash eye}} + +Syntax: + +\begin{verbatim} +\eye +\end{verbatim} +There are no Options for this symbol of an human eye (figure \ref{fig:auge}). + +\begin{figure}[htb] +\centering% +\begin{pspicture}(-1,-0.75)(1,0.75) + \rput(1,0){\eye} +\end{pspicture} +\caption{The \texttt{\textbackslash eye}-Macro}\label{fig:auge} +\end{figure} + +Use the \verb|\rput|-macro to put the eye elsewhere: + +\begin{lstlisting} +\begin{pspicture}(-1,-0.75)(1,0.75) + \rput(1,0){\eye} +\end{pspicture} +\end{lstlisting} + + + +\section{\texttt{\textbackslash Arrows}} + +Syntax: + +\begin{verbatim} +\Arrows[Options](NodeA)(NodeB) +\end{verbatim} + +\begin{table}[!htb] + \centering + \begin{tabular}{l|l|l} + \textbf{Option} & \textbf{Name} & \textbf{Standard}\\\hline + Offset for arrow start in cm & posStart & 0\\ + Length of the arrow in cm & length & 2\\\hline + \end{tabular} + \caption{Options for the \texttt{Arrows}-Macro}\label{tab:Arrows} +\end{table} + +\begin{figure}[!htb] +\centering +\begin{pspicture}(-3,-3)(3,3) +\psgrid[subgriddiv=0, griddots=5,gridlabels=5pt] +\psset{linecolor=red} +\Arrows[posStart=2,length=4](-3,-3)(3,3) +\qdisk(-3,-3){2pt}\uput[45](-3,-3){A} +\qdisk(3,3){2pt}\uput[-90](3,3){B} +\psset{linecolor=green} +\Arrows[linewidth=3pt,length=2](0,-3)(0,0.5) +\qdisk(0,-3){2pt}\uput[45](0,-3){A} +\qdisk(0,0.5){2pt}\uput[-90](0,0.5){B} +\psset{linecolor=blue} +\Arrows[linewidth=5pt,linestyle=dashed](3,0)(2,3) +\qdisk(3,0){2pt}\uput[-90](3,0){A} +\qdisk(2,3){2pt}\uput[-90](2,3){B} +\psset{linecolor=black} +\Arrows[posStart=1,linewidth=5pt,linestyle=dotted,length=3](-3,2)(1,2) +\qdisk(-3,2){2pt}\uput[-45](-3,2){A} +\qdisk(1,2){2pt}\uput[-90](1,2){B} +\end{pspicture} +\caption{Arrows Demo}\label{fig:Arrows} +\end{figure} + +The code for figure \ref{fig:Arrows}: + +\begin{lstlisting} +\Arrows[posStart=2,length=4](-3,-3)(3,3) +\Arrows[linewidth=3pt,length=2](0,-3)(0,0.5) +\Arrows[linewidth=5pt,linestyle=dashed](3,0)(2,3) +\Arrows[posStart=1,linewidth=5pt,linestyle=dotted,length=4](-3,2)(1,2) +\end{lstlisting} + +\section{\texttt{\textbackslash psOutLine}} + +Syntax: + +\begin{verbatim} +\psOutLine[Options](NodeA)(NodeB){EndNode} +\end{verbatim} + +The only special option is \verb|length=<avlue>|. All other which are possible for +\verb|\psline| can be used, too. + +\begin{figure}[htb] +\centering +\begin{pspicture}(-3,-3)(3,3) +\psgrid[subgriddiv=0, griddots=5,gridlabels=5pt] +\psset{linecolor=red, linewidth=1.5pt} +\psOutLine[length=3](-2,-2)(0,0){End} +\qdisk(-2,-2){2pt}\uput[80](-2,-2){A} +\qdisk(0,0){2pt}\uput[-45](0,0){B} +\qdisk(2.12,2.12){2pt}\uput[90](2.12,2.12){END} +% +\psset{linecolor=blue} +\psBeforeLine[length=3](1,0)(3,2){START} +\qdisk(3,2){2pt}\uput[80](3,2){B} +\qdisk(1,0){2pt}\uput[-45](1,0){A} +\qdisk(-1.12,-2.12){2pt}\uput[-90](-1.12,-2.12){START} +% +\end{pspicture} +\caption{psOutLine and psBeforeLine Demo}\label{fig:psOutLine} +\end{figure} + +The code for figure \ref{fig:psOutLine}: +\begin{lstlisting} +\psOutLine[length=3](-2,-2)(0,0){End} +\end{lstlisting} + + +\section{\texttt{\textbackslash psBeforeLine}} + +Syntax: + +\begin{verbatim} +\psBeforeLine[Options](NodeA)(NodeB){StartNode} +\end{verbatim} + +The only special option is \verb|length=<value>|. All other which are possible for +\verb|\psline| can be used, too. + + +The code for figure \ref{fig:psOutLine}: +\begin{lstlisting} +\psBeforeLine[length=3](0,0)(2,2){START} +\end{lstlisting} + +\section{\texttt{\textbackslash Parallel}} + +Syntax: + +\begin{verbatim} +\Parallel[Options](NodeA)(NodeB)(Start node){End node} +\end{verbatim} + +The only special option for \verb|Parallel| is \verb|length=<value>|. +The nodes \verb|nodeA| and \verb|nodeB| are known nodes of a given line and \verb|Start node| is the given node of a parallel line. \verb|End node| is the name of the calculated line end. The use of \verb|Parallel| is shown for an example (figure \ref{fig:Parallel}). + +\begin{lstlisting} +\begin{pspicture}*(-5,-3.5)(5,3.5) + \psgrid[subgriddiv=0,griddots=5] + \pnode(2,-2){FF}\qdisk(FF){1.5pt} + \pnode(-5,5){A} + \pnode(0,0){O} + \multido{\nCountA=-2.4+0.4}{9}{% + \Parallel[linecolor=red,length=9](O)(A)(0,\nCountA){P1} + \psline[linecolor=red](0,\nCountA)(FF) + \psOutLine[linecolor=red,length=9](0,\nCountA)(FF){P2} + } + \psline[linecolor=blue](A)(FF) + \psOutLine[linecolor=blue,length=5](A)(FF){END1} + \rput(0,0){% + \lens[yBottom=-3.5,yTop=3.5,lensGlass=true,% + lensHeight=6.5,% + drawing=false,spotFi=315,lensWidth=0.5]% + \psline[linewidth=1pt](xLeft)(xRight) + \psline[length=2,linewidth=2pt,arrows=->](F')(FF) + } +\end{pspicture} +\end{lstlisting} + +\begin{figure}[htb] +\centering +\begin{pspicture}*(-5,-3.5)(5,3.5) + \psgrid[subgriddiv=0,griddots=5] + \pnode(2,-2){FF}\qdisk(FF){1.5pt} + \pnode(-5,5){A} + \pnode(0,0){O} + \multido{\nCountA=-2.4+0.4}{9}{% + \Parallel[linecolor=red,length=9](O)(A)(0,\nCountA){P1} + \psline[linecolor=red](0,\nCountA)(FF) + \psOutLine[linecolor=red,length=9](0,\nCountA)(FF){P2} + } + \psline[linecolor=blue](A)(FF) + \psOutLine[linecolor=blue,length=5](A)(FF){END1} + \rput(0,0){% + \lens[yBottom=-3.5,yTop=3.5,lensGlass=true,lensHeight=6.25,% + drawing=false,spotFi=315,lensWidth=0.5]% + \psline[linewidth=1pt](xLeft)(xRight) + \psline[length=2,linewidth=2pt,arrows=->](F')(FF) + } +\end{pspicture} +\caption{The \texttt{\textbackslash Parallel}-Macro}\label{fig:Parallel} +\end{figure} + + +\section{\texttt{\textbackslash ABinterCD}} + +This macro is used by the \verb|\telescop| macro. It determines the intersection point of two lines, in this case a ray and the mirror axis. +Figure \ref{fig:ABinterCD} shows a part of figure \ref{fig:defaultTele}. Given are the points A, B (focus), C/D (mirror axis). We need the point E to draw the other rays for the ocular, which can be done with the \verb|\ABinterCD| macro. The syntax is: + +\par +\bigskip +\verb|\ABinterCD(A)(B)(C)(D){E}| +\par +\bigskip + +\begin{figure}[htb] +\centering +\begin{pspicture}*(-0.5,-2.25)(9,2.25) + \rput(0,0){% + \mirrorCVG[% + mirrorHeight=4,% + mirrorWidth=0.25,% + mirrorDepth=0.25,% + drawing=false]% + } + \mirrorCVGRay[% + mirrorHeight=4,% + mirrorWidth=0.25,% + mirrorDepth=0.25,% + drawing=false](8,1.25)(2,1.25){A} + \psline[linewidth=0.5\pslinewidth](9,0) + \rput{-45}(6,0){\mirrorTwo} + \qdisk(A){2pt}\uput[30](A){A} + \pnode(8,0){B} + \qdisk(B){2pt}\uput[-45](B){B} + \pnode(! 6 1 45 cos mul sub 1 45 sin mul){C} + \qdisk(C){2pt}\uput[90](C){C} + \pnode(! 6 1 45 cos mul add 1 45 sin mul neg){D} + \uput[-45](D){D}\qdisk(D){2pt} + \psline[linestyle=dashed](A)(B) + \ABinterCD(A)(B)(C)(D){Inter1}\qdisk(A){2pt} + \nodeBetween(A)(B){M}\qdisk(M){2pt} + {\psset{linecolor=red} + \qdisk(Inter1){2pt}\uput[220](Inter1){E}\uput[220](M){M}} +\end{pspicture} +\caption{\texttt{\textbackslash ABinterCD}-Makro}% +\label{fig:ABinterCD} +\end{figure} + + +\section{\texttt{\textbackslash nodeBetween}} + +This macro determines the coordinates of the center of a line. The syntax is: +\par +\verb|\nodeBetween(A)(B){C}| +\par + +Figure \ref{fig:ABinterCD} shows an example, where the node \verb|M| was determined by the \verb|\nodeBetween| macro. + + + +\section{\CMD{rotateNode}} +The syntax is + +\medskip +\verb|\rotateNode{NodeName}{Degrees}| +\medskip + +The coordinates of the node \verb|A| are changed to the new ones. Negative values are possible for rotating clockwise. + +\begin{multicols}{2} +\begin{pspicture}(4,4) + \psgrid + \pnode(3,1){A} + \qdisk(A){2pt}\uput[20](A){A} + \rotateNode(A){45} + \qdisk(A){2pt}\uput[20](A){A} + \psarc[linecolor=red,linewidth=0.5pt]{->}(0,0){3.16}{19.47}{64.47} + \rput(2,3.5){\CMD{rotateNode(A)\{45\}}} +\end{pspicture} + +\begin{lstlisting} +\begin{pspicture}(4,4) + \pnode(3,1){A} + \qdisk(A){2pt}\uput[20](A){A} + \rotateNode(A){45} + \qdisk(A){2pt}\uput[20](A){A} +\end{pspicture} +\end{lstlisting} + +\end{multicols} + + +\section{\CMD{rotateTriangle}} +The syntax is + +\medskip +\verb|\rotateNode{NodeNameA}{NodeNameB}{NodeNameC}{Degrees}| +\medskip + +The coordinates of the nodes \verb|A,B,C| are changed to the new ones. Negative values are possible for rotating clockwise. + +\begin{multicols}{2} + +\begin{pspicture}(-1,0)(4,4) + \psgrid + \pnode(1,1){A} + \pnode(3,1){B} + \pnode(2,3){C} + \qdisk(A){2pt}\uput[180](A){A} + \qdisk(B){2pt}\uput[0](B){B} + \qdisk(C){2pt}\uput[90](C){C} + \psline(A)(B)(C)(A) + \rotateTriangle(A)(B)(C){45} + \qdisk(A){2pt}\uput[180](A){A} + \qdisk(B){2pt}\uput[0](B){B} + \qdisk(C){2pt}\uput[90](C){C} + \psline[linecolor=red](A)(B)(C)(A) + \psarc[linecolor=red,linewidth=0.5pt]{->}(0,0){3.16}{19.47}{64.47} + \psarc[linecolor=red,linewidth=0.5pt]{->}(0,0){1.41}{45}{90} + \psarc[linecolor=red,linewidth=0.5pt]{->}(0,0){3.61}{56.31}{101.31} + \rput(1.5,0.5){\CMD{rotateNode(A)(B)(C)\{45\}}} +\end{pspicture} + + +\columnbreak +\begin{lstlisting} +\begin{pspicture}(-1,0)(4,4) + \pnode(1,1){A} + \pnode(3,1){B} + \pnode(2,3){C} + \qdisk(A){2pt}\uput[180](A){A} + \qdisk(B){2pt}\uput[0](B){B} + \qdisk(C){2pt}\uput[90](C){C} + \psline(A)(B)(C)(A) + \rotateTriangle(A)(B)(C){45} + \qdisk(A){2pt}\uput[180](A){A} + \qdisk(B){2pt}\uput[0](B){B} + \qdisk(C){2pt}\uput[90](C){C} + \psline[linecolor=red](A)(B)(C)(A) +\end{pspicture} +\end{lstlisting} + +\end{multicols} + + + +\section{\CMD{rotateFrame}} +The syntax is + +\medskip +\verb|\rotateNode{NodeNameA}{NodeNameB}{NodeNameC}{NodeNameD}{Degrees}| +\medskip + +The coordinates of the nodes \verb|A,B,C,D| are changed to the new ones. Negative values are possible for rotating clockwise. + +\clearpage + +\begin{multicols}{2} +\begin{pspicture}(-2,0)(4,5) + \psgrid + \pnode(1,1){A} + \pnode(3,1){B} + \pnode(3,3){C} + \pnode(1,3){D} + \qdisk(A){2pt}\uput[180](A){A} + \qdisk(B){2pt}\uput[0](B){B} + \qdisk(C){2pt}\uput[90](C){C} + \qdisk(D){2pt}\uput[180](D){D} + \psline(A)(B)(C)(D)(A) + \rotateFrame(A)(B)(C)(D){45} + \qdisk(A){2pt}\uput[180](A){A} + \qdisk(B){2pt}\uput[0](B){B} + \qdisk(C){2pt}\uput[90](C){C} + \qdisk(D){2pt}\uput[180](D){D} + \psline[linecolor=red](A)(B)(C)(D)(A) + \psarc[linecolor=red,linewidth=0.5pt]{->}(0,0){3.16}{19.47}{64.47} + \psarc[linecolor=red,linewidth=0.5pt]{->}(0,0){1.41}{45}{90} + \psarc[linecolor=red,linewidth=0.5pt]{->}(0,0){4.24}{45}{90} + \psarc[linecolor=red,linewidth=0.5pt]{->}(0,0){3.16}{71.57}{116.57} + \rput(1,0.5){\CMD{rotateNode(A)(B)(C)(D)\{45\}}} +\end{pspicture} + + +\columnbreak +\begin{lstlisting} +\begin{pspicture}(-2,0)(4,5) + \pnode(1,1){A} + \pnode(3,1){B} + \pnode(3,3){C} + \pnode(1,3){D} + \qdisk(A){2pt}\uput[180](A){A} + \qdisk(B){2pt}\uput[0](B){B} + \qdisk(C){2pt}\uput[90](C){C} + \qdisk(D){2pt}\uput[180](D){D} + \psline(A)(B)(C)(D)(A) + \rotateFrame(A)(B)(C)(D){45} + \qdisk(A){2pt}\uput[180](A){A} + \qdisk(B){2pt}\uput[0](B){B} + \qdisk(C){2pt}\uput[90](C){C} + \qdisk(D){2pt}\uput[180](D){D} + \psline[linecolor=red](A)(B)(C)(D)(A) +\end{pspicture} +\end{lstlisting} + +\end{multicols} + + +\section{\CMD{arrowLine}} +The syntax is + +\medskip +\verb|\arrowLine[Options](Start)(End){ArrowNumber}| +\medskip + +Draws a line from \verb|Start| to \verb|End| with \verb|ArrowNumber| arrows inside. + +\begin{multicols}{2} +\begin{pspicture}(4,4) + \psgrid + \arrowLine[linecolor=red](0,0)(4,3){3} + \arrowLine[linecolor=green,arrowsize=6pt,arrows=-|](0,0)(3,1){2} + \arrowLine[linecolor=blue,arrowOffset=0.75,arrowsize=6pt](4,0)(0,3){3} + \rput(2,3.5){\CMD{arrowLine(Start)(End)\{n\}}} +\end{pspicture} + +\columnbreak +\begin{lstlisting} +\begin{pspicture}(4,4) + \arrowLine[linecolor=red](0,0)(4,3){3} + \arrowLine[linecolor=green,% + arrowsize=6pt,% + arrows=-|](0,0)(3,1){2} + \arrowLine[linecolor=blue,% + arrowOffset=0.75,% + arrowsize=6pt](4,0)(0,3){3} +\end{pspicture} +\end{lstlisting} + +\end{multicols} + + +\subsection{Options} + +A special option is \verb|arrowOffset|, which makes it possible to draw lines with different arrows. By default the arrows are placed symetrically. This can be moved by \verb|arrowOffset|. Additionally all other valid options for pslines are possible her, too. + +\begin{multicols}{2} +\begin{pspicture}(4,2) + \psgrid + \arrowLine[arrowsize=6pt,% + linecolor=red](0,0.5)(4,0.5){3} + \arrowLine[arrowsize=6pt,% + linecolor=red,% + arrows=<-](0,1)(4,1){3} + \arrowLine[arrowsize=6pt,% + linecolor=red](0,1.5)(4,1.5){3} + \arrowLine[arrowsize=6pt,% + linecolor=blue,% + arrows=<-,% + arrowOffset=0.2](0,1.5)(4,1.5){3} +\end{pspicture} + +\columnbreak +\begin{lstlisting} +\begin{pspicture}(4,2) + \arrowLine[arrowsize=6pt,% + linecolor=red](0,0.5)(4,0.5){3} + \arrowLine[arrowsize=6pt,% + linecolor=red,% + arrows=<-](0,1)(4,1){3} + \arrowLine[arrowsize=6pt,% + linecolor=red](0,1.5)(4,1.5){3} + \arrowLine[arrowsize=6pt,% + linecolor=blue,% + arrows=<-,% + arrowOffset=0.2](0,1.5)(4,1.5){3} +\end{pspicture} +\end{lstlisting} + +\end{multicols} + + + + + + +\nocite{*} +\bibliographystyle{plain} +\bibliography{optic} + + +\end{document} diff --git a/Master/texmf-dist/doc/generic/pst-optic/pst-optic-examples.pdf b/Master/texmf-dist/doc/generic/pst-optic/pst-optic-examples.pdf Binary files differnew file mode 100644 index 00000000000..c90211279e2 --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-optic/pst-optic-examples.pdf diff --git a/Master/texmf-dist/doc/generic/pst-optic/pst-optic-examples.tex b/Master/texmf-dist/doc/generic/pst-optic/pst-optic-examples.tex new file mode 100644 index 00000000000..3e3b4cf539b --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-optic/pst-optic-examples.tex @@ -0,0 +1,1789 @@ +\documentclass[12pt]{article} +\usepackage[T1]{fontenc} +\usepackage[latin1]{inputenc} +\usepackage[vtex]{geometry} +\usepackage{graphicx} +\usepackage{subfigure} +\usepackage{pstcol} +\usepackage{pst-optic} +\usepackage{pst-text} +\usepackage{url} +\usepackage{amsmath} +\usepackage{tabularx} +\usepackage{lscape} +\usepackage{fancyhdr} +\pagestyle{fancy} +\lfoot{\small\ttfamily\jobname.tex} +\cfoot{} +\rfoot{} +\renewcommand{\headrulewidth}{0pt} +\renewcommand{\footrulewidth}{0pt} +\usepackage{listings} +\lstset{language=TEX,basicstyle=\ttfamily\footnotesize,% + extendedchars=true,numbers=left,numberstyle=\tiny} +\usepackage{multicol} +\let\myPart\part +\renewcommand{\part}[1]{% + \clearpage\myPart{#1}% +} +\newcommand{\PS}{PostScript} +\newcommand\CMD[1]{\texttt{\textbackslash#1}} +\psset{subgriddiv=0,gridlabels=7pt,griddots=5} +\usepackage[vtex]{hyperref} + +\begin{document} +\author{Manuel Luque\thanks{Mluque5130@aol.com} \and Herbert Voß\thanks{voss@perce.de}} +\date{\today} +\title{Lenses and Mirrors: PST-optic v0.9\\Examples} +\maketitle + + +\tableofcontents + +\clearpage + +\section*{Introduction} + +\verb|pstricks| writes pure PostScript\cite{PostScript} code, so it is not possible to run \TeX{} files with pdf\LaTeX{} when there are pstricks macros in the document. If you still need a PDF output use the package \verb|pdftricks.sty|\cite{pdftricks} or the for Linux free available program \verb|vlatex| (\url{http://www.micropress-inc.com/linux/}) or build the PDF with \verb|ps2pdf| (\verb|dvi|$\rightarrow$\verb|ps|$\rightarrow$\verb|pdf|). +\par +If you need package \verb|graphicx.sty| load it before any \verb|pstricks| package. You do not need to load \verb|pstricks.sty|, it will be done by \verb|pst-optic| by default. +\par +For more informations have a look into the documentations. + +\par +\vspace{\fill} +This PDF file was created with the \textbf{vlatex} program from the free available \textit{VTeX/Lnx v7.530 - the VTeX distribution for Linux (x86)}. + + +\part{Lenses} + + +\section{A simple colored System} + +\begin{itemize} +\item $\mathrm{\overline{AB} = 2\ cm}$ +\item $\mathrm{\overline{OA} = -10\ cm}$ +\item $\mathrm{\overline{OF'} = 3,333\ cm}$ +\item $\mathrm{\overline{XO} = 2\ cm}$ +\end{itemize} + +\resizebox{\textwidth}{!}{% +\begin{pspicture}(-8.5,-3)(8.5,3) +\rput(0,0){\lens[focus=3.333,OA=-10,AB=2,XO=2,xLeft=-8.5,xRight=8.5,rayColor=red]} +\pnode(!XO 2.5){L1}%extrémité supérieure de la lentille +\pnode(!XO -2.5){L2}%extrémité inférieure de la lentille +\psOutLine[length=2](L1)(B'){END} +\psBeforeLine[length=2](B')(L2){START} +\pspolygon[style=rayuresJaunes,linestyle=none](B)(L1)(END)(START)(L2) +% pour bien distinguer le tracé des rayons. + \rput(0,0){% + \lens[% + focus=3.333,% + OA=-10,AB=2,% + XO=2,% + xLeft=-8.5,xRight=8.5,% + rayColor=red,arrowsize=0.2]} +\end{pspicture}} + +\begin{lstlisting} +\begin{pspicture}(-8.5,-3)(8.5,3) +\rput(0,0){% + \lens[focus=3.333,% + OA=-10,AB=2,XO=2,% + xLeft=-8.5,xRight=8.5,% + rayColor=red]% +} +\pnode(!XO 2.5){L1}%extrémité supérieure de la lentille +\pnode(!XO -2.5){L2}%extrémité inférieure de la lentille +\psOutLine[length=2](L1)(B'){END} +\psBeforeLine[length=2](B')(L2){START} +\pspolygon[style=rayuresJaunes,linestyle=none](B)(L1)(END)(START)(L2) +\rput(0,0){% + \lens[% + focus=3.333,% + OA=-10,AB=2,% + XO=2,% + xLeft=-8.5,xRight=8.5,% + rayColor=red,arrowsize=0.2]% +} +\end{pspicture} +\end{lstlisting} + + +\section{A Magnifier} + +\resizebox{\textwidth}{!}{% +\begin{pspicture}(-8,-5)(8,3) + \rput(0,0){% + \lens[% + lensGlass=true,lensWidth=0.4,% + focus=4,AB=0.5,OA=-2.8,XO=2,drawing=false]% + \psline[linewidth=0.5pt](xLeft)(xRight) + } + \pnode(!XO 2.5){L1}% extrémité supérieure de la lentille + \pnode(!XO -2.5){L2}% extrémité inférieure de la lentille + \psOutLine[length=5.5,linestyle=none](B')(L1){END1} + \psBeforeLine[length=6,linestyle=none](L2)(B'){START} + \pspolygon[style=rayuresJaunes,linestyle=none](B)(L1)(END1)(START)(L2) + \psline[linewidth=1.5\pslinewidth,arrowinset=0]{->}(A)(B) + \uput[270](A){A} + \uput[90](B){B} + \psline[linewidth=1.5\pslinewidth,% + arrowinset=0,linestyle=dashed]{->}(A')(B') + \uput[270](A'){$\mathrm{A'}$} + \uput[90](B'){$\mathrm{B'}$} + \psset{linecolor=red,arrowsize=0.2} + \pcline[nodesepB=-4](B')(O) + \psline(B)(I)(F') + \psOutLine(I)(F'){END2} + \Arrows(I)(F') + \Arrows(B)(I) + \psOutLine[length=1,linestyle=dashed](I')(B'){END3} + \psline[linestyle=dashed](B)(F) + \psline(B)(I') + \Arrows[arrows=->>](B)(I') + \psline[linestyle=dashed](B')(I') + \psline[linestyle=dashed](B')(I) + \psOutLine[length=2,arrows=->>](B')(I'){END4} + \psOutLine[length=4](B')(I'){END5} + \rput(8,0){\psset{linecolor=black}\eye} +\end{pspicture}% +} + +\begin{lstlisting} +\begin{pspicture}(-8,-5)(8,3) + \rput(0,0){% + \lens[% + lensGlass=true,lensWidth=0.4,% + focus=4,AB=0.5,OA=-2.8,XO=2,drawing=false]% + \psline[linewidth=0.5pt](xLeft)(xRight) + } + \pnode(!XO 2.5){L1}% extrémité supérieure de la lentille + \pnode(!XO -2.5){L2}% extrémité inférieure de la lentille + \psOutLine[length=5.5,linestyle=none](B')(L1){END1} + \psBeforeLine[length=6,linestyle=none](L2)(B'){START} + \pspolygon[style=rayuresJaunes,linestyle=none](B)(L1)(END1)(START)(L2) + \psline[linewidth=1.5\pslinewidth,arrowinset=0]{->}(A)(B) + \uput[270](A){A} + \uput[90](B){B} + \psline[linewidth=1.5\pslinewidth,% + arrowinset=0,linestyle=dashed]{->}(A')(B') + \uput[270](A'){$\mathrm{A'}$} + \uput[90](B'){$\mathrm{B'}$} + \psset{linecolor=red,arrowsize=0.2} + \pcline[nodesepB=-4](B')(O) + \psline(B)(I)(F') + \psOutLine(I)(F'){END2} + \Arrows(I)(F') + \Arrows(B)(I) + \psOutLine[length=1,linestyle=dashed](I')(B'){END3} + \psline[linestyle=dashed](B)(F) + \psline(B)(I') + \Arrows[arrows=->>](B)(I') + \psline[linestyle=dashed](B')(I') + \psline[linestyle=dashed](B')(I) + \psOutLine[length=2,arrows=->>](B')(I'){END4} + \psOutLine[length=4](B')(I'){END5} + \rput(8,0){\psset{linecolor=black}\eye} +\end{pspicture}% +\end{lstlisting} + + +\section{Two Lenses} + +This is a simple system with two lenses, where the \verb|\lens| macro is used only once. The second lense (the left one) is drawn by the \verb|\psline| macro. + +\resizebox{\textwidth}{!}{% +\begin{pspicture}(-8,-5)(8,3) + \rput(0,0){% + \lens[% + lensScale=0.6,drawing=false,% + focus=1.5,OA=-1,XO=5,nameF={},nameFi={},AB=-1]% + \psline[linewidth=1pt](xLeft)(xRight) + } +%image intermédiaire A1B1 au foyer F'1 + \psline{->}(4,0)(4,-1) +%lentille 2 +% \psline[linewidth=2\pslinewidth,linecolor=blue]{<->}(5,1.5)(5,-1.5) +%On place les points essentiels + \pnode(-6,0){O1} + \pnode(-6,2.5){E1L1}%extrémité sup de L1 + \pnode(-6,-2.5){E2L1}%extrémité inf de L1 + \pnode(4,0){A1} + \pnode(4,-1){B1} +%intersection de O1 avec la lentille L2 + \rayInterLens(O1)(B1){5}{Inter1L2} +%rayon venant de l'infini jusqu'ŕ la lentille L2 + \pcline[nodesepB=-2](Inter1L2)(O1) +%rayon parallčle au précédent et passant par E1L1 + \Parallel(B1)(O1)(E1L1){B1infty} +%rayon parallčle au précédent et passant par E2L2 + \Parallel(B1)(O1)(E2L1){B2infty} +%intersection de la droite passant par E1L1 et B1 avec la lentille L2 + \rayInterLens(E1L1)(B1){5}{InterE1B1L2} + \psline(E1L1)(InterE1B1L2) +%intersection de la droite passant par E2L2 et B1 avec la lentille L2 + \rayInterLens(E2L1)(B1){5}{InterE2B1L2} + \psline(E2L1)(InterE2B1L2) + \psline[linestyle=dashed]{->}(A')(B') + \psline[linestyle=dashed](InterE1B1L2)(B') + \psline[linestyle=dashed](InterE2B1L2)(B') + \psline[linestyle=dotted](B')(O) + \psOutLine[length=3](B')(InterE1B1L2){END} + \psBeforeLine[length=3](InterE2B1L2)(B'){START} + \pspolygon[% + style=rayuresJaunes,% + linestyle=none]% + (B1infty)(E1L1)(InterE1B1L2)% + (END)(START)(InterE2B1L2)% + (E2L1)(B2infty) + \uput[90](A'){$\mathrm{A'}$} + \uput[270](B'){$\mathrm{B'}$} + \uput[90](A1){$\mathrm{A_1}$} + \uput[270](B1){$\mathrm{B_1}$} + \uput[225](O1){O1} + \uput[45](O){O2} + \uput[90](F){$\mathrm{F_2}$} + \uput{0.4}[150](F'){$\mathrm{F'_2}$} + \uput{0.6}[90](A1){$\mathrm{F'_1}$} + \psline[linecolor=red](B1infty)(E1L1)(InterE1B1L2)(END) + \psline[linecolor=red](B2infty)(E2L1)(InterE2B1L2)(START) + \rput(8,0){\eye} +%lentille 1 + \psline[% + linewidth=2\pslinewidth,% + linecolor=blue,% + arrowsize=0.2,arrowinset=0.5]{<->}(-6,-2.5)(-6,2.5) +\end{pspicture}% +} + + +\begin{lstlisting} +\begin{pspicture}(-8,-3)(8,3) +%on place l'oculaire dčs le début + \rput(0,0){% + \lens[% + lensScale=0.6,drawing=false,% + focus=1.5,OA=-1,XO=5,nameF={},nameFi={},AB=-1]% + \psline[linewidth=1pt](xLeft)(xRight) + } +%image intermédiaire A1B1 au foyer F'1 + \psline{->}(4,0)(4,-1) +%lentille 2 +% \psline[linewidth=2\pslinewidth,linecolor=blue]{<->}(5,1.5)(5,-1.5) +%On place les points essentiels + \pnode(-6,0){O1} + \pnode(-6,2.5){E1L1}%extrémité sup de L1 + \pnode(-6,-2.5){E2L1}%extrémité inf de L1 + \pnode(4,0){A1} + \pnode(4,-1){B1} +%intersection de O1 avec la lentille L2 + \rayInterLens(O1)(B1){5}{Inter1L2} +%rayon venant de l'infini jusqu'ŕ la lentille L2 + \pcline[nodesepB=-2](Inter1L2)(O1) +%rayon parallčle au précédent et passant par E1L1 + \Parallel(B1)(O1)(E1L1){B1infty} +%rayon parallčle au précédent et passant par E2L2 + \Parallel(B1)(O1)(E2L1){B2infty} +%intersection de la droite passant par E1L1 et B1 avec la lentille L2 + \rayInterLens(E1L1)(B1){5}{InterE1B1L2} + \psline(E1L1)(InterE1B1L2) +%intersection de la droite passant par E2L2 et B1 avec la lentille L2 + \rayInterLens(E2L1)(B1){5}{InterE2B1L2} + \psline(E2L1)(InterE2B1L2) + \psline[linestyle=dashed]{->}(A')(B') + \psline[linestyle=dashed](InterE1B1L2)(B') + \psline[linestyle=dashed](InterE2B1L2)(B') + \psline[linestyle=dotted](B')(O) + \psOutLine[length=3](B')(InterE1B1L2){END} + \psBeforeLine[length=3](InterE2B1L2)(B'){START} + \pspolygon[% + style=rayuresJaunes,% + linestyle=none]% + (B1infty)(E1L1)(InterE1B1L2)% + (END)(START)(InterE2B1L2)% + (E2L1)(B2infty) + \uput[90](A'){$\mathrm{A'}$} + \uput[270](B'){$\mathrm{B'}$} + \uput[90](A1){$\mathrm{A_1}$} + \uput[270](B1){$\mathrm{B_1}$} + \uput[225](O1){O1} + \uput[45](O){O2} + \uput[90](F){$\mathrm{F_2}$} + \uput{0.4}[150](F'){$\mathrm{F'_2}$} + \uput{0.6}[90](A1){$\mathrm{F'_1}$} + \psline[linecolor=red](B1infty)(E1L1)(InterE1B1L2)(END) + \psline[linecolor=red](B2infty)(E2L1)(InterE2B1L2)(START) + \rput(8,0){\eye} +%lentille 1 + \psline[% + linewidth=2\pslinewidth,% + linecolor=blue,% + arrowsize=0.2,arrowinset=0.5]{<->}(-6,-2.5)(-6,2.5) +\end{pspicture} +\end{lstlisting} + + + +\section{Real Image} + +\resizebox{\textwidth}{!}{ +\begin{pspicture}*(-7.5,-3)(7.5,3) + \rput(0,0){% + \lens[% + lensGlass=true,lensWidth=0.5,lensType=DVG,% + XO=0,AB=2,OA=-4,focus=-6,spotAi=270,spotBi=90]% + \psline[linewidth=1pt](xLeft)(xRight) + } + \psOutLine[length=7](B')(I){END} +%pour prolonger au-delŕ de B' permet de définir END + \psBeforeLine[length=7](I')(B'){START}% permet de définir START + \pspolygon[style=rayuresJaunes,linestyle=none](B)(I)(END)(START)(I') + \psline(B)(I)(END) + \psline(B)(I')(START) +\end{pspicture}% +} + +\begin{lstlisting} +\begin{pspicture}*(-7.5,-3)(7.5,3) +\rput(0,0){% + \lens[lensGlass=true,lensType=DVG,lensWidth=0.5,% + XO=0,AB=2,OA=-4,focus=-6,spotAi=270,spotBi=90]% +} +\psOutLine[length=7](B')(I){END} +% pour prolonger au-delŕ de B' permet de définir END +\psBeforeLine[length=7](I')(B'){START} +% permet de définir START +\pspolygon[style=rayuresJaunes,linestyle=none](B)(I)(END)(START)(I') +\psline(B)(I)(END) +\psline(B)(I')(START) +\end{pspicture} +\end{lstlisting} + + +\section{Virtual Image} + +\resizebox{\textwidth}{!}{% +\begin{pspicture}*(-7.5,-6.5)(7.5,7.5) + \rput(0,0){% + \lens[lensType=DVG,lensWidth=0.75,lensHeight=8,focus=-2,% + OA=1.5,AB=1,XO=-1,lensGlass=true,% + rayColor=red,yBottom=-5,yTop=5,drawing=false]% + \psline[linewidth=1pt](xLeft)(xRight) + } + \pnode(!XO 2.5){L1}%extrémité de la lentille sup + \pnode(!XO -2.5){L2}%extrémité de la lentille inf + {% + \psset{linecolor=red,linestyle=dashed} + \psline(L1)(B) + \psline(L2)(B)% + }{% + \psset{length=4,linestyle=none} + \psOutLine(B)(L1){A1} + \psOutLine(B)(L2){A4} + \psOutLine(L1)(B'){A2} + \psOutLine(L2)(B'){A3} + \pspolygon[style=rayuresJaunes](A1)(L1)(A2)(A3)(L2)(A4) + } + \psline[linestyle=dashed]{->}(A)(B) + \psline{->}(A')(B') + \uput[90](B){B} + \uput[90](B'){$\mathrm{B'}$} + \uput[270](A){A} + \uput[270](A'){$\mathrm{A'}$} + {% + \psset{linecolor=red} + \psline(A1)(L1)(A2) + \psline(A4)(L2)(A3)} +\end{pspicture} +} + +\begin{lstlisting} +\begin{pspicture}*(-7.5,-6.5)(7.5,7.5) + \rput(0,0){% + \lens[lensType=DVG,lensWidth=0.75,lensHeight=8,% + focus=-2,OA=1.5,AB=1,XO=-1,lensGlass=true,% + rayColor=red,yBottom=-5,yTop=5,drawing=false]% + \psline[linewidth=1pt](xLeft)(xRight) + } + \pnode(!XO 2.5){L1}%extrémité de la lentille sup + \pnode(!XO -2.5){L2}%extrémité de la lentille inf + {% + \psset{linecolor=red,linestyle=dashed} + \psline(L1)(B) + \psline(L2)(B)% + }{% + \psset{length=4,linestyle=none} + \psOutLine(B)(L1){A1} + \psOutLine(B)(L2){A4} + \psOutLine(L1)(B'){A2} + \psOutLine(L2)(B'){A3} + \pspolygon[style=rayuresJaunes]% + (A1)(L1)(A2)(A3)(L2)(A4) + } + \psline[linestyle=dashed]{->}(A)(B) + \psline{->}(A')(B') + \uput[90](B){B} + \uput[90](B'){$\mathrm{B'}$} + \uput[270](A){A} + \uput[270](A'){$\mathrm{A'}$} + {% + \psset{linecolor=red} + \psline(A1)(L1)(A2) + \psline(A4)(L2)(A3)} +\end{pspicture} +\end{lstlisting} + +\section{A Microscope} + +\resizebox{\textwidth}{!}{ +\begin{pspicture}(-7.5,-5.5)(7.5,3) +\rput(0,0){% + \lens[focus=1.5,OA=-2,AB=0.5,XO=-5,lensGlass=true,lensWidth=0.4,% + yBottom=-4,yTop=4,drawing=false,lensScale=0.4,% + nameF=F_1,nameFi=F'_1]% + \psline[linewidth=1pt](xLeft)(xRight) + } +\pnode(! XO 1){UPlens1} +\pnode(! XO -1){DOWNlens1} +\Transform +\rput(0,0){% + \lens[focus=2,XO=3,lensGlass=true,lensWidth=0.4,% + yBottom=-4,yTop=4,drawing=false,% + nameF=F_2,nameFi=F'_2,spotF=90,spotFi=90]% + } +\psline{->}(A1)(B1) +\psline{->}(A'1)(B'1) +\uput[270](A1){A} +\uput[90](B1){B} +\uput[270](B'1){$\mathrm{B_1}$} +\uput{0.7}[90](A'1){$\mathrm{A_1}$} +{\psset{linecolor=red} +\rayInterLens(I11)(B'1){3}{Inter1L2} +\rayInterLens(B1)(O1){3}{Inter2L2} +\rayInterLens(UPlens1)(B'1){3}{Inter3L2} +\rayInterLens(DOWNlens1)(B'1){3}{Inter4L2} +\psline(B1)(I11)(B'1)(Inter1L2) +\psline(B1)(Inter2L2) +\psline(B1)(UPlens1)(Inter3L2) +\psline(B1)(DOWNlens1)(Inter4L2) +\psset{length=5} +\Parallel(B'1)(O)(Inter3L2){B1inftyRigth} +\Parallel(B'1)(O)(Inter4L2){B2inftyRigth} +\Parallel(B'1)(O)(Inter2L2){B3inftyRigth} +\Parallel(B'1)(O)(Inter1L2){B3inftyRigth} +{\psset{length=-5,linestyle=dashed} +\Parallel(B'1)(O)(Inter3L2){B1inftyLeft} +\Parallel(B'1)(O)(Inter4L2){B2inftyLeft} +\Parallel(B'1)(O)(Inter2L2){B3inftyLeft} +\Parallel(B'1)(O)(Inter1L2){B3inftyLeft} +\pcline[nodesep=6](B'1)(O)} +\pspolygon[style=rayuresJaunes,linestyle=none](B1)(UPlens1)(Inter3L2)% + (B1inftyRigth)(B2inftyRigth)(Inter4L2)(DOWNlens1) + \psline(B1)(UPlens1)(Inter3L2)(B1inftyRigth) + \psline(B2inftyRigth)(Inter4L2)(DOWNlens1)(B1)} + \rput(7,0){\eye} +\end{pspicture}% +} + +\begin{lstlisting} +\begin{pspicture}(-7.5,-5.5)(7.5,3) +\rput(0,0){% + \lens[focus=1.5,OA=-2,AB=0.5,XO=-5,lensGlass=true,lensWidth=0.4,% + yBottom=-4,yTop=4,drawing=false,lensScale=0.4,% + nameF=F_1,nameFi=F'_1]% + \psline[linewidth=1pt](xLeft)(xRight) +} +\pnode(! XO 1){UPlens1} +\pnode(! XO -1){DOWNlens1} +\Transform +\rput(0,0){% + \lens[focus=2,XO=3,lensGlass=true,lensWidth=0.4,% + yBottom=-4,yTop=4,drawing=false,% + nameF=F_2,nameFi=F'_2,spotF=90,spotFi=90]% +} +\psline{->}(A1)(B1) +\psline{->}(A'1)(B'1) +\uput[270](A1){A} +\uput[90](B1){B} +\uput[270](B'1){$\mathrm{B_1}$} +\uput{0.7}[90](A'1){$\mathrm{A_1}$} +{\psset{linecolor=red} +\rayInterLens(I11)(B'1){3}{Inter1L2} +\rayInterLens(B1)(O1){3}{Inter2L2} +\rayInterLens(UPlens1)(B'1){3}{Inter3L2} +\rayInterLens(DOWNlens1)(B'1){3}{Inter4L2} +\psline(B1)(I11)(B'1)(Inter1L2) +\psline(B1)(Inter2L2) +\psline(B1)(UPlens1)(Inter3L2) +\psline(B1)(DOWNlens1)(Inter4L2) +\psset{length=5} +\Parallel(B'1)(O)(Inter3L2){B1inftyRigth} +\Parallel(B'1)(O)(Inter4L2){B2inftyRigth} +\Parallel(B'1)(O)(Inter2L2){B3inftyRigth} +\Parallel(B'1)(O)(Inter1L2){B3inftyRigth} +{\psset{length=-5,linestyle=dashed} +\Parallel(B'1)(O)(Inter3L2){B1inftyLeft} +\Parallel(B'1)(O)(Inter4L2){B2inftyLeft} +\Parallel(B'1)(O)(Inter2L2){B3inftyLeft} +\Parallel(B'1)(O)(Inter1L2){B3inftyLeft} +\pcline[nodesep=6](B'1)(O)} +\pspolygon[style=rayuresJaunes,linestyle=none]% + (B1)(UPlens1)(Inter3L2)% + (B1inftyRigth)(B2inftyRigth)(Inter4L2)(DOWNlens1) +\psline(B1)(UPlens1)(Inter3L2)(B1inftyRigth) +\psline(B2inftyRigth)(Inter4L2)(DOWNlens1)(B1)} +\rput(7,0){\eye} +\end{pspicture} +\end{lstlisting} + + +\clearpage +\section{Telescope} + +\begin{center} +\telescope[mirrorFocus=10,posMirrorTwo=8,yBottom=-8] +\end{center} + +\begin{lstlisting} +\telescope[mirrorFocus=10,posMirrorTwo=8,yBottom=-8] +\end{lstlisting} + + +\begin{center} +\telescope[mirrorFocus=6,posMirrorTwo=5,yBottom=-5] +\end{center} + +\begin{lstlisting} +\telescope[mirrorFocus=6,posMirrorTwo=5,yBottom=-5] +\end{lstlisting} + + +\section{Lightspeed measured by Foucault} +1849 Foucault (1819-1868) determines with the following configuration the speed of the light. + +\begin{pspicture}(-8,-5)(7,6) + \rput(0,0){\lens[lensWidth=1,lensGlass=true,% + lensHeight=6,focus=4,drawing=false,AB=2.5]} + {% + \psset{linewidth=0.5pt,linestyle=dashed,arrowsize=5pt,arrows=|<->|} + \psline(-8,0)(4,0) + \pcline(-7.75,-3)(0,-3) + \lput*{:U}{2f} + \pcline(0,-3)(4,-3) + \lput*{:U}{f} + \pcline(7,0)(7,4) + \lput*{:U}{f} + \pcline(4,5)(5,5) + \lput*{:U}{s} + \pcline(5.25,2.3)(5.25,2.8) + \lput*{:U}{s} + } + \uput[90](0,3){\Large L} + \uput[45](-7.7,3){\Large B} + \uput[45](-7.7,-2){\Large E} + \uput[270](3,-0.5){\Large D} + \uput[-45](4,0){\Large A=F} + \uput[270](3,2){\Large S} + \uput[90](4,4){\Large Sp} + \uput[90](3.5,3.25){\Large B'} + \uput[0](6.3,2.25){\Large B''} + \uput[-90](6,1.1){\Large M} + \psarc[linewidth=0.5pt](-7.75,2.5){0.5}{-90}{0}\qdisk(-7.55,2.3){1pt} + \rput{210}(F'){\mirrorTwo} + {% + \psset{fillstyle=solid,fillcolor=lightgray} + \rput{210}(4,2.5){\psframe(-1,0)(1,0.2)} + \psframe(-8,-3)(-7.75,3) + \psframe(3,4)(3.8,4.2)\psframe(4.2,4)(5,4.2)% + }{% + \psset{linewidth=1pt,linecolor=red,arrows=->,% + arrowsize=5pt} + \arrowLine[linecolor=blue,arrowOffset=-0.2](F')(4,2.5){2} + \arrowLine[linecolor=blue,arrowOffset=-0.2](4,2.3)(6,2.3){1} + \qdisk(6,2.3){2pt} + \psline[linestyle=dashed,arrows=-](F')(5.1,4) + \psline[linestyle=dashed,arrows=-](5,2.8)(6,2.8) + \arrowLine(4,4)(F'){3} + \arrowLine[linecolor=blue,arrowOffset=-0.2](I)(F'){2} + \arrowLine(F')(I){2} + \arrowLine[linecolor=blue,arrowOffset=-0.3](-7.75,2.5)(I){3} + \arrowLine(I)(-7.75,2.5){3} + } + \psframe(5.5,1.1)(6.5,3.5) + \multido{\r=1.3+0.2}{12}{% + \psline(6.1,\r)(6.5,\r)% + } +\end{pspicture} + +Sp chink; \\ +D rotating mirror;\\ +L collecting lens;\\ +E end mirror;\\ +S half diaphanous mirror;\\ +M scale + +\begin{lstlisting} +\begin{pspicture}(-8,-5)(7,6) + \rput(0,0){\lens[lensWidth=1,lensGlass=true,% + lensHeight=6,focus=4,drawing=false,AB=2.5]} + {% + \psset{linewidth=0.5pt,linestyle=dashed,arrowsize=5pt,arrows=|<->|} + \psline(-8,0)(4,0) + \pcline(-7.75,-3)(0,-3) + \lput*{:U}{2f} + \pcline(0,-3)(4,-3) + \lput*{:U}{f} + \pcline(7,0)(7,4) + \lput*{:U}{f} + \pcline(4,5)(5,5) + \lput*{:U}{s} + \pcline(5.25,2.3)(5.25,2.8) + \lput*{:U}{s} + } + \uput[90](0,3){\Large L} + \uput[45](-7.7,3){\Large B} + \uput[45](-7.7,-2){\Large E} + \uput[270](3,-0.5){\Large D} + \uput[-45](4,0){\Large A=F} + \uput[270](3,2){\Large S} + \uput[90](4,4){\Large Sp} + \uput[90](3.5,3.25){\Large B'} + \uput[0](6.3,2.25){\Large B''} + \uput[-90](6,1.1){\Large M} + \psarc[linewidth=0.5pt](-7.75,2.5){0.5}{-90}{0}\qdisk(-7.55,2.3){1pt} + \rput{210}(F'){\mirrorTwo} + {% + \psset{fillstyle=solid,fillcolor=lightgray} + \rput{210}(4,2.5){\psframe(-1,0)(1,0.2)} + \psframe(-8,-3)(-7.75,3) + \psframe(3,4)(3.8,4.2)\psframe(4.2,4)(5,4.2)% + }{% + \psset{linewidth=1pt,linecolor=red,arrows=->,% + arrowsize=5pt} + \arrowLine[linecolor=blue,arrowOffset=-0.2](F')(4,2.5){2} + \arrowLine[linecolor=blue,arrowOffset=-0.2](4,2.3)(6,2.3){1} + \qdisk(6,2.3){2pt} + \psline[linestyle=dashed,arrows=-](F')(5.1,4) + \psline[linestyle=dashed,arrows=-](5,2.8)(6,2.8) + \arrowLine(4,4)(F'){3} + \arrowLine[linecolor=blue,arrowOffset=-0.2](I)(F'){2} + \arrowLine(F')(I){2} + \arrowLine[linecolor=blue,arrowOffset=-0.3](-7.75,2.5)(I){3} + \arrowLine(I)(-7.75,2.5){3} + } + \psframe(5.5,1.1)(6.5,3.5) + \multido{\r=1.3+0.2}{12}{% + \psline(6.1,\r)(6.5,\r)% + } +\end{pspicture} +\end{lstlisting} + + + +\part{Mirrors} + +\section{High Beam Light\label{beamlight}} +\begin{pspicture}(-1.5,-5.5)(10,5.5) +% \psgrid[subgriddiv=0,griddots=5] + \rput(0,0){% + \beamLight[drawing=false,% + mirrorDepth=4.75,% + mirrorWidth=0.1,% + mirrorHeight=10,% + linecolor=lightgray]} + \makeatletter + \pst@getcoor{Focus}\pst@tempf + \psset{linewidth=1pt,linecolor=red} + \multido{\n=60+5}{18}{% + \mirrorCVGRay[linecolor=red,% + mirrorDepth=4.75,% + mirrorHeight=10,% + linewidth=1pt](Focus)(!% + /XF \pst@tempf pop \pst@number\psxunit div def + \n\space cos XF add \n\space sin neg){Endd1} + \psOutLine[arrows=->,length=.25](Endd1)(Endd1''){Endd2}% + \mirrorCVGRay[linecolor=red,% + mirrorDepth=4.75,% + mirrorHeight=10,% + linewidth=1pt](Focus)(!% + /XF \pst@tempf pop \pst@number\psxunit div def + \n\space cos XF add \n\space sin ){End1} + \psOutLine[arrows=->,length=.25](End1)(End1''){End2}% + } + \makeatletter +\end{pspicture} + + +\begin{lstlisting} +\begin{pspicture}(-1.5,-5.5)(10,5.5) + \rput(0,0){% + \beamLight[drawing=false,% + mirrorDepth=4.75,% + mirrorWidth=0.1,% + mirrorHeight=10,% + linecolor=lightgray]} + \makeatletter + \pst@getcoor{Focus}\pst@tempf + \psset{linewidth=1pt,linecolor=red} + \multido{\n=60+5}{18}{% + \mirrorCVGRay[linecolor=red,% + mirrorDepth=4.75,% + mirrorHeight=10,% + linewidth=1pt](Focus)(!% + /XF \pst@tempf pop \pst@number\psxunit div def + \n\space cos XF add \n\space sin neg){Endd1} + \psOutLine[arrows=->,length=.25](Endd1)(Endd1''){Endd2}% + \mirrorCVGRay[linecolor=red,% + mirrorDepth=4.75,% + mirrorHeight=10,% + linewidth=1pt](Focus)(!% + /XF \pst@tempf pop \pst@number\psxunit div def + \n\space cos XF add \n\space sin ){End1} + \psOutLine[arrows=->,length=.25](End1)(End1''){End2}% + } + \makeatletter +\end{pspicture} +\end{lstlisting} + +\section{Low Beam Light} +\begin{pspicture}(-1.5,-5)(10,5) +% \psgrid[subgriddiv=0,griddots=5] + \rput(0,0){% + \beamLight[drawing=false,% + mirrorDepth=4.75,% + mirrorWidth=0.1,% + mirrorHeight=10,% + linecolor=lightgray]} + {% + \psset{linewidth=1pt,linecolor=red} + \multido{\n=70+5}{20}{% + \psline(2.75,-0.2)(! \n\space cos 2.75 add \n\space sin ) + \mirrorCVGRay[linecolor=red,% + mirrorDepth=4.75,% + mirrorHeight=10,% + linewidth=1pt](2.75,-0.2)% + (! \n\space cos 2.75 add \n\space sin ){End1} + \psOutLine[arrows=->,length=.25](End1)(End1''){End2}% + }} +\end{pspicture} + +\begin{lstlisting} +\begin{pspicture}(-1.5,-5)(10,5) + \rput(0,0){% + \beamLight[drawing=false,% + mirrorDepth=4.75,% + mirrorWidth=0.1,% + mirrorHeight=10,% + linecolor=lightgray]} + {% + \psset{linewidth=1pt,linecolor=red} + \multido{\n=70+5}{20}{% + \psline(2.75,-0.2)(! \n\space cos 2.75 add \n\space sin ) + \mirrorCVGRay[linecolor=red,% + mirrorDepth=4.75,% + mirrorHeight=10,% + linewidth=1pt](2.75,-0.2)% + (! \n\space cos 2.75 add \n\space sin ){End1} + \psOutLine[arrows=->,length=.25](End1)(End1''){End2}% + }} +\end{pspicture} +\end{lstlisting} + + + + +\part{Refraction} + +\section{Vertical Medium} + +Refrectionnumbers are $n_1=1$ and $n_2=1.5$: + +\bigskip + + +\begin{pspicture}(-5,-3)(5,3) + \psgrid + \pnode(-1,-2.5){A} + \pnode(1,-2.5){B} + \pnode(1,2.5){C} + \pnode(-1,2.5){D} +% \rotateFrame(A)(B)(C)(D){10} + \uput[-135](A){A}\uput[-45](B){B} + \uput[45](C){C}\uput[135](D){D} + \pspolygon[fillcolor=lightgray,fillstyle=solid,linecolor=blue](A)(B)(C)(D) +% +% 1. +% + \refractionRay(-3,-3)(-2,-2)(D)(A){1}{1.5}{END} + \psset{linecolor=red,linewidth=2pt,arrowsize=5pt,arrows=->} + \arrowLine(-3,-3)(END){2} + \ABinterCD(END)(END')(C)(B){Out} + \arrowLine(END)(Out){1} + \refractionRay(END)(Out)(C)(B){1.5}{1}{Q} + \arrowLine(Q)(Q'){1} + \psOutLine[length=2](Q)(Q'){End} +% +% 2. + \refractionRay(-3,0)(-2,0)(A)(D){1}{1.5}{END} + \psset{linecolor=green,linewidth=2pt,arrowsize=5pt,arrows=->} + \arrowLine(-3,0)(END){2} + \ABinterCD(END)(END')(C)(B){Out} + \arrowLine(END)(Out){1} + \refractionRay(END)(Out)(C)(B){1.5}{1}{Q} + \arrowLine(Q)(Q'){1} + \psOutLine[length=2](Q)(Q'){End} +% +% 3. +% + \refractionRay(-3,3)(-2,2)(D)(A){1}{1.5}{END} + \psset{linecolor=blue,linewidth=2pt,arrowsize=5pt,arrows=->} + \arrowLine(-3,3)(END){2} + \ABinterCD(END)(END')(C)(B){Out} + \arrowLine(END)(Out){1} + \refractionRay(END)(Out)(C)(B){1.5}{1}{Q} + \arrowLine(Q)(Q'){1} + \psOutLine[length=2](Q)(Q'){End} +\end{pspicture} +\bigskip + + +\begin{lstlisting} +\begin{pspicture}(-5,-3)(5,3) + \psgrid[subgriddiv=0,griddots=5,gridlabels=7pt] + \pnode(-1,-2.5){A} + \pnode(1,-2.5){B} + \pnode(1,2.5){C} + \pnode(-1,2.5){D} +% \rotateFrame(A)(B)(C)(D){10} + \uput[-135](A){A}\uput[-45](B){B} + \uput[45](C){C}\uput[135](D){D} + \pspolygon[fillcolor=lightgray,fillstyle=solid,linecolor=blue](A)(B)(C)(D) +% +% 1. +% + \refractionRay(-3,-3)(-2,-2)(D)(A){1}{1.5}{END} + \psset{linecolor=red,linewidth=2pt,arrowsize=5pt,arrows=->} + \arrowLine(-3,-3)(END){2} + \ABinterCD(END)(END')(C)(B){Out} + \arrowLine(END)(Out){1} + \refractionRay(END)(Out)(C)(B){1.5}{1}{Q} + \arrowLine(Q)(Q'){1} + \psOutLine[length=2](Q)(Q'){End} +% +% 2. + \refractionRay(-3,0)(-2,0)(A)(D){1}{1.5}{END} + \psset{linecolor=green,linewidth=2pt,arrowsize=5pt,arrows=->} + \arrowLine(-3,0)(END){2} + \ABinterCD(END)(END')(C)(B){Out} + \arrowLine(END)(Out){1} + \refractionRay(END)(Out)(C)(B){1.5}{1}{Q} + \arrowLine(Q)(Q'){1} + \psOutLine[length=2](Q)(Q'){End} +% +% 3. +% + \refractionRay(-3,3)(-2,2)(D)(A){1}{1.5}{END} + \psset{linecolor=blue,linewidth=2pt,arrowsize=5pt,arrows=->} + \arrowLine(-3,3)(END){2} + \ABinterCD(END)(END')(C)(B){Out} + \arrowLine(END)(Out){1} + \refractionRay(END)(Out)(C)(B){1.5}{1}{Q} + \arrowLine(Q)(Q'){1} + \psOutLine[length=2](Q)(Q'){End} +\end{pspicture} +\end{lstlisting} + +\section{Horizontal Medium} +Refrectionnumbers are $n_1=1$ and $n_2=1.5$: +\bigskip + + +\begin{pspicture}(-5,-4)(5,3) + \psgrid[subgriddiv=0,griddots=5,gridlabels=7pt] + \pnode(-2.5,-1){A} + \pnode(2.5,-1){B} + \pnode(2.5,1){C} + \pnode(-2.5,1){D} +% \rotateFrame(A)(B)(C)(D){10} + \uput[-135](A){A}\uput[-45](B){B} + \uput[45](C){C}\uput[135](D){D} + \pspolygon[fillcolor=lightgray,fillstyle=solid,linecolor=blue](A)(B)(C)(D) +% +% 1. +% + \refractionRay(-3,3)(-2,2)(C)(D){1}{1.5}{END} + \psset{linecolor=red,linewidth=2pt,arrowsize=5pt,arrows=->} + \arrowLine(-3,3)(END){2} + \ABinterCD(END)(END')(B)(A){Out} + \arrowLine(END)(Out){1} + \refractionRay(END)(Out)(B)(A){1.5}{1}{Q} + \arrowLine(Q)(Q'){1} + \psOutLine[length=2](Q)(Q'){End} +% +% 2. +% + \refractionRay(0,3)(0,1)(C)(D){1}{1.5}{END} + \psset{linecolor=green,linewidth=2pt,arrowsize=5pt,arrows=->} + \arrowLine(0,3)(END){2} + \ABinterCD(END)(END')(A)(B){Out} + \arrowLine(END)(Out){1} + \refractionRay(END)(Out)(B)(A){1.5}{1}{Q} + \arrowLine(Q)(Q'){1} + \psOutLine[length=2](Q)(Q'){End} +% +% 3. +% + \refractionRay(3,3)(2,2)(C)(D){1}{1.5}{END} + \psset{linecolor=blue,linewidth=2pt,arrowsize=5pt,arrows=->} + \arrowLine(3,3)(END){2} + \ABinterCD(END)(END')(B)(A){Out} + \arrowLine(END)(Out){1} + \refractionRay(END)(Out)(B)(A){1.5}{1}{Q} + \arrowLine(Q)(Q'){1} + \psOutLine[length=2](Q)(Q'){End} +\end{pspicture} + + +\begin{lstlisting} +\begin{pspicture}(-5,-4)(5,3) + \psgrid[subgriddiv=0,griddots=5,gridlabels=7pt] + \pnode(-2.5,-1){A} + \pnode(2.5,-1){B} + \pnode(2.5,1){C} + \pnode(-2.5,1){D} + \uput[-135](A){A}\uput[-45](B){B} + \uput[45](C){C}\uput[135](D){D} + \pspolygon[fillcolor=lightgray,fillstyle=solid,linecolor=blue](A)(B)(C)(D) +% +% 1. +% + \refractionRay(-3,3)(-2,2)(C)(D){1}{1.5}{END} + \psset{linecolor=red,linewidth=2pt,arrowsize=5pt,arrows=->} + \arrowLine(-3,3)(END){2} + \ABinterCD(END)(END')(B)(A){Out} + \arrowLine(END)(Out){1} + \refractionRay(END)(Out)(B)(A){1.5}{1}{Q} + \arrowLine(Q)(Q'){1} + \psOutLine[length=2](Q)(Q'){End} +% +% 2. +% + \refractionRay(0,3)(0,1)(C)(D){1}{1.5}{END} + \psset{linecolor=green,linewidth=2pt,arrowsize=5pt,arrows=->} + \arrowLine(0,3)(END){2} + \ABinterCD(END)(END')(A)(B){Out} + \arrowLine(END)(Out){1} + \refractionRay(END)(Out)(B)(A){1.5}{1}{Q} + \arrowLine(Q)(Q'){1} + \psOutLine[length=2](Q)(Q'){End} +% +% 3. +% + \refractionRay(3,3)(2,2)(C)(D){1}{1.5}{END} + \psset{linecolor=blue,linewidth=2pt,arrowsize=5pt,arrows=->} + \arrowLine(3,3)(END){2} + \ABinterCD(END)(END')(B)(A){Out} + \arrowLine(END)(Out){1} + \refractionRay(END)(Out)(B)(A){1.5}{1}{Q} + \arrowLine(Q)(Q'){1} + \psOutLine[length=2](Q)(Q'){End} +\end{pspicture} +\end{lstlisting} + +\section{Parallel Rays and a sloping medium} +Refrectionnumbers are $n_1=1$ and $n_2=1.5$: +\bigskip + + +\begin{pspicture}(-7,-1)(5,6) + \psgrid[subgriddiv=0,griddots=5,gridlabels=7pt] + \pnode(0,0){A} + \pnode(2,0){B} + \pnode(2,5){C} + \pnode(0,5){D} + \rotateFrame(A)(B)(C)(D){40} + \uput[-135](A){A}\uput[-45](B){B} + \uput[30](C){C}\uput[135](D){D} + \pspolygon[fillcolor=lightgray,fillstyle=solid,linecolor=blue](A)(B)(C)(D) + \psset{linecolor=red,linewidth=2pt,arrowsize=5pt,arrows=->} + \multido{\r=1.10+0.28}{8}{% + \refractionRay(-6.00,\r)(-3.00,\r)(A)(D){1}{1.5}{End} + \arrowLine(-6.00,\r)(End){2} + \ABinterCD(End)(End')(C)(B){Out} + \arrowLine(End)(Out){1} + \refractionRay(End)(Out)(C)(B){1.5}{1}{Q} + \psline(Q)(Q') + \psOutLine[length=3](Q)(Q'){End} + } +\end{pspicture} +\begin{lstlisting} +\begin{pspicture}(-7,-1)(5,6) + \psgrid[subgriddiv=0,griddots=5,gridlabels=7pt] + \pnode(0,0){A} + \pnode(2,0){B} + \pnode(2,5){C} + \pnode(0,5){D} + \rotateFrame(A)(B)(C)(D){45} + \uput[-135](A){A}\uput[-45](B){B} + \uput[30](C){C}\uput[135](D){D} + \pspolygon[fillcolor=lightgray,fillstyle=solid,linecolor=blue](A)(B)(C)(D) + \psset{linecolor=red,linewidth=2pt,arrowsize=5pt,arrows=->} + \multido{\r=3.0+-0.3}{8}{% + \refractionRay(-7,\r)(-4,\r)(D)(A){1}{1.25}{END} + \arrowLine(-7,\r)(END){2} + \ABinterCD(END)(END')(C)(B){Out} + \arrowLine(END)(Out){1} + \refractionRay(END)(Out)(C)(B){1.25}{1}{Q} + \psline(Q)(Q') + \psOutLine[length=3](Q)(Q'){End}% + } +\end{pspicture} +\end{lstlisting} + +\section{A Prisma} +Refrectionnumbers are $n_1=1$ and $n_2=1.5$: +\bigskip + + +\begin{pspicture}(-7,0)(5,6) + \psgrid[subgriddiv=0,griddots=5,gridlabels=7pt] + \pnode(-3,1){A}\pnode(1,1){B}\pnode(-1,5){C} + \uput[-135](A){A}\uput[-45](B){B}\uput[30](C){C} + \pspolygon[fillcolor=lightgray,fillstyle=solid,linecolor=blue](A)(B)(C) + \psset{linecolor=red,linewidth=2pt,arrowsize=5pt,arrows=->} + \multido{\rA=0.6+0.2,\rB=1.5+0.2}{7}{% + \refractionRay(-6,\rA)(-4,\rB)(C)(A){1}{1.5}{END} + \arrowLine(-6,\rA)(END){2} + \ABinterCD(END)(END')(C)(B){Out} + \arrowLine(END)(Out){1} + \refractionRay(END)(Out)(C)(B){1.5}{1}{Q} + \psline(Q)(Q') + \psOutLine[length=3](Q)(Q'){End}% + } +\end{pspicture} +\bigskip + +\begin{lstlisting} +\begin{pspicture}(-7,0)(5,6) + \psgrid[subgriddiv=0,griddots=5,gridlabels=7pt] + \pnode(-3,1){A}\pnode(1,1){B}\pnode(-1,5){C} + \uput[-135](A){A}\uput[-45](B){B}\uput[30](C){C} + \pspolygon[fillcolor=lightgray,fillstyle=solid,linecolor=blue](A)(B)(C) + \psset{linecolor=red,linewidth=2pt,arrowsize=5pt,arrows=->} + \multido{\rA=0.6+0.2,\rB=1.5+0.2}{7}{% + \refractionRay(-6,\rA)(-4,\rB)(C)(A){1}{1.5}{END} + \arrowLine(-6,\rA)(END){2} + \ABinterCD(END)(END')(C)(B){Out} + \arrowLine(END)(Out){1} + \refractionRay(END)(Out)(C)(B){1.5}{1}{Q} + \psline(Q)(Q') + \psOutLine[length=3](Q)(Q'){End}% + } +\end{pspicture} +\end{lstlisting} + + +\begin{landscape} +\section{A Prisma for Dispersion} +The following figure shows the lioght dispersion with realistic values for the refractions numbers of the different light colors. +\bigskip + +\begin{tabular}{l|l} + Color & Refraction number $n$ for glass\\\hline + dark blue & $1.528$ \\ + bluegreen & $1.523$ \\ + yellow & $1.517$ \\ + red & $1.514$ \\ + darkred & $1.511$ \\ +\end{tabular} + +\bigskip +\begin{pspicture}(-7,0)(14,6) + \psgrid[subgriddiv=0,griddots=5,gridlabels=7pt] + \pnode(-6,1){A}\pnode(-2,1){B}\pnode(-4,5){C} + \uput[-135](A){A}\uput[-45](B){B}\uput[30](C){C} + \pnode(12.5,0.5){E1}\pnode(12.5,5.5){E2} + \psframe[fillcolor=lightgray,fillstyle=solid](E1)(12.75,5.5) + \pspolygon[fillcolor=lightgray,fillstyle=solid,linecolor=blue](A)(B)(C) + \psset{linecolor=black,linewidth=2pt,arrowsize=5pt,arrows=->} + \pnode(-7,1){P1}\pnode(-6,2){P2} + \ABinterCD(P1)(P2)(C)(A){END} + \arrowLine(P1)(END){2} +% + \psset{linecolor=blue,linewidth=0.5pt,arrowsize=2pt,} + \refractionRay(P1)(P2)(C)(A){1}{1.528}{END} + \ABinterCD(END)(END')(C)(B){Out} + \arrowLine(END)(Out){1} + \refractionRay(END)(Out)(C)(B){1.528}{1}{Q} + \psline(Q)(Q') + \ABinterCD(Q)(Q')(E1)(E2){END} + \arrowLine(Q)(END){4}\qdisk(END){1.5pt} +% + \psset{linecolor=green} + \refractionRay(P1)(P2)(C)(A){1}{1.523}{END} + \ABinterCD(END)(END')(C)(B){Out} + \arrowLine(END)(Out){1} + \refractionRay(END)(Out)(C)(B){1.523}{1}{Q} + \psline(Q)(Q') + \ABinterCD(Q)(Q')(E1)(E2){END} + \arrowLine(Q)(END){4}\qdisk(END){1.5pt} +% + \psset{linecolor=yellow} + \refractionRay(P1)(P2)(C)(A){1}{1.517}{END} + \ABinterCD(END)(END')(C)(B){Out} + \arrowLine(END)(Out){1} + \refractionRay(END)(Out)(C)(B){1.517}{1}{Q} + \psline(Q)(Q') + \ABinterCD(Q)(Q')(E1)(E2){END} + \arrowLine(Q)(END){4}\qdisk(END){1.5pt} +% + \psset{linecolor=red} + \refractionRay(P1)(P2)(C)(A){1}{1.511}{END} + \ABinterCD(END)(END')(C)(B){Out} + \arrowLine(END)(Out){1} + \refractionRay(END)(Out)(C)(B){1.511}{1}{Q} + \psline(Q)(Q') + \ABinterCD(Q)(Q')(E1)(E2){END} + \arrowLine(Q)(END){4}\qdisk(END){1.5pt} +\end{pspicture} +\end{landscape} + + +\begin{lstlisting} +\begin{pspicture}(-7,0)(14,6) + \psgrid[subgriddiv=0,griddots=5,gridlabels=7pt] + \pnode(-6,1){A}\pnode(-2,1){B}\pnode(-4,5){C} + \uput[-135](A){A}\uput[-45](B){B}\uput[30](C){C} + \pnode(12.5,0.5){E1}\pnode(12.5,5.5){E2} + \psframe[fillcolor=lightgray,fillstyle=solid](E1)(12.75,5.5) + \pspolygon[fillcolor=lightgray,fillstyle=solid,linecolor=blue](A)(B)(C) + \psset{linecolor=black,linewidth=2pt,arrowsize=5pt,arrows=->} + \pnode(-7,1){P1}\pnode(-6,2){P2} + \ABinterCD(P1)(P2)(C)(A){END} + \arrowLine(P1)(END){2} +% + \psset{linecolor=blue,linewidth=0.5pt,arrowsize=2pt,} + \refractionRay(P1)(P2)(C)(A){1}{1.528}{END} + \ABinterCD(END)(END')(C)(B){Out} + \arrowLine(END)(Out){1} + \refractionRay(END)(Out)(C)(B){1.528}{1}{Q} + \psline(Q)(Q') + \ABinterCD(Q)(Q')(E1)(E2){END} + \arrowLine(Q)(END){4}\qdisk(END){1.5pt} +% + \psset{linecolor=green} + \refractionRay(P1)(P2)(C)(A){1}{1.523}{END} + \ABinterCD(END)(END')(C)(B){Out} + \arrowLine(END)(Out){1} + \refractionRay(END)(Out)(C)(B){1.523}{1}{Q} + \psline(Q)(Q') + \ABinterCD(Q)(Q')(E1)(E2){END} + \arrowLine(Q)(END){4}\qdisk(END){1.5pt} +% + \psset{linecolor=yellow} + \refractionRay(P1)(P2)(C)(A){1}{1.517}{END} + \ABinterCD(END)(END')(C)(B){Out} + \arrowLine(END)(Out){1} + \refractionRay(END)(Out)(C)(B){1.517}{1}{Q} + \psline(Q)(Q') + \ABinterCD(Q)(Q')(E1)(E2){END} + \arrowLine(Q)(END){4}\qdisk(END){1.5pt} +% + \psset{linecolor=red} + \refractionRay(P1)(P2)(C)(A){1}{1.511}{END} + \ABinterCD(END)(END')(C)(B){Out} + \arrowLine(END)(Out){1} + \refractionRay(END)(Out)(C)(B){1.511}{1}{Q} + \psline(Q)(Q') + \ABinterCD(Q)(Q')(E1)(E2){END} + \arrowLine(Q)(END){4}\qdisk(END){1.5pt} +\end{pspicture} +\end{lstlisting} + + +\clearpage +\section{Refration with different Angles} +Refrectionnumbers are $n_1=1$ and $n_2=1.5$: +\bigskip + +\begin{pspicture}(-6,-5)(6,5) + \psgrid[subgriddiv=0,griddots=5,gridlabels=7pt] + \pnode(-6,-1){A}\pnode(6,-1){B}\pnode(6,1){C}\pnode(-6,1){D} + \uput[-135](A){A}\uput[-45](B){B} + \uput[30](C){C}\uput[135](D){D} + \pspolygon[fillcolor=lightgray,fillstyle=solid,linecolor=blue](A)(B)(C)(D) + \psline[linewidth=0.5pt](0,-5)(0,5) + \psset{linecolor=red,linewidth=1.5pt,arrowsize=5pt,arrows=->} + \multido{\n=30+5}{25}{% + \refractionRay(5;\n)(0,1)(C)(D){1}{1.5}{END} + \arrowLine(5;\n)(END){2} + \ABinterCD(END)(END')(B)(A){Out} + \arrowLine(END)(Out){1} + \refractionRay(END)(Out)(B)(A){1.5}{1}{Q} + \psline(Q)(Q') + \psOutLine[length=3](Q)(Q'){End}% + } +\end{pspicture} + +\bigskip + +\begin{lstlisting} +\begin{pspicture}(-6,-5)(6,5) + \psgrid[subgriddiv=0,griddots=5,gridlabels=7pt] + \pnode(-6,-1){A}\pnode(6,-1){B}\pnode(6,1){C}\pnode(-6,1){D} + \uput[-135](A){A}\uput[-45](B){B} + \uput[30](C){C}\uput[135](D){D} + \pspolygon[fillcolor=lightgray,fillstyle=solid,linecolor=blue](A)(B)(C)(D) + \psline[linewidth=0.5pt](0,-5)(0,5) + \psset{linecolor=red,linewidth=1.5pt,arrowsize=5pt,arrows=->} + \multido{\n=30+5}{25}{% + \refractionRay(5;\n)(0,1)(C)(D){1}{1.5}{END} + \arrowLine(5;\n)(END){2} + \ABinterCD(END)(END')(B)(A){Out} + \arrowLine(END)(Out){1} + \refractionRay(END)(Out)(B)(A){1.5}{1}{Q} + \psline(Q)(Q') + \psOutLine[length=3](Q)(Q'){End}% + } +\end{pspicture} +\end{lstlisting} + +\clearpage +\section{Great difference in the Refractionsnumbers} + +Refrectionnumbers are $n_1=1$ and $n_2=4$: + + +\bigskip + +\begin{pspicture}(-5,-1)(2,6) + \psgrid[subgriddiv=0,griddots=5,gridlabels=7pt] + \pnode(0,0){A} + \pnode(2,0){B} + \pnode(2,5){C} + \pnode(0,5){D} + \rotateFrame(A)(B)(C)(D){45} + \uput[-135](A){A}\uput[-40](B){B} + \uput[45](C){C}\uput[135](D){D} + \pspolygon[fillcolor=lightgray,fillstyle=solid,linecolor=blue](A)(B)(C)(D) + \refractionRay(-2.5,-1)(-2,1)(A)(D){1}{4}{END} + \psset{linecolor=red,linewidth=2pt,arrowsize=5pt,arrows=->} + \arrowLine(-2.5,-1)(END){2} + \ABinterCD(END)(END')(C)(B){Out} + \arrowLine(END)(Out){1} + \refractionRay(END)(Out)(C)(B){4}{1}{Q} + \arrowLine(Q)(Q'){1} + \psOutLine[length=2](Q)(Q'){End} +\end{pspicture} + + +\begin{lstlisting} +\begin{pspicture}(-5,-1)(2,6) + \psgrid[subgriddiv=0,griddots=5,gridlabels=7pt] + \pnode(0,0){A} + \pnode(2,0){B} + \pnode(2,5){C} + \pnode(0,5){D} + \rotateFrame(A)(B)(C)(D){45} + \uput[-135](A){A}\uput[-40](B){B} + \uput[45](C){C}\uput[135](D){D} + \pspolygon[fillcolor=lightgray,fillstyle=solid,linecolor=blue](A)(B)(C)(D) + \refractionRay(-2.5,-1)(-2,1)(D)(A){1}{4}{END} + \psset{linecolor=red,linewidth=2pt,arrowsize=5pt,arrows=->} + \arrowLine(-2.5,-1)(END){2} + \ABinterCD(END)(END')(C)(B){Out} + \arrowLine(END)(Out){1} + \refractionRay(END)(Out)(C)(B){4}{1}{Q} + \arrowLine(Q)(Q'){1} + \psOutLine[length=2](Q)(Q'){End} +\end{pspicture} +\end{lstlisting} + + +\clearpage + +\section{Total Reflection} + +Refrectionnumbers are $n_1=2$ and $n_2=1$: +\bigskip + +\begin{pspicture}(-8,-3)(8,6) + \psgrid[subgriddiv=0,griddots=5,gridlabels=7pt] + \pnode(-8,1.5){A}\pnode(8,1.5){B} + \uput[45](A){A}\uput[135](B){B} + \pnode(0,0){START} + \psframe[fillcolor=lightgray,fillstyle=solid,linecolor=blue](-8,-1.5)(B) + \psset{linecolor=red,linewidth=1.5pt,arrowsize=5pt,arrows=->} +% \multido{\n=20+5}{16}{% + \multido{\n=20+5}{29}{% + \refractionRay(START)(1;\n)(A)(B){1.5}{1}{END} + \arrowLine(START)(END){2} + \arrowLine(END)(END'){1} + \psOutLine[length=3](END)(END'){Q} + \arrowLine(END')(Q){3} + } +\end{pspicture} + + +\bigskip + + +\begin{lstlisting} +\begin{pspicture}(-8,-3)(8,6) + \psgrid[subgriddiv=0,griddots=5,gridlabels=7pt] + \pnode(-8,1.5){A}\pnode(8,1.5){B} + \uput[45](A){A}\uput[135](B){B} + \pnode(0,0){START} + \psframe[fillcolor=lightgray,fillstyle=solid,linecolor=blue](-8,-1.5)(B) + \psset{linecolor=red,linewidth=1.5pt,arrowsize=5pt,arrows=->} + \multido{\n=20+5}{29}{% + \refractionRay(START)(1;\n)(A)(B){2}{1}{END} + \arrowLine(START)(END){2} + \arrowLine(END)(END'){1} + \psOutLine[length=3](END)(END'){Q} + \arrowLine(END')(Q){3} + } +\end{pspicture} +\end{lstlisting} + +\clearpage + + +\section{Total Reflection with a sloping medium} + +Refrectionnumbers are $n_1=2$ and $n_2=1$: + + +\begin{pspicture}(-8,-6)(8,6) + \psgrid[subgriddiv=0,griddots=5,gridlabels=7pt] + \pnode(-6,1.5){A}\pnode(6,1.5){B} + \pnode(6,-1.5){C}\pnode(-6,-1.5){D} + \rotateFrame(A)(B)(C)(D){30} + \uput[90](A){A}\uput[135](B){B} + \pnode(0,0){START} + \pspolygon[fillcolor=lightgray,fillstyle=solid,linecolor=blue](A)(B)(C)(D) + \psset{linecolor=red,linewidth=1.5pt,arrowsize=5pt,arrows=->} + \multido{\n=50+5}{29}{% + \refractionRay(START)(1;\n)(A)(B){2}{1}{END} + \arrowLine(START)(END){2} + \arrowLine(END)(END'){1} + \psOutLine[length=3](END)(END'){Q} + \arrowLine(END')(Q){3} + } +\end{pspicture} + +\par +\bigskip + +\begin{lstlisting} +\begin{pspicture}(-8,-6)(8,6) + \psgrid[subgriddiv=0,griddots=5,gridlabels=7pt] + \pnode(-6,1.5){A}\pnode(6,1.5){B} + \pnode(6,-1.5){C}\pnode(-6,-1.5){D} + \rotateFrame(A)(B)(C)(D){30} + \uput[90](A){A}\uput[135](B){B} + \pnode(0,0){START} + \pspolygon[fillcolor=lightgray,fillstyle=solid,linecolor=blue](A)(B)(C)(D) + \psset{linecolor=red,linewidth=1.5pt,arrowsize=5pt,arrows=->} + \multido{\n=50+5}{29}{% + \refractionRay(START)(1;\n)(A)(B){2}{1}{END} + \arrowLine(START)(END){2} + \arrowLine(END)(END'){1} + \psOutLine[length=3](END)(END'){Q} + \arrowLine(END')(Q){3} + } +\end{pspicture} +\end{lstlisting} + + +\part{Spherical Optic} + + +\section{Refraction at a Spherical Surface} + +\subsection[Simple Example]{Construction for finding the position of the image point P' of a point object P formed by refraction at a sperical surface} + + +\begin{pspicture*}(-10,-4)(3,4) + \psgrid[subgriddiv=0,griddots=5,gridlabels=7pt] + \rput(0,0){\lensSPH[% + lensType=CVG,% + lensHeight=12,% + lensWidth=10,% + yBottom=-6,yTop=6,xLeft=-6,xRight=6,% + drawing=false]} + \psset{linecolor=red,linewidth=1.5pt,dotstyle=|} + \pnode(-9,0){P}\psdots(P)\uput[-90](P){P} + \psline(P)(xRight) + \lensSPHRay(P)(-5,2){1}{9}{Q} + \psline(P)(Q)(Q') + \psdots(Q)\uput[90](Q){B} + \ABinterCD(Q)(Q')(0,0)(5,0){P'} + \psdots(Q')\uput[-90](P'){P'} + \psline[linewidth=0.5pt,linecolor=black](Center')(Q) + \psline[linewidth=0.5pt,linecolor=black](Q)(Q|0,0) + \psdots(Center')\uput[-90](Center'){C} +\end{pspicture*} + + +\bigskip + + +\begin{lstlisting} +\begin{pspicture}*(-10,-4)(3,4) + \psgrid[subgriddiv=0,griddots=5,gridlabels=7pt] + \rput(0,0){\lensSPH[% + lensType=CVG,% + lensHeight=12,% + lensWidth=10,% + yBottom=-4,yTop=4,xLeft=-5,xRight=5,% + drawing=false]} + \psset{linecolor=red,linewidth=1.5pt,dotstyle=|} + \pnode(-9,0){P}\psdots(P)\uput[-90](P){P} + \psline(P)(xRight) + \lensSPHRay(P)(-5,2){1}{9}{Q}% + \psline(P)(Q)(Q') + \psdots(Q)\uput[90](Q){B} + \ABinterCD(Q)(Q')(0,0)(5,0){P'} + \psdots(Q')\uput[-90](P'){P'} + \psline[linewidth=0.5pt,linecolor=black](Center')(Q) + \psline[linewidth=0.5pt,linecolor=black](Q)(Q|0,0) + \psdots(Center')\uput[-90](Center'){C} +\end{pspicture} +\end{lstlisting} + + +\subsection[Height of an Image]{Construction for determining the height of an image formed by refraction at a sperical surface} + +\begin{pspicture}*(-13,-3)(3,5) + \psgrid[subgriddiv=0,griddots=5,gridlabels=7pt] + \rput(0,0){\lensSPH[% + lensType=CVG,% + lensHeight=12,% + lensWidth=10,% + yBottom=-4,yTop=4,xLeft=-5,xRight=5,% + drawing=false]} + \psset{linecolor=red,linewidth=1.5pt,dotstyle=|} + \pnode(-12,0){P}\psdots(P)\uput[-90](P){P} + \pnode(-12,4){Q}\psdots(Q)\uput[90](Q){Q} + \psline[linecolor=blue,linewidth=3pt,arrows=->](P)(Q) + \psline(P)(xRight) + \lensSPHRay(Q)(Center'){1}{9}{S1}% + \lensSPHRay(Q)(-5,0){1}{9}{S2}% + \psline(Q)(S1') + \psline(Q)(S2)(S2') + \ABinterCD(Q)(S1')(S2)(S2'){Q'} + \pnode(Q'|0,0){P'} + \psline[linecolor=blue,linewidth=3pt,arrows=->](P')(Q') + \uput[90](P'){P'} + \uput[-90](Q'){Q'} + \psdots(Center')\uput[90](Center'){C} +\end{pspicture} + +\bigskip +\begin{lstlisting} +\begin{pspicture}*(-13,-3)(3,5) + \psgrid[subgriddiv=0,griddots=5,gridlabels=7pt] + \rput(0,0){\lensSPH[% + lensType=CVG,% + lensHeight=12,% + lensWidth=10,% + yBottom=-4,yTop=4,xLeft=-5,xRight=5,% + drawing=false]} + \psset{linecolor=red,linewidth=1.5pt,dotstyle=|} + \pnode(-12,0){P}\psdots(P)\uput[-90](P){P} + \pnode(-12,4){Q}\psdots(Q)\uput[90](Q){Q} + \psline[linecolor=blue,linewidth=3pt,arrows=->](P)(Q) + \psline(P)(xRight) + \lensSPHRay(Q)(Center'){1}{9}{S1}% + \lensSPHRay(Q)(-5,0){1}{9}{S2}% + \psline(Q)(S1') + \psline(Q)(S2)(S2') + \ABinterCD(Q)(S1')(S2)(S2'){Q'} + \pnode(Q'|0,0){P'} + \psline[linecolor=blue,linewidth=3pt,arrows=->](P')(Q') + \uput[90](P'){P'} + \uput[-90](Q'){Q'} + \psdots(Center')\uput[90](Center'){C} +\end{pspicture} +\end{lstlisting} + + +\section{Thin Convergent Lenses} + +If the two spherical surfaces are close enough we can call such a lense a \textbf{thin lens}. The following figure shows the behaviour of such a lense with real rays. + +\psset{xunit=0.75cm} +\begin{pspicture}(-10,-4)(10,4) + \psgrid[subgriddiv=0,griddots=5,gridlabels=7pt] + \rput(0,0){\lensSPH[% + lensType=CVG,% + lensHeight=7,% + lensWidth=1.25,% + yBottom=-5,yTop=5,xLeft=-12,xRight=12,% + AB=2,OA=-9,% + refractA=1,refractB=2,% + drawing=true,% + rayColor=red]} +\end{pspicture} + +\bigskip +\begin{lstlisting} +\psset{xunit=0.75cm} +\begin{pspicture}(-10,-4)(10,4) + \psgrid[subgriddiv=0,griddots=5,gridlabels=7pt] + \rput(0,0){\lensSPH[% + lensType=CVG,% + lensHeight=7,% + lensWidth=1.25,% + yBottom=-5,yTop=5,xLeft=-12,xRight=12,% + AB=2,OA=-9,% + refractA=1,refractB=2,% + drawing=true,% + rayColor=red]} +\end{pspicture} +\end{lstlisting} + +\clearpage + + + +\section{Thick Convergent Lenses} + +There is no real image possible. + +\begin{pspicture}(-10,-4)(10,4) + \psgrid[subgriddiv=0,griddots=5,gridlabels=7pt] + \rput(0,0){\lensSPH[% + lensType=CVG,% + lensHeight=7,% + lensWidth=2,% + yBottom=-5,yTop=5,xLeft=-12,xRight=12,% + AB=2,OA=-9,% + refractA=1,refractB=2,% + drawing=true,% + rayColor=red]} +\end{pspicture} + + +\bigskip +\begin{lstlisting} +\begin{pspicture}(-10,-4)(10,4) + \psgrid[subgriddiv=0,griddots=5,gridlabels=7pt] + \rput(0,0){\lensSPH[% + lensType=CVG,% + lensHeight=7,% + lensWidth=2,% + yBottom=-5,yTop=5,xLeft=-12,xRight=12,% + AB=2,OA=-9,% + refractA=1,refractB=2,% + drawing=true,% + rayColor=red]} +\end{pspicture} +\end{lstlisting} + +\clearpage + + + +\section{Thin Divergent Lenses} +If the two spherical surfaces are close enough we can call such a lense a \textbf{thin lens}. The following figure shows the behaviour of such a lense with real rays. + +\bigskip +\begin{pspicture*}(-6,-3)(6,3) + \psgrid[subgriddiv=0,griddots=5,gridlabels=7pt] + \rput(0,0){\lensSPH[% + lensType=DVG,% + lensWidth=0.1,% + lensDepth=0.2,% + AB=1,OA=-5,% + drawing=true,% + rayColor=red]} +\end{pspicture*} + +\bigskip +\begin{lstlisting} +\begin{pspicture*}(-6,-3)(6,3) + \psgrid[subgriddiv=0,griddots=5,gridlabels=7pt] + \rput(0,0){\lensSPH[% + lensType=DVG,% + lensWidth=0.1,% + lensDepth=0.2,% + AB=1,OA=-5,% + drawing=true,% + rayColor=red]} +\end{pspicture*} +\end{lstlisting} + + +\clearpage + +\section{Thick Divergent Lenses} + +There is no real image possible. + +\bigskip +\begin{pspicture*}(-6,-3)(6,3) + \psgrid[subgriddiv=0,griddots=5,gridlabels=7pt] + \rput(0,0){\lensSPH[% + lensType=DVG,% + lensWidth=1,% + lensDepth=1,% + AB=1,OA=-5,% + drawing=true,% + rayColor=red]} +\end{pspicture*} + + +\bigskip +\begin{lstlisting} +\begin{pspicture*}(-6,-3)(6,3) + \psgrid[subgriddiv=0,griddots=5,gridlabels=7pt] + \rput(0,0){\lensSPH[% + lensType=DVG,% + lensWidth=1,% + lensDepth=1,% + AB=1,OA=-5,% + drawing=true,% + rayColor=red]} +\end{pspicture*} +\end{lstlisting} + +\clearpage +\section{\CMD{mirrorCVG}} + + +\begin{pspicture*}(-1,-5)(8,5) + \rput(0,0){% + \mirrorCVG[% + mirrorType=SPH,% + drawing=false,% + yBottom=-4,yTop=4,% + mirrorHeight=8,% + mirrorDepth=3]% + \qdisk(Center){2pt}\qdisk(Focus){2pt} + \uput[-90](Center){Center}\uput[-90](Focus){F} + \psline(O)(xRight) + } + \multido{\rA=-3.50+0.25}{5}{% + \mirrorCVGRay[mirrorType=SPH,linecolor=red](6,\rA)(4,\rA){E} + \psOutLine[linecolor=red,length=4](E')(E''){EEnd} + } + \multido{\rA=-2.25+0.25}{19}{% + \ABinterSPHLens(6,\rA)(4,\rA)(Center){Ptemp} + \reflectionRay[mirrorType=SPH](5,\rA)(Ptemp){E} + \psline[linecolor=red](6,\rA)(Ptemp)(E) + \psOutLine[linecolor=red,length=6](Ptemp)(E){EEnd} + } + \multido{\rA=2.50+0.25}{5}{% + \mirrorCVGRay[mirrorType=SPH,linecolor=red](6,\rA)(4,\rA){E} + \psOutLine[linecolor=red,length=4](E')(E''){EEnd} + } + \psgrid +\end{pspicture*} + + + +\bigskip + +\begin{lstlisting} +\begin{pspicture*}(-1,-5)(8,5) + \rput(0,0){% + \mirrorCVG[% + mirrorType=SPH,% + drawing=false,% + yBottom=-4,yTop=4,% + mirrorHeight=8,% + mirrorDepth=3]% + \qdisk(Center){2pt}\qdisk(Focus){2pt} + \uput[-90](Center){Center}\uput[-90](Focus){F} + \psline(O)(xRight) + } + \multido{\rA=-3.50+0.25}{5}{% + \mirrorCVGRay[mirrorType=SPH,linecolor=red](8,\rA)(4,\rA){E} + \psOutLine[linecolor=red,length=4](E')(E''){EEnd} + } + \multido{\rA=-2.25+0.25}{19}{% + \ABinterSPHLens(8,\rA)(4,\rA)(Center){Ptemp} + \reflectionRay[mirrorType=CVG-SPH](5,\rA)(Ptemp){E} + \psline[linecolor=red](8,\rA)(Ptemp)(E) + \psOutLine[linecolor=red,length=6](Ptemp)(E){EEnd} + } + \multido{\rA=2.50+0.25}{5}{% + \mirrorCVGRay[mirrorType=SPH,linecolor=red](8,\rA)(4,\rA){E} + \psOutLine[linecolor=red,length=4](E')(E''){EEnd} + } + \psgrid +\end{pspicture*} +\end{lstlisting} + + + + +\section{\CMD{mirrorDVG}} + + +\begin{pspicture*}(-5,-5)(8,5) + \psgrid + \rput(0,0){% + \mirrorDVG[% + mirrorType=SPH,% + drawing=false,% + yBottom=-4,yTop=4,% + mirrorHeight=8,% + mirrorWidth=0.25,% + mirrorDepth=2.5]% + \qdisk(Center){2pt}\qdisk(Focus){2pt} + \uput[-90](Center){C}\uput[-90](Focus){F} + \psline(xLeft)(xRight) + } + \multido{\rA=-3.00+0.25}{25}{% + \ABinterSPHLens(7,\rA)(4,\rA)(Center){Ptemp} + \reflectionRay[mirrorType=SPH](5,\rA)(Ptemp){E} + \arrowLine[linecolor=red,linewidth=1.5pt](7,\rA)(Ptemp){1} + \psline[linecolor=red,arrows=->,linewidth=1.5pt](Ptemp)(E) + \psOutLine[linecolor=red,% + length=6,linewidth=1.5pt,% + arrows=->](Ptemp)(E){EEnd} + \psOutLine[linecolor=red,% + length=3,linestyle=dashed,% + linewidth=0.5pt](E)(Ptemp){EEnd} + } +\end{pspicture*} + +\par + +\begin{lstlisting} +\begin{pspicture*}(-5,-5)(8,5) + \psgrid + \rput(0,0){% + \mirrorDVG[% + mirrorType=SPH,% + drawing=false,% + yBottom=-4,yTop=4,% + mirrorHeight=8,% + mirrorWidth=0.25,% + mirrorDepth=2.5]% + \qdisk(Center){2pt}\qdisk(Focus){2pt} + \uput[-90](Center){C}\uput[-90](Focus){F} + \psline(xLeft)(xRight) + } + \multido{\rA=-3.00+0.25}{25}{% + \ABinterSPHLens(7,\rA)(4,\rA)(Center){Ptemp} + \reflectionRay[mirrorType=SPH](5,\rA)(Ptemp){E} + \arrowLine[linecolor=red,linewidth=1.5pt](7,\rA)(Ptemp){1} + \psline[linecolor=red,arrows=->,linewidth=1.5pt](Ptemp)(E) + \psOutLine[linecolor=red,% + length=6,linewidth=1.5pt,% + arrows=->](Ptemp)(E){EEnd} + \psOutLine[linecolor=red,% + length=3,linestyle=dashed,% + linewidth=0.5pt](E)(Ptemp){EEnd} + } +\end{pspicture*} +\end{lstlisting} + + + +\end{document} diff --git a/Master/texmf-dist/doc/generic/pst-poly/Changes b/Master/texmf-dist/doc/generic/pst-poly/Changes new file mode 100644 index 00000000000..b36a45fafaa --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-poly/Changes @@ -0,0 +1,9 @@ +1.60 2004/11/20 new macro \pspolygonbox, + using pst-xkey (hv) +1.50 2001/02/08 Standard packaging (.ins + .dtx files). +1.40 1998/07/09 Define `PolyRotation' parameter as a real number + and not as an angle, to allow to use the macro + degrees' before to draw a polygon. +1.30 1998/02/06 Rename `PsPicture' parameter to `PstPicture' for + consistancy. +1.20 1997/06/27 First public release. diff --git a/Master/texmf-dist/doc/generic/pst-poly/README b/Master/texmf-dist/doc/generic/pst-poly/README new file mode 100644 index 00000000000..ce8fe97b08a --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-poly/README @@ -0,0 +1,12 @@ +--------------------------------------------------- +| pst-poly: PSTricks package for polygons | +--------------------------------------------------- + +* Run "tex" on pst-poly.ins and copy pst-poly.tex and pst-poly.sty + in one of your TeX input directories + +* Run "latex" on pst-poly.dtx to generate the documentation + +* This is a PSTricks (PostScript Tricks) package, which won't + run with pdftex. In this case go to http://PSTricks.de/ + for some help. diff --git a/Master/texmf-dist/doc/generic/pst-poly/pst-poly.pdf b/Master/texmf-dist/doc/generic/pst-poly/pst-poly.pdf Binary files differnew file mode 100644 index 00000000000..2fb8ab805d9 --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-poly/pst-poly.pdf diff --git a/Master/texmf-dist/doc/generic/pst-poly/tst-poly.pdf b/Master/texmf-dist/doc/generic/pst-poly/tst-poly.pdf Binary files differnew file mode 100644 index 00000000000..347fffd9ff8 --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-poly/tst-poly.pdf diff --git a/Master/texmf-dist/doc/generic/pst-poly/tst-poly.tex b/Master/texmf-dist/doc/generic/pst-poly/tst-poly.tex new file mode 100644 index 00000000000..a48032e31c0 --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-poly/tst-poly.tex @@ -0,0 +1,332 @@ +%% +%% This is file `tst-poly.tex', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% pst-poly.dtx (with options: `tst-poly') +%% +%% IMPORTANT NOTICE: +%% +%% For the copyright see the source file. +%% +%% Any modified versions of this file must be renamed +%% with new filenames distinct from tst-poly.tex. +%% +%% For distribution of the original source see the terms +%% for copying and modification in the file pst-poly.dtx. +%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) +%% +%% Package `pst-poly.dtx' +%% +%% Denis Girou (CNRS/IDRIS - France) <Denis.Girou@idris.fr> +%% Herbert Voss <voss _at_ pstricks.de> +%% +%% Novermber 20, 2004 +%% +%% This program can be redistributed and/or modified under the terms +%% of the LaTeX Project Public License Distributed from CTAN archives +%% in directory macros/latex/base/lppl.txt. +%% +%% DESCRIPTION: +%% `pst-poly' is a PSTricks package to draw easily various kinds of regular +%% or non regular polygons, with various customizations. +%% +%% `pst-poly' test file. +%% +\documentclass{article} + +\usepackage{fancyvrb} +\usepackage[width=18cm]{geometry} +\usepackage{pstricks} +\usepackage{pst-poly} + + +\makeatletter + + +\def\HLEmphasize#1{\textit{#1}} +\newcommand{\BS}{\texttt{\symbol{`\\}}} +\def\HLMacro#1{\BS{}def\HLMacro@i#1\@nil} +\def\HLMacro@i#1def#2\@nil{\HLReverse{#2}} +\def\HLReverse#1{{\setlength{\fboxsep}{1pt}\HLReverse@i{#1}}} +\def\HLReverse@i#1{\colorbox{black}{\textcolor{white}{\textbf{#1}}}} + +\def\Example{\FV@Environment{}{Example}} +\def\endExample{% +\end{VerbatimOut} +\Below@Example{\jobname.tmp} +\endgroup} + +\def\CenterExample{\FV@Environment{}{Example}} +\def\endCenterExample{% +\end{VerbatimOut} +\begin{center} +\Below@Example{\jobname.tmp} +\end{center} +\endgroup} + +\def\SideBySideExample{\FV@Environment{}{Example}} +\def\endSideBySideExample{% +\end{VerbatimOut} +\SideBySide@Example{\jobname.tmp} +\endgroup} + +\def\FVB@Example{% +\begingroup +\FV@UseKeyValues +\parindent=0pt +\multiply\topsep by 2 +\VerbatimEnvironment +\begin{VerbatimOut}[gobble=2,codes={\catcode`\Z=12}]{\jobname.tmp}} + +\def\Below@Example#1{% +\VerbatimInput[commentchar=Z,commandchars=/?_,frame=single, + numbers=left,numbersep=3pt]{#1} +\catcode`\%=14\relax +\catcode`\Z=9\relax +\catcode`/=0\relax +\catcode`?=1\relax +\catcode`_=2\relax +\def\HLEmphasize##1{##1}% +\def\HLMacro##1{##1}% +\def\HLReverse##1{##1}% +\input{#1}\par} + +\def\SideBySide@Example#1{% +\vskip 1mm +\@tempdimb=\FV@XRightMargin +\advance\@tempdimb -5mm +\begin{minipage}[c]{\@tempdimb} + \fvset{xrightmargin=0pt} + \catcode`\%=14\relax + \catcode`\Z=9\relax + % We suppress the effect of the highlighting macros + \catcode`/=0\relax + \catcode`?=1\relax + \catcode`_=2\relax + \def\HLEmphasize##1{##1}% + \def\HLMacro##1{##1}% + \def\HLReverse##1{##1}% + \input{#1} +\end{minipage}% +\@tempdimb=\textwidth +\advance\@tempdimb -\FV@XRightMargin +\advance\@tempdimb 5mm +\begin{minipage}[c]{\@tempdimb} + \VerbatimInput[commentchar=Z,commandchars=/?_, + frame=single,numbers=left,numbersep=3pt, + xleftmargin=5mm,xrightmargin=0pt]{#1} +\end{minipage} +\vskip 1mm} + +\makeatother + + +\begin{document} + + +\begin{CenterExample} + \multido{\i=3+1}{6}{% + \PstPolygon[PolyNbSides=\i]\hspace{5mm}} + \PstPolygon[PolyNbSides=30] +\end{CenterExample} + +\begin{CenterExample} + \multido{\i=3+2}{6}{% + \PstPolygon[PolyOffset=2,PolyNbSides=\i]\hspace{5mm}} + \PstPolygon[PolyOffset=2,PolyNbSides=31] +\end{CenterExample} + +\begin{CenterExample} + \multido{\i=3+1}{7}{% + \PstPolygon[PolyOffset=3,PolyNbSides=\i]\hspace{5mm}} +\end{CenterExample} + +\begin{CenterExample} + \multido{\i=5+1}{7}{% + \PstPolygon[PolyOffset=4,PolyNbSides=\i]\hspace{5mm}} +\end{CenterExample} + +\begin{CenterExample} + \multido{\i=5+2}{7}{% + \PstPolygon[PolyOffset=5,PolyNbSides=\i]\hspace{5mm}} +\end{CenterExample} + +\clearpage +\begin{CenterExample} + \multido{\i=5+2}{7}{% + \PstPolygon[PolyOffset=7,PolyNbSides=\i]\hspace{5mm}} +\end{CenterExample} + +\begin{CenterExample} + \multido{\i=5+2}{7}{% + \PstPolygon[PolyOffset=8,PolyNbSides=\i]\hspace{5mm}} +\end{CenterExample} + +\begin{CenterExample} + \multido{\i=1+1}{7}{% + \PstPolygon[PolyOffset=\i,PolyNbSides=5]\hspace{5mm}} +\end{CenterExample} + +\begin{CenterExample} + \multido{\i=1+1}{7}{% + \PstPolygon[PolyOffset=\i,PolyNbSides=7]\hspace{5mm}} +\end{CenterExample} + +\begin{CenterExample} + \multido{\i=5+1}{7}{% + \PstPolygon[PolyCurves,PolyIntermediatePoint=0.1,PolyNbSides=\i] + \hspace{5mm}} +\end{CenterExample} + +\clearpage +\begin{CenterExample} + \multido{\i=5+1}{7}{% + \PstPolygon[PolyCurves,PolyIntermediatePoint=0.2, + PolyOffset=2,PolyNbSides=\i]\hspace{5mm}} +\end{CenterExample} + +\begin{CenterExample} + \multido{\i=5+2}{7}{% + \PstPolygon[PolyCurves,PolyIntermediatePoint=0.1, + PolyOffset=3,PolyNbSides=\i]\hspace{5mm}} +\end{CenterExample} + + +\begin{CenterExample} + \multido{\n=-1.4+0.5}{7}{% + \PstPolygon[PolyNbSides=3,PolyOffset=2,PolyIntermediatePoint=\n] + \hspace{5mm}} +\end{CenterExample} + +\begin{CenterExample} + \multido{\n=-1.4+0.5}{7}{% + \PstPolygon[PolyNbSides=5,PolyOffset=2,PolyIntermediatePoint=\n] + \hspace{5mm}} +\end{CenterExample} + +\begin{CenterExample} + \multido{\n=-1.4+0.5}{7}{% + \PstPolygon[PolyNbSides=13,PolyOffset=2,PolyIntermediatePoint=\n] + \hspace{5mm}} +\end{CenterExample} + +\begin{CenterExample} + \multido{\n=-1.4+0.5}{7}{% + \PstPolygon[PolyNbSides=21,PolyOffset=2,PolyIntermediatePoint=\n] + \hspace{5mm}} +\end{CenterExample} + + +\begin{CenterExample} + \psset{unit=1.4,linewidth=0.001,PolyNbSides=72,PolyEpicycloid} + \multido{\i=2+1}{4}{% + % Epicycloid of factor 1 is cardioid and of factor 2 nephroid + \PstPolygon[PolyOffset=\i]\hspace{5mm}} +\end{CenterExample} + +\begin{SideBySideExample}[xrightmargin=5cm] + % Epicycloid of factor 10 + \PstPolygon[unit=2,linewidth=0.003, + PolyEpicycloid,PolyNbSides=72,PolyOffset=11] +\end{SideBySideExample} + +\begin{SideBySideExample}[xrightmargin=5cm] + % Epicycloid of factor 22 + \PstPolygon[unit=2,linewidth=0.003, + PolyEpicycloid,PolyNbSides=72,PolyOffset=23] +\end{SideBySideExample} + +\clearpage +\begin{CenterExample} + \psset{unit=1.9,linewidth=0.001,PolyNbSides=72,PolyEpicycloid} + \multido{\i=71+1}{3}{% + \PstPolygon[PolyOffset=\i]\hspace{5mm}} +\end{CenterExample} + +\fvset{xrightmargin=5cm} % 5cm reserved for the graphic + +\begin{SideBySideExample} + % Epicycloid of factor 100 + \PstPolygon[unit=2,linewidth=0.003, + PolyEpicycloid,PolyNbSides=72,PolyOffset=101] +\end{SideBySideExample} + +\begin{SideBySideExample}[xrightmargin=5cm] + % Epicycloid of factor 153 + \PstPolygon[unit=2,linewidth=0.003, + PolyEpicycloid,PolyNbSides=72,PolyOffset=154] +\end{SideBySideExample} + +\clearpage + + +\begin{SideBySideExample} + \providecommand{\PstPolygonNode}{% + \psdots[dotsize=0.2,linecolor=cyan](1;\INode)} + \PstPentagon[unit=2] +\end{SideBySideExample} + +\begin{SideBySideExample} + \providecommand{\PstPolygonNode}{% + \rput{*0}(1.2;\INode){\small\the\multidocount}} + \PstPolygon[unit=2,PolyNbSides=7,PolyOffset=2] +\end{SideBySideExample} + +\begin{SideBySideExample} + \providecommand{\PstPolygonNode}{% + \rput*{*0}(1;\INode){\small\the\multidocount}} + \PstHeptagon[unit=2,PolyOffset=2] +\end{SideBySideExample} + +\begin{SideBySideExample} + \newcounter{Letter} + \providecommand{\PstPolygonNode}{% + \setcounter{Letter}{\the\multidocount}% + \rput*{*0}(1;\INode){\small\Alph{Letter}}} + \PstHeptagon[unit=2,PolyOffset=3] +\end{SideBySideExample} + +\begin{SideBySideExample} + \providecommand{\PstPolygonNode}{% + \SpecialCoor + \degrees[3] + \rput{0.5}(0.5;\INode){% + \pspolygon*(0.5;0.5)(0.5;1.5)(0.5;2.5)}} + \PstTriangle +\end{SideBySideExample} + +\begin{SideBySideExample} + \providecommand{\PstPolygonNode}{% + \psdots[dotstyle=o,dotsize=0.2](1;\INode) + \psline[linecolor=red]{->}(0.9;\INode)} + \PstPolygon[unit=2,PolyNbSides=8] +\end{SideBySideExample} + +\begin{SideBySideExample} + \providecommand{\PstPolygonNode}{% + \psline[linewidth=0.1mm,doubleline=true, + linecolor=green]{<->}(0;0)(1;\INode)} + \PstHexagon[unit=2] +\end{SideBySideExample} + +\begin{SideBySideExample} + \newbox{\Star} + \savebox{\Star}{% + \PstStarFive*[unit=0.15,linecolor=red]} + \providecommand{\PstPolygonNode}{% + \rput{*0}(1;\INode){\usebox{\Star}}} + \shortstack{% + \PstNonagon\\[5mm] + \PstDodecagon[linestyle=none]} +\end{SideBySideExample} + +\end{document} +\endinput +%% +%% End of file `tst-poly.tex'. diff --git a/Master/texmf-dist/doc/generic/pst-vue3d/Changes b/Master/texmf-dist/doc/generic/pst-vue3d/Changes new file mode 100644 index 00000000000..9e28d9dbd0c --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-vue3d/Changes @@ -0,0 +1,14 @@ +1.21 2005-02-21 hv: use always pst-xkey and using \def instead + of \edef for the parameter definitions +1.2 2004-09-12 hv: use always \pst@object for the definition + of the 3d objects +1.1 2004-08-23 hv: use the default macro style of pstricks +1.0i 2004-06-05 hv: fixed bug +1.0h 2004-01-05 ml: added dedecaedron +1.0g 2003-12-21 hv: fixed a bug in \pNodeThreeD +1.0f 2003-12-20 hv: added two eye macros, drop the options for + CX,CY,CZ and Xorigine,... + added option SphericalCoor and modify all + macros to use it +1.0e 2003-12-18 hv: edit the \AxesThreeD macro +1.0d 2003-12-18 hv: fix bug in truncated pyramid diff --git a/Master/texmf-dist/doc/generic/pst-vue3d/README b/Master/texmf-dist/doc/generic/pst-vue3d/README new file mode 100644 index 00000000000..5fb550e90c1 --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-vue3d/README @@ -0,0 +1,16 @@ +%% Package `pst-vue3d.tex' +%% +%% 2005-02-21 +%% + +Save the files + +pst-vue3.sty +pst-vue3.tex +3d.pro -> texmf/dvips/pstricks/ + +in any place, where latex or any other TeX program will find it. +Pay attention, that you cannot run the documentation with +pdflatex, PSTricks is PosTScript Tricks. +Use latex->dvips->ps2pdf or have a look at +http://PSTricks.de/pdf/pdfoutput.phtml
\ No newline at end of file diff --git a/Master/texmf-dist/doc/generic/pst-vue3d/examples/ChaiseDemo.pdf b/Master/texmf-dist/doc/generic/pst-vue3d/examples/ChaiseDemo.pdf Binary files differnew file mode 100644 index 00000000000..426b0741a34 --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-vue3d/examples/ChaiseDemo.pdf diff --git a/Master/texmf-dist/doc/generic/pst-vue3d/examples/ChaiseDemo.tex b/Master/texmf-dist/doc/generic/pst-vue3d/examples/ChaiseDemo.tex new file mode 100644 index 00000000000..8cca398d509 --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-vue3d/examples/ChaiseDemo.tex @@ -0,0 +1,36 @@ +\documentclass[a4paper]{article} +\usepackage{geometry} +\parindent=0pt +\usepackage{pstricks,pst-vue3d} +% +\definecolor{marron}{rgb}{1,0.55,0} +\def\Sol{% + \psset{normaleLongitude=90,normaleLatitude=90} + \FrameThreeD[fillcolor=lightgray,fillstyle=solid](0,0,-2)(2,-2)(-2,2) + \QuadrillageThreeD[grille=.5,linecolor=red](0,0,-2)(-2,-2)(2,2)% + \QuadrillageThreeD[grille=0.75,linecolor=cyan](0,0,-2)(-2,-2)(2,2)% +} +\def\chaise{% + \FrameThreeD[normaleLatitude=0,normaleLongitude=0,% + fillcolor=marron,fillstyle=solid](-0.8,1,2)(0.2,0)(1.8,1) + \CubeThreeD[A=.1,B=0.1,C=0.9](0.9,-0.9,-1.1) + \CubeThreeD[A=.1,B=0.1,C=0.9](0.9,0.9,-1.1) + \CubeThreeD[A=.1,B=0.1,C=2](-0.9,0.9,0) + \CubeThreeD[A=.1,B=0.1,C=2](-0.9,-0.9,0) + \CubeThreeD[A=0.9,B=1,C=0.1](0.1,0,-0.1) +} +\begin{document} + +\begin{center} + \begin{pspicture}(-5.5,-7)(5,4.5) + \psset{THETA=30,PHI=20,Dobs=10,Decran=20} + \Sol\chaise + \pNodeThreeD(-0.5,-0.3,0){littleChair} + \rput[lC](littleChair){% + \psset{THETA=30,PHI=20,Dobs=100,Decran=20} + \Sol\chaise% + } + \end{pspicture} +\end{center} + +\end{document} diff --git a/Master/texmf-dist/doc/generic/pst-vue3d/examples/CoorDemo.pdf b/Master/texmf-dist/doc/generic/pst-vue3d/examples/CoorDemo.pdf Binary files differnew file mode 100644 index 00000000000..aef6fe88b44 --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-vue3d/examples/CoorDemo.pdf diff --git a/Master/texmf-dist/doc/generic/pst-vue3d/examples/CoorDemo.tex b/Master/texmf-dist/doc/generic/pst-vue3d/examples/CoorDemo.tex new file mode 100644 index 00000000000..11a009fb95d --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-vue3d/examples/CoorDemo.tex @@ -0,0 +1,25 @@ +\documentclass[12pt]{article} +\usepackage{pstricks} +\usepackage{pst-vue3d} +\SpecialCoor +\makeatletter +% +\makeatother +\begin{document} + +\psset{unit=3} +\begin{pspicture}(-1.5,-0.75)(2.5,2.25) + \AxesThreeD(20) + \pNodeThreeD(15,18,15){P}% cartesian + \uput[0](P){P} + \psset{linecolor=red} + \qdisk(P){3pt} + \showCoorThreeD[linecolor=red](15,18,15) + \psset{linecolor=blue} + \pNodeThreeD(20;60;40){Q}% spherical + \uput[0](Q){Q} + \qdisk(Q){3pt} + \showCoorThreeD[linecolor=blue](20;60;40) +\end{pspicture} + +\end{document} diff --git a/Master/texmf-dist/doc/generic/pst-vue3d/examples/FrameDemo.pdf b/Master/texmf-dist/doc/generic/pst-vue3d/examples/FrameDemo.pdf Binary files differnew file mode 100644 index 00000000000..3c64334088c --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-vue3d/examples/FrameDemo.pdf diff --git a/Master/texmf-dist/doc/generic/pst-vue3d/examples/FrameDemo.tex b/Master/texmf-dist/doc/generic/pst-vue3d/examples/FrameDemo.tex new file mode 100644 index 00000000000..b21e6794ccf --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-vue3d/examples/FrameDemo.tex @@ -0,0 +1,58 @@ +\documentclass[12pt]{article} % Herbert Voss 2003-12-20 +\usepackage{pst-vue3d,multido} +\begin{document} + +\fbox{\begin{pspicture}(-1.3,-0.75)(2,1.1) +\FrameThreeD[% + normaleLatitude=0,% + normaleLongitude=0,% + fillcolor=green,fillstyle=solid](0,0,0)(-10,-5)(10,5)% +\AxesThreeD[linecolor=red](20,15,10) +\end{pspicture}% +} +\hfill +\fbox{\begin{pspicture}(-1.3,-0.75)(2,1.1) +\FrameThreeD[% + normaleLatitude=90,% + normaleLongitude=0,% + fillcolor=green,fillstyle=solid](0,0,0)(-10,-5)(10,5)% +\AxesThreeD[linecolor=red](20,15,10) +\end{pspicture}% +}% +\hfill +\fbox{\begin{pspicture}(-1.3,-0.75)(2,1.1) +\FrameThreeD[% + normaleLatitude=0,% + normaleLongitude=90,% + fillcolor=green,fillstyle=solid](0,0,0)(-10,-5)(10,5)% +\AxesThreeD[linecolor=red](20,15,10) +\end{pspicture} +} + + + +\fbox{\begin{pspicture}(-1.3,-0.75)(2,1.1) +\psset{normaleLatitude=0,normaleLongitude=0,linewidth=0.5pt} +\FrameThreeD[fillcolor=cyan,fillstyle=solid](0,0,0)(-10,-5)(10,5)% +\QuadrillageThreeD[grille=2.5,linecolor=black,pas=5](0,0,0)(-10,-5)(10,5)% +\AxesThreeD[linecolor=red](20,15,10) +\end{pspicture}% +} +\hfill +\fbox{\begin{pspicture}(-1.3,-0.75)(2,1.1) +\psset{normaleLatitude=90,normaleLongitude=0,linewidth=0.5pt} +\FrameThreeD[fillcolor=cyan,fillstyle=solid](0,0,0)(-10,-5)(10,5)% +\QuadrillageThreeD[grille=2.5,linecolor=black](0,0,0)(-10,-5)(10,5)% +\AxesThreeD[linecolor=red](20,15,10) +\end{pspicture}% +}% +\hfill +\fbox{\begin{pspicture}(-1.3,-0.75)(2,1.1) +\psset{normaleLatitude=0,normaleLongitude=90,linewidth=0.5pt} +\FrameThreeD[fillcolor=cyan,fillstyle=solid](0,0,0)(-10,-5)(10,5)% +\QuadrillageThreeD[grille=2.5,linecolor=black](0,0,0)(-10,-5)(10,5)% +\AxesThreeD[linecolor=red](20,15,10) +\end{pspicture} +} + +\end{document} diff --git a/Master/texmf-dist/doc/generic/pst-vue3d/examples/Line3d.pdf b/Master/texmf-dist/doc/generic/pst-vue3d/examples/Line3d.pdf Binary files differnew file mode 100644 index 00000000000..ae2b3652466 --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-vue3d/examples/Line3d.pdf diff --git a/Master/texmf-dist/doc/generic/pst-vue3d/examples/Line3d.tex b/Master/texmf-dist/doc/generic/pst-vue3d/examples/Line3d.tex new file mode 100644 index 00000000000..1796dd659f8 --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-vue3d/examples/Line3d.tex @@ -0,0 +1,66 @@ +\documentclass[12pt,a4paper]{article} +\usepackage{pstricks} +\usepackage{pst-vue3d} +\usepackage{multido} +\usepackage{geometry} +% +\begin{document} + + \psset{unit=1cm} + \begin{pspicture}(-3,-3)(3,4) + \psset{THETA=70,PHI=30,Dobs=150,Decran=10} + \AxesThreeD[linecolor=red,linestyle=dashed](50,60,50) + \pNodeThreeD(25,-25,25){A} + \pNodeThreeD(25,25,25){B} + \pNodeThreeD(25,25,-25){C} + \pNodeThreeD(25,-25,-25){D} + \pNodeThreeD(-25,-25,25){E} + \pNodeThreeD(-25,25,25){F} + \pNodeThreeD(-25,25,-25){G} + \pNodeThreeD(-25,-25,-25){H} + \pspolygon(A)(B)(C)(D) + \pspolygon(E)(F)(G)(H) + \psline(A)(E) + \psline(B)(F) + \psline(C)(G) + \psline(D)(H) + \psset{linestyle=dashed} + \psline(A)(G) + \psline(B)(H) + \psline(C)(E) + \psline(D)(F) +% routine page 49 in "présentation de PSTricks" +% D.Girou "cahier 16 Gutengerg" + \newcounter{lettre} + \multido{\i=1+1}{8}{% + \setcounter{lettre}{\i} + \psdot[linecolor=red](\Alph{lettre}) + \uput[90](\Alph{lettre}){\Alph{lettre}} + } +\end{pspicture} + + + + \begin{pspicture}(-2.5,-3.5)(3.5,1.5) + \psset{THETA=50,PHI=50,Dobs=250,Decran=10} + \multido{\iX=-70+10}{15}{% + \pNodeThreeD(\iX,0,0){X1} + \pNodeThreeD(\iX,50,0){X2} + \psline(X1)(X2) + } + \multido{\iY=0+10}{6}{% + \pNodeThreeD(-70,\iY,0){Y1} + \pNodeThreeD(70,\iY,0){Y2} + \psline(Y1)(Y2)% + } + \psset{normaleLongitude=0,normaleLatitude=90} + \multido{\iXorigine=-65+10}{14}{% + \multido{\iYorigine=5+10}{5}{% + \CircleThreeD[linecolor=red](\iXorigine,\iYorigine,0){5}% + }% + } + \end{pspicture}% + + + +\end{document} diff --git a/Master/texmf-dist/doc/generic/pst-vue3d/examples/PontDemo.pdf b/Master/texmf-dist/doc/generic/pst-vue3d/examples/PontDemo.pdf Binary files differnew file mode 100644 index 00000000000..e82f795d86e --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-vue3d/examples/PontDemo.pdf diff --git a/Master/texmf-dist/doc/generic/pst-vue3d/examples/PontDemo.tex b/Master/texmf-dist/doc/generic/pst-vue3d/examples/PontDemo.tex new file mode 100644 index 00000000000..1e0608c2b11 --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-vue3d/examples/PontDemo.tex @@ -0,0 +1,69 @@ +\documentclass[a4paper]{article} +\usepackage{geometry} +\parindent=0pt +\usepackage{pstricks,pst-grad,multido,pst-plot,pst-vue3d} +% +\input realcalc +% +\psset{dimen=middle} +\newcommand{\cables}{% + \multido{\iY=-2+4}{2}{% + \parametricplot[linewidth=3\pslinewidth]{-5}{5}{% + \variablesTroisD + /Xabscisse t def + /Yordonnee \iY\space def + /Zcote 0.1 Xabscisse dup mul mul def + tx@3DDict begin + formulesTroisD + Xi Yi + end + } + \multido{\nCable=-4.5+0.5}{20}{% + \Rmul\cote\nCable\nCable + \Rmul\cote\cote{0.1} + \LineThreeD(\nCable,\iY,\cote)(\nCable,\iY,0) + }% + }% + \LineThreeD[linewidth=3\pslinewidth](-9,-2,0)(-5,-2,2.5) + \LineThreeD[linewidth=3\pslinewidth](9,-2,0)(5,-2,2.5) + \LineThreeD[linewidth=3\pslinewidth](-9,2,0)(-5,2,2.5) + \LineThreeD[linewidth=3\pslinewidth](9,2,0)(5,2,2.5) +} +\def\bridge(#1)(#2){{% +\begin{pspicture}(#1)(#2) + \FrameThreeD[normaleLongitude=90,normaleLatitude=90,% the river + linestyle=none,fillstyle=gradient,gradbegin=white,% + gradend=blue,gradangle=45](0,0,-2)(-4,-9)(4,9) + {\psset{fracHeight=0.62, fillstyle=solid, % + ColorFaceA=lightgray,ColorFaceB=gray} + \PyramideThreeD[A=.4,B=.4,C=.4](-5,-2,-2){7}% Bridge + \PyramideThreeD[A=.5,B=.5,C=.5](5,-2,-2){7}} + \CubeThreeD[normaleLongitude=90,% the street + normaleLatitude=90,fillstyle=solid,A=9,B=2,C=0.05](0,0,0) + \multido{\nL=-8.8+0.2}{89}{% + \LineThreeD[linecolor=lightgray](\nL,-2,0)(\nL,2,0) + } + \AxesThreeD[linestyle=dashed,arrowsize=0.2,linecolor=red](6) + \cables + \psset{fracHeight=0.62, fillstyle=solid, % + ColorFaceA=lightgray,ColorFaceB=gray} + \PyramideThreeD[A=.4,B=.4,C=.4](-5,2,-2){7}% Bridge + \PyramideThreeD[A=.5,B=.5,C=.5](5,2,-2){7} +\end{pspicture} +}} + +\begin{document} +\begin{center} +\psset{PHI=30,THETA=45,Dobs=15,Decran=10} +\bridge(-7.5,-8.5)(7.5,4.5) + +\clearpage +\makebox[\linewidth]{ +\psset{PHI=0,THETA=0,Dobs=15} +\bridge(-8,-2.5)(8,4.25) +} + +\psset{PHI=90,THETA=0,Dobs=15} +\bridge(-5,-6)(5,6) +\end{center} +\end{document} diff --git a/Master/texmf-dist/doc/generic/pst-vue3d/examples/PontDemo2.pdf b/Master/texmf-dist/doc/generic/pst-vue3d/examples/PontDemo2.pdf Binary files differnew file mode 100644 index 00000000000..51d99979148 --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-vue3d/examples/PontDemo2.pdf diff --git a/Master/texmf-dist/doc/generic/pst-vue3d/examples/PontDemo2.tex b/Master/texmf-dist/doc/generic/pst-vue3d/examples/PontDemo2.tex new file mode 100644 index 00000000000..8e59c4abcb2 --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-vue3d/examples/PontDemo2.tex @@ -0,0 +1,173 @@ +\documentclass[a4paper]{article} +% Manuel Luque <MLuque@aol.com> +% Herbert Voss <voss@perce.de> - 2003/12/20 +\usepackage{pstricks} +\usepackage{pst-node} +\usepackage{pst-plot} +\usepackage{pst-grad} +\usepackage{pst-vue3d} + +\input random + +\definecolor{pelouse}{cmyk}{0.14,0.42,0.56,0} +\definecolor{base}{rgb}{1,0.8,0} +\newpsstyle{surface}{fillstyle=vlines,hatchcolor=marron,% + hatchwidth=0.2\pslinewidth,hatchsep=1\pslinewidth} +\newpsstyle{sol}{fillstyle=vlines,hatchcolor=lightgray,% + hatchwidth=0.2\pslinewidth,hatchsep=1\pslinewidth} +\SpecialCoor + +\def\fleuve{% + \FrameThreeD[normaleLatitude=90,normaleLongitude=90,% + linestyle=none,fillstyle=gradient,% + gradbegin=blue,gradend=white](0,0,-2.5)(-12,-14)(12,14) +} +\newcommand{\tablier}{% + \FrameThreeD[normaleLatitude=90,normaleLongitude=90,% + linestyle=none,fillstyle=gradient,% + gradbegin=blue,gradend=white](0,0,0)(-\Xcinf,-2)(\Xcinf,2)% + \multido{\nL=-\Xcinf+0.2}{196}{% + \LineThreeD[linecolor=lightgray](\nL,-2,0)(\nL,2,0)% + }% +} +\newcommand\rembardes{% + \multido{\iY=-2+4}{2}{% + \LineThreeD[linecolor=red](-\Xcinf,\iY,0.5)(\Xcinf,\iY,0.5) + \multido{\rX=-\Xcinf+0.4}{98}{% + \LineThreeD[linecolor=red](\rX,\iY,0)(\rX,\iY,0.5)% + }% + }% +} +\newcommand\bases{% + \multido{\iYpos=-2+4}{2}{% + \multido{\rXpos=-\Xc+\twoXc}{2}{% + \parametricplot[fillstyle=solid,fillcolor=base]{0}{360}{% + /Xabscisse t cos 1.5 mul \rXpos\space add def + /Zcote -2.5 def + /Yordonnee t sin 1.5 mul \iYpos\space add def + tx@3DDict begin + formulesTroisD + Xi Yi + end + }% + }% + }% +} +\newcommand\Berges{% + \pNodeThreeD(-\Xcinf,-14,-2){B1} + \pNodeThreeD(-12,-14,-2.5){B2} + \pNodeThreeD(-\Xcinf,14,-2){B4} + \pNodeThreeD(-12,14,-2.5){B3} + \pspolygon[fillstyle=solid,fillcolor=pelouse](B1)(B2)(B3)(B4) + \pNodeThreeD(\Xcinf,-14,-2){B1} + \pNodeThreeD(12,-14,-2.5){B2} + \pNodeThreeD(\Xcinf,14,-2){B4} + \pNodeThreeD(12,14,-2.5){B3} + \pspolygon[fillstyle=solid,fillcolor=pelouse](B1)(B2)(B3)(B4)% +} +\pagestyle{empty} + +\def\Radius{14} +\def\Xc{6.5} +\newdimen\tempXc +\tempXc=\Xc pt +\multiply\tempXc by 3 +\def\Xcinf{\pointless\tempXc} +\newdimen\temptwoXc +\temptwoXc=\Xc pt +\multiply\temptwoXc by 2 +\def\twoXc{\pointless\temptwoXc} + +\begin{document} + +\psset{PHI=40,THETA=-70,Dobs=30,Decran=8} + +\begin{pspicture}(-8,-10)(15,10) +\pNodeThreeD(0,0,0){fictif} +\fleuve% +\Berges\bases% +\multido{\iY=-2+4}{2}{% + \pnode(! + /Xc \Xc\space def + /Radius \Radius\space def + /radius1 Xc 2 Radius mul add Xc Radius mul Radius dup mul add + sqrt 2 mul sub def + /X1 radius1 def + /Hpile Radius 1 1 Xc 2 mul dup mul 4 Radius dup mul mul div + sub sqrt sub mul neg def + X1 radius1){PointInitial} + \LineThreeD(-\Xcinf,\iY,-2)(-\Xcinf,\iY,0) + \LineThreeD(\Xcinf,\iY,-2)(\Xcinf,\iY,0) + \LineThreeD(-19.5,\iY,0)(19.5,\iY,0) + \LineThreeD(-\Xc,\iY,-2.5)(-\Xc,\iY,0) + \LineThreeD(\Xc,\iY,0)(\Xc,\iY,-2.5) + \multido{\nX=-13+13}{3}{% + \parametricplot{62.336}{117.664}{% + /Xabscisse t cos Radius mul \nX\space add def + /Zcote t sin Radius mul Radius sub def + /Yordonnee \iY\space def + tx@3DDict begin + formulesTroisD + Xi Yi + end + } + \parametricplot{0}{360}{% + /Xabscisse t cos radius1 mul radius1 add Xc sub \nX\space add def + /Zcote t sin radius1 mul radius1 add neg def + /Yordonnee \iY\space def + tx@3DDict begin + formulesTroisD + Xi Yi + end + } + \parametricplot{0}{360}{% + /Xabscisse t cos radius1 mul radius1 add neg Xc 2 mul add \nX\space add Xc sub def + /Zcote t sin radius1 mul radius1 add neg def + /Yordonnee \iY\space def + tx@3DDict begin + formulesTroisD + Xi Yi + end + } + \multido{\i=0+1}{30}{% + \pnode(! + /B Radius X1 mul Xc radius1 mul sub neg def + /A Radius radius1 sub def + /C X1 X1 mul Radius mul Xc Xc mul radius1 mul sub def + /Discriminant B B mul A C mul sub sqrt def + /X2 B neg Discriminant add A div def + /radius2 X2 X1 sub 2 exp 4 radius1 mul div def + X2 radius2){fictif1} + \multido{\nX=-13+13}{3}{% + \parametricplot{0}{360}{% + /Xabscisse t cos radius2 mul X2 add Xc sub \nX\space add def + /Zcote t sin radius2 mul radius2 add neg def + /Yordonnee \iY\space def + tx@3DDict begin + formulesTroisD + Xi Yi + end + } + \parametricplot{0}{360}{% + /Xabscisse t cos radius2 mul X2 add neg Xc 2 mul add Xc sub \nX\space add def + /Zcote t sin radius2 mul radius2 add neg def + /Yordonnee \iY\space def + tx@3DDict begin + formulesTroisD + Xi Yi + end + }% + } + \pnode(! + /X1 X2 def + /radius1 radius2 def + X1 radius1){fictif2} + } + }% +} +\tablier +\rembardes +\AxesThreeD[linestyle=dashed,arrowsize=0.2](21,16,10) +\end{pspicture} + +\end{document} diff --git a/Master/texmf-dist/doc/generic/pst-vue3d/examples/PontDemo3.pdf b/Master/texmf-dist/doc/generic/pst-vue3d/examples/PontDemo3.pdf Binary files differnew file mode 100644 index 00000000000..6b3116a610f --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-vue3d/examples/PontDemo3.pdf diff --git a/Master/texmf-dist/doc/generic/pst-vue3d/examples/PontDemo3.tex b/Master/texmf-dist/doc/generic/pst-vue3d/examples/PontDemo3.tex new file mode 100644 index 00000000000..ececb1d3531 --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-vue3d/examples/PontDemo3.tex @@ -0,0 +1,170 @@ +\documentclass[a4paper]{article} +% Manuel Luque <MLuque@aol.com> +% Herbert Voss <voss@perce.de> - 2003/12/20 +\usepackage{pstricks} +\usepackage{pst-node} +\usepackage{pst-plot} +\usepackage{pst-grad} +\usepackage{pst-vue3d} +\usepackage{multido} + +\input random + +\definecolor{pelouse}{cmyk}{0.14,0.42,0.56,0} +\definecolor{base}{rgb}{1,0.8,0} +\newpsstyle{surface}{fillstyle=vlines,hatchcolor=marron,% + hatchwidth=0.2\pslinewidth,hatchsep=1\pslinewidth} +\newpsstyle{sol}{fillstyle=vlines,hatchcolor=lightgray,% + hatchwidth=0.2\pslinewidth,hatchsep=1\pslinewidth} + +\SpecialCoor + +\def\fleuve{% + \FrameThreeD[normaleLatitude=90,normaleLongitude=90,% + linestyle=none,fillstyle=gradient,% + gradbegin=blue,gradend=white](0,0,-2.5)(-12,-14)(12,14) +} +\newcommand{\tablier}{% + \FrameThreeD[normaleLatitude=90,normaleLongitude=90,% + linestyle=none,fillstyle=gradient,% + gradbegin=gray,gradend=white](0,0,0)(-\Xcinf,-2)(\Xcinf,2)% + \multido{\nL=-\Xcinf+0.2}{196}{% + \LineThreeD[linecolor=lightgray](\nL,-2,0)(\nL,2,0)% + }% +} +\newcommand\rembardes{% + \multido{\iY=-2+4}{2}{% + \LineThreeD[linecolor=red](-\Xcinf,\iY,0.5)(\Xcinf,\iY,0.5) + \multido{\rX=-\Xcinf+0.4}{98}{% + \LineThreeD[linecolor=red](\rX,\iY,0)(\rX,\iY,0.5)% + }% + }% +} +\newcommand\bases{% + \multido{\iYpos=-2+4}{2}{% + \multido{\rXpos=-\Xc+\twoXc}{2}{% + \parametricplot[fillstyle=solid,fillcolor=base]{0}{360}{% + /Xabscisse t cos 1.5 mul \rXpos\space add def + /Zcote -2.5 def + /Yordonnee t sin 1.5 mul \iYpos\space add def + tx@3DDict begin + formulesTroisD + Xi Yi + end + }% + }% + }% +} +\newcommand\Berges{% + \pNodeThreeD(-\Xcinf,-14,-2){B1} + \pNodeThreeD(-12,-14,-2.5){B2} + \pNodeThreeD(-\Xcinf,14,-2){B4} + \pNodeThreeD(-12,14,-2.5){B3} + \pspolygon[fillstyle=solid,fillcolor=pelouse](B1)(B2)(B3)(B4) + \pNodeThreeD(\Xcinf,-14,-2){B1} + \pNodeThreeD(12,-14,-2.5){B2} + \pNodeThreeD(\Xcinf,14,-2){B4} + \pNodeThreeD(12,14,-2.5){B3} + \pspolygon[fillstyle=solid,fillcolor=pelouse](B1)(B2)(B3)(B4)% +} + +\pagestyle{empty} + +\def\Radius{14} +\def\Xc{6.5} +\newdimen\tempXc +\tempXc=\Xc pt +\multiply\tempXc by 3 +\def\Xcinf{\pointless\tempXc} +\newdimen\temptwoXc +\temptwoXc=\Xc pt +\multiply\temptwoXc by 2 +\def\twoXc{\pointless\temptwoXc} + +\begin{document} + +\begin{pspicture}(-4,-10)(15,10) +\psset{PHI=20,THETA=-30,Dobs=30,Decran=10} +\pNodeThreeD(0,0,0){fictif} +\fleuve\Berges\bases% +\multido{\iY=-2+4}{2}{% + \pnode(! + /Xc \Xc\space def + /Radius \Radius\space def + /radius1 Xc 2 Radius mul add Xc Radius mul Radius dup mul add + sqrt 2 mul sub def + /X1 radius1 def + /Hpile Radius 1 1 Xc 2 mul dup mul 4 Radius dup mul mul div + sub sqrt sub mul neg def + X1 radius1){PointInitial} + \LineThreeD(-\Xcinf,\iY,-2)(-\Xcinf,\iY,0) + \LineThreeD(\Xcinf,\iY,-2)(\Xcinf,\iY,0) + \LineThreeD(-19.5,\iY,0)(19.5,\iY,0) + \LineThreeD(-\Xc,\iY,-2.5)(-\Xc,\iY,0) + \LineThreeD(\Xc,\iY,0)(\Xc,\iY,-2.5) + \multido{\nX=-13+13}{3}{% + \parametricplot{62.336}{117.664}{% + /Xabscisse t cos Radius mul \nX\space add def + /Zcote t sin Radius mul Radius sub def + /Yordonnee \iY\space def + tx@3DDict begin + formulesTroisD + Xi Yi + end + } + \parametricplot{0}{360}{% + /Xabscisse t cos radius1 mul radius1 add Xc sub \nX\space add def + /Zcote t sin radius1 mul radius1 add neg def + /Yordonnee \iY\space def + tx@3DDict begin + formulesTroisD + Xi Yi + end + } + \parametricplot{0}{360}{% + /Xabscisse t cos radius1 mul radius1 add neg Xc 2 mul add \nX\space add Xc sub def + /Zcote t sin radius1 mul radius1 add neg def + /Yordonnee \iY\space def + tx@3DDict begin + formulesTroisD + Xi Yi + end + } + } + \multido{\i=0+1}{30}{% + \pnode(! + /B Radius X1 mul Xc radius1 mul sub neg def + /A Radius radius1 sub def + /C X1 X1 mul Radius mul Xc Xc mul radius1 mul sub def + /Discriminant B B mul A C mul sub sqrt def + /X2 B neg Discriminant add A div def + /radius2 X2 X1 sub 2 exp 4 radius1 mul div def + X2 radius2){fictif1} + \multido{\nX=-13+13}{3}{% + \parametricplot{0}{360}{% + /Xabscisse t cos radius2 mul X2 add Xc sub \nX\space add def + /Zcote t sin radius2 mul radius2 add neg def + /Yordonnee \iY\space def + tx@3DDict begin + formulesTroisD + Xi Yi + end + } + \parametricplot{0}{360}{% + /Xabscisse t cos radius2 mul X2 add neg Xc 2 mul add Xc sub \nX\space add def + /Zcote t sin radius2 mul radius2 add neg def + /Yordonnee \iY\space def + tx@3DDict begin + formulesTroisD + Xi Yi + end + }% + } + \pnode(! /X1 X2 def /radius1 radius2 def X1 radius1){fictif2} + }% +} +\tablier +\rembardes +\AxesThreeD[linestyle=dashed,arrowsize=0.2](21,16,10) +\end{pspicture} +\end{document} diff --git a/Master/texmf-dist/doc/generic/pst-vue3d/examples/PyramidDemo.pdf b/Master/texmf-dist/doc/generic/pst-vue3d/examples/PyramidDemo.pdf Binary files differnew file mode 100644 index 00000000000..7dc446803ca --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-vue3d/examples/PyramidDemo.pdf diff --git a/Master/texmf-dist/doc/generic/pst-vue3d/examples/PyramidDemo.tex b/Master/texmf-dist/doc/generic/pst-vue3d/examples/PyramidDemo.tex new file mode 100644 index 00000000000..b0cf19da007 --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-vue3d/examples/PyramidDemo.tex @@ -0,0 +1,17 @@ +\documentclass{article} +\usepackage{pst-vue3d} +\begin{document} + \psset{THETA=30,PHI=30,Dobs=400,Decran=30,fillstyle=solid} + \begin{pspicture}(-2.5,-2)(2.5,12) + \PyramideThreeD[fracHeight=0.5,A=10](0,0,0){150}% + \psset{A=5} + \PyramideThreeD(0,0,75){5}% + \end{pspicture}% + % + \begin{pspicture}(-2.5,-2)(2.5,12) + \CubeThreeD[A=15,B=15,C=15](0,0,15)% + \PyramideThreeD[fracHeight=0.5,A=10](0,0,30){150}% + \psset{A=5} + \PyramideThreeD(0,0,105){5}% + \end{pspicture}% +\end{document} diff --git a/Master/texmf-dist/doc/generic/pst-vue3d/examples/SphereDemo0.pdf b/Master/texmf-dist/doc/generic/pst-vue3d/examples/SphereDemo0.pdf Binary files differnew file mode 100644 index 00000000000..908c16af5d2 --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-vue3d/examples/SphereDemo0.pdf diff --git a/Master/texmf-dist/doc/generic/pst-vue3d/examples/SphereDemo0.tex b/Master/texmf-dist/doc/generic/pst-vue3d/examples/SphereDemo0.tex new file mode 100644 index 00000000000..ec86ad42a83 --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-vue3d/examples/SphereDemo0.tex @@ -0,0 +1,57 @@ +\documentclass[12pt]{article} +\usepackage{pstricks} +\usepackage{pst-grad} +\usepackage{pst-vue3d} + +\newpsstyle{GradGrayWhite}{fillstyle=gradient,% + gradbegin=blue,gradend=white,linewidth=0.1mm}% + +\begin{document} + +\begin{pspicture}(-3.75,-3.25)(5,5.5) + \AxesThreeD(45,40,50) + \psset{PortionSphereTHETA=60,PortionSpherePHI=45,linewidth=0.1pt} + \SphereThreeD[fillstyle=solid,fillcolor=cyan,linewidth=0.1pt](0,0,0){30} + \PortionSphereThreeD[fillstyle=solid,fillcolor=red](0,0,0){30} + \LineThreeD[SphericalCoor,linestyle=dashed](0,0,0)(30,70,35) + \LineThreeD[SphericalCoor,linestyle=dashed](0,0,0)(30,50,35) + \LineThreeD[SphericalCoor,linestyle=dashed](0,0,0)(30,70,55) + \LineThreeD[SphericalCoor,linestyle=dashed](0,0,0)(30,50,55) + \LineThreeD[SphericalCoor](30,70,35)(50,70,35) + \LineThreeD[SphericalCoor](30,50,35)(50,50,35) + \LineThreeD[SphericalCoor](30,70,55)(50,70,55) + \LineThreeD[SphericalCoor](30,50,55)(50,50,55) + \PortionSphereThreeD[fillstyle=solid,fillcolor=red](0,0,0){50} + \psset{linestyle=dashed,linecolor=red,linewidth=\pslinewidth} + \LineThreeD(0,0,0)(30,0,0) + \LineThreeD(0,0,0)(0,30,0) + \LineThreeD(0,0,0)(0,0,30) +\end{pspicture} + +\begin{pspicture}(-3,-3.5)(3,5)% + \psset{THETA=30,PHI=30,Dobs=100,Decran=10}% + \SphereThreeD[fillstyle=solid,fillcolor=cyan,linewidth=0.1pt](0,0,0){20} + \AxesThreeD(25) + \PortionSphereThreeD[fillstyle=solid,fillcolor=gray](0,0,0){20}% + \pNodeThreeD(20;10;10){C1}% + \pNodeThreeD(40;10;10){D1}% + \psline(C1)(D1)% + \pNodeThreeD(20;10;-10){C2}% + \pNodeThreeD(40;10;-10){D2}% + \psline(C2)(D2)% + \pNodeThreeD(20;-10;-10){C3}% + \pNodeThreeD(40;-10;-10){D3}% + \psline(C3)(D3)% + \pNodeThreeD(20;-10;10){C4}% + \pNodeThreeD(40;-10;10){D4}% + \psline(C4)(D4)% +% + \PortionSphereThreeD[style=GradGrayWhite](0,0,0){40}% + \psset{linecolor=white,PhiCercle=45}% + \SphereCercleThreeD(0,0,0){20}% + \SphereMeridienThreeD[ThetaMeridien=45](0,0,0){20}% + \SphereCercleThreeD[PhiCercle=0](0,0,0){20}% + \SphereMeridienThreeD[THETA=30,PHI=30,ThetaMeridien=0](0,0,0){20}% +\end{pspicture} + +\end{document} diff --git a/Master/texmf-dist/doc/generic/pst-vue3d/vue3d-e.pdf b/Master/texmf-dist/doc/generic/pst-vue3d/vue3d-e.pdf Binary files differnew file mode 100644 index 00000000000..d3bf27167b8 --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-vue3d/vue3d-e.pdf diff --git a/Master/texmf-dist/doc/generic/pst-vue3d/vue3d-e.tex b/Master/texmf-dist/doc/generic/pst-vue3d/vue3d-e.tex new file mode 100644 index 00000000000..12862908874 --- /dev/null +++ b/Master/texmf-dist/doc/generic/pst-vue3d/vue3d-e.tex @@ -0,0 +1,1260 @@ +\listfiles +\documentclass[english]{article} +\usepackage[T1]{fontenc} +\usepackage[latin1]{inputenc} +\usepackage{lmodern}% only for PDF output +\usepackage[a4paper,bmargin=2cm,tmargin=2cm]{geometry} +\usepackage{url} +\usepackage{morefloats} +\setcounter{totalnumber}{10} +\setcounter{dbltopnumber}{10} +\renewcommand{\textfraction}{0} +\usepackage{subfigure} +% Mluque5130@aol.com +% 17 octobre 2003 +% Herbert Voss <voss@pstricks.de> +% September 2004 +\def\UrlFont{\small\ttfamily} +\makeatletter +\def\verbatim@font{\footnotesize\normalfont\ttfamily} +\makeatother +\usepackage[colorlinks,linktocpage]{hyperref} +\usepackage[english]{babel} +\usepackage{pstricks,multido,pst-grad} +\usepackage{pst-vue3d} +\let\VueFversion\fileversion +\usepackage{pst-example} +% +\definecolor{GrisClair} {rgb}{0.6,0.7,0.8} +\definecolor{GrisTresClair} {rgb}{0.8,0.9,0.7} +\definecolor{GrayA} {rgb}{0.35,0.95,0.95} +\definecolor{GrayB} {rgb}{0.85,0.85,0.35} +\definecolor{GrayC} {rgb}{0.75,0.35,0.55} +\definecolor{GrayD} {rgb}{0.65,0.65,0.65} +\definecolor{GrayE} {rgb}{0.7,0.9,0.65} +\definecolor{LightBlue}{rgb}{.68,.85,.9} +% +\newcommand\tapis{% + \psset{normaleLatitude=90,normaleLongitude=0} + \FrameThreeD[fillcolor=green,fillstyle=solid](0,0,-5)(-20,-20)(20,20) + \QuadrillageThreeD[grille=10](0,0,-5)(-20,-20)(20,20)% +} +% +\def\Table{{% + \CubeThreeD[A=30,B=30,C=2,CubeColorFaceOne={.7 .6 .5}](0,0,-2) + \psset{normaleLongitude=0,normaleLatitude=90} + \QuadrillageThreeD[linewidth=0.2mm,linecolor=white,% + grille=5](0,0,0)(-30,-30)(30,30) +}} +% +\def\DessusTable{{% + \psset{normaleLongitude=0,normaleLatitude=90} + \QuadrillageThreeD[linewidth=0.2mm,linecolor=gray,% + grille=5](0,0,0)(-30,-30)(30,30)% +}} +\def\PlansOXYZ{{% + \psset{normaleLongitude=0,normaleLatitude=90} + \FrameThreeD[fillstyle=solid,fillcolor=GrisClair](0,0,0)(-50,0)(0,50) + \QuadrillageThreeD[linewidth=0.2mm,grille=10](0,0,0)(-50,0)(0,50)% + \psset{normaleLongitude=90,normaleLatitude=0} + \FrameThreeD[fillstyle=solid,fillcolor=GrisTresClair](0,0,0)(0,0)(50,-50) + \QuadrillageThreeD[linewidth=0.2mm,grille=10](0,0,0)(0,-50)(50,0)% + \psset{normaleLongitude=0,normaleLatitude=0} + \FrameThreeD[fillstyle=solid,fillcolor=GrisTresClair](0,0,0)(-50,0)(0,-50) + \QuadrillageThreeD[linewidth=0.2mm,grille=10](0,0,0)(-50,-50)(0,0)% + }} +\psset{CubeColorFaceOne=1 1 1,% + CubeColorFaceTwo=1 0 0,% + CubeColorFaceThree=0 1 0,% + CubeColorFaceFour=0 0 1,% + CubeColorFaceFive=1 1 0,% + CubeColorFaceSix=0 1 1} +% +\def\hexagon{% +\begin{pspicture}(-2.2,-2.2)(2.2,2) + \Table + \pNodeThreeD(-8.66,-5,0){A6} + \pNodeThreeD(-8.66,5,0){A1} + \pNodeThreeD(0,10,0){A2} + \pNodeThreeD(8.66,5,0){A3} + \pNodeThreeD(8.66,-5,0){A4} + \pNodeThreeD(0,-10,0){A5}% + \psclip{\pspolygon[fillstyle=solid,fillcolor=GrisClair,% + linestyle=none](A1)(A2)(A3)(A4)(A5)(A6)} + \DessusTable + \endpsclip + \psset{A=5,B=5,C=5} + \CubeThreeD[RotZ=60](-6.83,-11.830,5)%6 + \CubeThreeD[RotZ=120](6.83,-11.830,5)%5 + \CubeThreeD(-13.86,0,5)%1 + \CubeThreeD[RotZ=-60](-6.83,11.830,5)%2 + \CubeThreeD[RotZ=-120](6.83,11.830,5)%3 + \CubeThreeD[RotZ=180](13.86,0,5)%4 +\end{pspicture}% +} +% +\def\stardodecagon{% + \begin{pspicture}(-2.2,-2)(2.2,2.2) + \Table + \pNodeThreeD(-6.83,-11.83,0){A6}% + \pNodeThreeD(-13.86,0,0){A1}% + \pNodeThreeD(-6.83,11.83,0){A2}% + \pNodeThreeD(6.83,11.83,0){A3}% + \pNodeThreeD(13.86,0,0){A4}% + \pNodeThreeD(6.83,-11.83,0){A5}% + \psclip{\pspolygon[fillstyle=solid,fillcolor=GrisClair,% + linestyle=none](A1)(A2)(A3)(A4)(A5)(A6)} + \DessusTable + \endpsclip% + \psset{A=5,B=5,C=5} + \CubeThreeD[RotZ=105](-10.6066,6.12372,5)%2 + \CubeThreeD[RotZ=45](0,12.2474,5)%1 + \CubeThreeD[RotZ=345](10.6066,6.12372,5)%6 + \CubeThreeD[RotZ=165](-10.6066,-6.12372,5)%3 + \CubeThreeD[RotZ=225](0,-12.2474,5)%4 + \CubeThreeD[RotZ=285](10.6066,-6.12372,5)%5 +\end{pspicture}} +% +\def\pentagon{% + \begin{pspicture}(-2.2,-2.2)(2.2,2.2) + \Table + \pNodeThreeD(8.5065,0,0){A1}% + \pNodeThreeD(2.6287,8.09,0){A2}% + \pNodeThreeD(-6.882,5,0){A3}% + \pNodeThreeD(-6.882,-5,0){A4}% + \pNodeThreeD(2.6287,-8.09,0){A5}% + \psclip{\pspolygon[fillstyle=solid,fillcolor=GrisClair,% + linestyle=none](A1)(A2)(A3)(A4)(A5)} + \DessusTable + \endpsclip% + \psset{A=5,B=5,C=5} + \CubeThreeD(-11.88,0,5)%1 + \CubeThreeD[RotZ=72](-3.617,-11.3,5)%5 + \CubeThreeD[RotZ=-72](-3.617,11.3,5)%2 + \CubeThreeD[RotZ=-144](9.61267,6.984,5)%3 + \CubeThreeD[RotZ=144](9.61267,-6.984,5)%4 +\end{pspicture}} +% +\def\stardecagon{% + \begin{pspicture}*(-2.2,-1.75)(2.2,2.2) + \Table + \pNodeThreeD(-12.03,0,0){A1}% + \pNodeThreeD(-3.7178,-11.44,0){A2}% + \pNodeThreeD(9.7325,-7.071,0){A3}% + \pNodeThreeD(9.7325,7.071,0){A4}% + \pNodeThreeD(-3.7178,11.44,0){A5}% + \psclip{\pspolygon[fillstyle=solid,fillcolor=GrisClair,% + linestyle=none](A1)(A2)(A3)(A4)(A5)} + \DessusTable + \endpsclip% + \psset{A=5,B=5,C=5} + \CubeThreeD[RotZ=81](-7.87375,-5.72061,5)%4 + \CubeThreeD[RotZ=9](-7.87375,5.72061,5)%3 + \CubeThreeD[RotZ=153](3.0075,-9.2561,5)%5 + \CubeThreeD[RotZ=-63](3.0075,9.25615,5)%2 + \CubeThreeD[RotZ=-135](9.73249,0,5)%1 +\end{pspicture}% +} +\def\octogon{% + \begin{pspicture}(-2.2,-2.2)(2.2,2.2) + \Table + \pNodeThreeD(12.07,5,0){A1}% + \pNodeThreeD(5,12.07,0){A2}% + \pNodeThreeD(-5,12.07,0){A3}% + \pNodeThreeD(-12.07,5,0){A4}% + \pNodeThreeD(-12.07,-5,0){A5}% + \pNodeThreeD(-5,-12.071,0){A6}% + \pNodeThreeD(5,-12.07,0){A7}% + \pNodeThreeD(12.07,-5,0){A8}% + \psclip{\pspolygon[fillstyle=solid,fillcolor=GrisClair,% + linestyle=none](A1)(A2)(A3)(A4)(A5)(A6)(A7)(A8)} + \DessusTable + \endpsclip% + \psset{A=5,B=5,C=5} + \CubeThreeD(-17.07,0,5)%5 + \CubeThreeD[RotZ=45](-12.07,-12.07,5)%6 + \CubeThreeD[RotZ=90](0,-17.07,5)%7 + \CubeThreeD[RotZ=135](12.07,-12.07,5)%8 + \CubeThreeD[RotZ=-45](-12.07,12.07,5)%4 + \CubeThreeD[RotZ=-90](0,17.07,5)%3 + \CubeThreeD[RotZ=-135](12.07,12.07,5)%2 + \CubeThreeD[RotZ=180](17.07,0,5)%1 +\end{pspicture}% +} +% +\def\starhexadecagon{% + \begin{pspicture}(-2.2,-2)(2.2,2.2) + \Table + \pNodeThreeD(17.07,7.07,0){A1}% + \pNodeThreeD(7.07,17.07,0){A2}% + \pNodeThreeD(-7.07,17.07,0){A3}% + \pNodeThreeD(-17.07,7.07,0){A4}% + \pNodeThreeD(-17.07,-7.07,0){A5}% + \pNodeThreeD(-7.07,-17.07,0){A6}% + \pNodeThreeD(7.07,-17.07,0){A7}% + \pNodeThreeD(17.07,-7.07,0){A8}% + \psclip{\pspolygon[fillstyle=solid,fillcolor=GrisClair,% + linestyle=none](A1)(A2)(A3)(A4)(A5)(A6)(A7)(A8)} + \DessusTable + \endpsclip% + \psset{A=5,B=5,C=5} + \CubeThreeD[RotZ=225](-17.07,0,5)%5 + \CubeThreeD[RotZ=-90](-12.07,-12.07,5)%6 + \CubeThreeD[RotZ=-45](0,-17.07,5)%7 + \CubeThreeD(12.07,-12.07,5)%8 + \CubeThreeD[RotZ=180](-12.07,12.07,5)%4 + \CubeThreeD[RotZ=135](0,17.07,5)%3 + \CubeThreeD[RotZ=90](12.07,12.07,5)%2 + \CubeThreeD[RotZ=45](17.07,0,5)%1 +\end{pspicture}} +% +\def\DecorSable{% + \FrameThreeD[normaleLongitude=0,normaleLatitude=90,% + fillstyle=solid,fillcolor=GrayE](0,0,0)(-60,-60)(60,60) + \QuadrillageThreeD[normaleLongitude=0,normaleLatitude=90,% + linecolor=GrayA,linewidth=0.2mm,grille=10](0,0,0)(-60,-60)(60,60)% +} +\newpsstyle{GradGrayWhite}{fillstyle=gradient,% + gradbegin=blue,gradend=white,linewidth=0.1mm}% + +\begin{document} + +\title{3D views with \texttt{pst-vue3d}\\[3ex] + \normalsize (v. \VueFversion)} +\author{Manuel Luque\thanks{\url{mluque5130 _at_ aol.com}}\ +and Herbert Vo\ss\thanks{\url{voss _at_ pstricks.de}}} + +\maketitle +\tableofcontents +\clearpage + +\section{Presentation} +The 3D representation of an object or a landscape is one of the +most interesting subject in computer science and have many +industrial applications (car and plane design, video game +etc\ldots). In a smaller way, one can obtain very didactic +realizations using PSTricks with two peculiarities: +\begin{itemize} + \item using PostScript; + \item being manageable through \LaTeX. +\end{itemize} +Package \texttt{pst-key} of David \textsc{Carlisle} allows to +write commands with parameters. Using this as an interface, one +can observe the result of little modifications of some parameters. +Our parameters being here: the position of the watcher, the choice +of an solid (cube, sphere etc\ldots) and many other things. I want +to signal that +\begin{itemize} +\item +Regarding 3D representation, one does not forget the package pst-3d by Timothy Van Zandt +who has used the best part of Post\-Script. Althrought limited to parallel projections, +this package allows to draw very interesting 3D figure.\footnote{A lot of different examples +for 3D images are available at: \url{http://members.aol.com/Mluque5130/}} +\item Thanks to Denis \textsc{Girou}, i have discovered the +package \texttt{pst-xkey} and I have learned it. +\item I have written another package for drawing picture reflecting +in spherical mirrors.% +\footnote{\url{http://melusine.eu.org/syracuse/mluque/BouleMiroir/boulemiroir.html}} + +It is a french paper which illustrate a study of Pr. Henri +\textsc{Bouasse} from this book \textit{Optique sup\'erieure}, edited in $1917$ by Delagrave. +\end{itemize} + + +\section{Aims} +First, we want to draw the 3D representation with elimination of +the hidden parts of some objects. + +The position of the watcher will be defined by its spherical +coordinates: the distances from the origin, the longitude $\theta$ +and the latitude $\phi$. We will choose, too, the distance of the +projection screen from this point. + +Second, we want to define some $3D$ elements of the scene: the bricks. + +The following bricks are already defined +\begin{itemize} +\item A box given by its three dimensions \verb+A,B,C+: it could +be turn into a cube or a dice. +\item A point which can be defined it two ways +\begin{itemize} +\item By cartesian coordinates $(x,y,z)$ +\item Or by spherical coordinates $(R,\theta,\phi)$ + ($\theta$, $\phi$ are, respectively, longitude and latitude). +\end{itemize} +\item A rectangle. +\item A circle defined by the normal line to its plane, its center +and its radius. An arc is defined as the circle with two limit +angles. +\item A tetrahedron given by the coordinates of the center of its +base and the radius of the circle containing the vertex of each +faces. We can make it rotate. +\item A square pyramid given by the half of the length of the side +of its base and its height. We can make it rotate and move. +\item A sphere given by the coordinates of its center \verb+\SphereThreeD(x,y,z){Radius}+ +and its radius. We can make it rotate with the parameters +\verb+RotX=...+, \verb+RotY=...+, \verb+RotZ=...+ We can choose to +draw only some meridians and parallel circles. + \item A solid or empty half-sphere (same parameters than a sphere) + \item A vertical cylinder defined by its radius and its height. We + can make it rotate using the parameters \verb+RotX=...+, \verb+RotY=...+, \verb+RotZ=...+ + An we can choose the center of its base in the same way than the Sphere. +\item A cone and a truncated cone defined by the radius of their +base, the height and the height of the truncature. +\end{itemize} + +\vspace*{1cm} +To construct a scene, one may choose himself the order of the +objects. For example, if an object 1 is partially hidden by an +object 2, we write, in the list of commands, first object 1 and +second object 2. + +\section{Rotating in the 3D space} + +A 3D object can be rotated around every axes with the \verb+RotX+, \verb+RotY+ and +\verb+RotZ+ option. They can be mixed in every combination. Figure~\ref{fig:rot} shows +how a rotation around the z-axes works. + +\begin{figure}[!htb] +\multido{\iRotZ=0+45}{8}{% + \begin{pspicture}(-1.5,-1.5)(1.5,1.5) + \psset{THETA=70,PHI=30,Dobs=200,Decran=10} + \psset{A=5,B=5,C=A,fillstyle=solid,fillcolor=GrisClair,% + linecolor=red, RotZ=\iRotZ} + \tapis\DieThreeD(0,0,0)% + \LineThreeD[linecolor=red,linestyle=dashed,arrows=->](0,0,0)(0,0,25) + \pNodeThreeD(0,0,12.5){Z'} + \uput[180](Z'){\texttt{RotZ=\iRotZ}} + \end{pspicture}\hfill % +} + +\psset{THETA=-10,PHI=20,Dobs=200,Decran=10} +\multido{\iCX=0+30}{8}{% + \begin{pspicture}(-1.5,-1.5)(1.5,1.5) + \AxesThreeD{->}(50,20,20) + \psset{A=20,B=5,C=10,fillstyle=solid,fillcolor=LightBlue,linecolor=gray} + \psset{RotZ=0,RotY=0,RotX=\iCX} + \CubeThreeD(0,0,0)% + \psset{linestyle=dashed} + \end{pspicture}\hfill% +}% +\caption{Diffenerent views of a die and a cube\label{fig:rot}} +\end{figure} + + +\section{Location of the cube in the space} +Suppose that one wants to place a 10-units edge cube at the point +$(x=40,y=40,z=35)$. First, the half edge of the cube will be +define by the parameters : \verb+A=5,B=5,C=5+, and next the +coordinates of its center by \texttt{(40,40,35)}. On the +figure, the period of the grid is 10~units +(figure~\ref{coordinates}). + +\begin{figure}[!htb] +\centering +\begin{Beispiel}[colwidth=0.45\linewidth] +\psset{THETA=30,PHI=30,Dobs=200,Decran=12} +\begin{pspicture}(-2.8,-3)(3.5,3.5) + \PlansOXYZ + \pNodeThreeD(40,40,35){G} + \pNodeThreeD(40,40,0){G_XY} + \pNodeThreeD(40,0,0){G_X} + \pNodeThreeD(0,40,0){G_Y} + \pNodeThreeD(0,0,35){G_Z} + \pNodeThreeD(0,40,35){G_YZ} + \pNodeThreeD(40,0,35){G_XZ} + \psdots(G)(G_XY)(G_XZ)(G_YZ)(G_X)(G_Y)(G_Z) + \psline(G)(G_XY) + \psline(G)(G_XZ) + \psline(G)(G_YZ) + \psline(G_Z)(G_XZ) + \psline(G_Z)(G_YZ) + \AxesThreeD{->}(55) +\end{pspicture} +\end{Beispiel} +\caption{\label{coordinates}Origin \texttt{(40,40,35)}} +\end{figure} + +\begin{figure}[!ht] +\centering +\begin{Beispiel}[colwidth=0.45\linewidth] +\psset{THETA=30,PHI=30,Dobs=200,Decran=12} +\begin{pspicture}(-2.8,-3)(3.5,3.5) + \PlansOXYZ + \pNodeThreeD(40,40,35){G} + \pNodeThreeD(40,40,0){G_XY} + \pNodeThreeD(40,0,0){G_X} + \pNodeThreeD(0,40,0){G_Y} + \pNodeThreeD(0,0,35){G_Z} + \pNodeThreeD(0,40,35){G_YZ} + \pNodeThreeD(40,0,35){G_XZ} + \psdots(G)(G_XY)(G_XZ)(G_YZ)(G_X)(G_Y)(G_Z) + \psline(G)(G_XY) + \psline(G)(G_XZ) + \psline(G)(G_YZ) + \psline(G_Z)(G_XZ) + \psline(G_Z)(G_YZ) + \psset{A=5,B=5,C=5} + \DieThreeD(40,40,35)% + \AxesThreeD{->}(55) +\end{pspicture} +\end{Beispiel} +\caption{\label{CubeOne}The placed cube.} +\end{figure} + + +To make it rotate of around $OX$ , one adds the parameter \verb+RotX=90+(figure~\ref{RotX}). + +\begin{figure}[!ht] +\begin{Beispiel}[colwidth=0.45\linewidth] +\psset{THETA=30,PHI=30,Dobs=200,Decran=12} +\begin{pspicture}(-2.8,-3)(3.5,3.5) + \PlansOXYZ + \AxesThreeD{->}(55) + \psset{A=5,B=5,C=5,RotX=90} + % projections sur les plaans + \DieThreeD(40,40,5)% + \DieThreeD(5,40,35)% + \DieThreeD(40,5,35)% + \pNodeThreeD(40,40,35){G} + \pNodeThreeD(40,40,10){G_XY} + \pNodeThreeD(10,40,35){G_YZ} + \pNodeThreeD(40,10,35){G_XZ} + \psline(G)(G_XY) + \psline(G)(G_XZ) + \psline(G)(G_YZ) + \DieThreeD(40,40,35)% +\end{pspicture} +\end{Beispiel} +\caption{\label{RotX} 90\textsuperscript{o} rotation around $OX$ and plane projections.} +\end{figure} + + +Three successive rotations around three axes with: \verb+RotX=60,RotY=20,RotZ=110+, are illustrate in figure~\ref{RotXYZ}. + +\begin{figure}[!ht] +\begin{Beispiel}[colwidth=0.45\linewidth] +\psset{THETA=30,PHI=30,Dobs=200,Decran=12} +\begin{pspicture}(-2.8,-3)(3.5,3.5) + \PlansOXYZ + \AxesThreeD(55) + \DieThreeD[A=5,B=5,C=5,RotX=30,RotY=20,RotZ=150](40,40,35)% +\end{pspicture} +\end{Beispiel} +\caption{\label{RotXYZ}rotations around $OX$, $OY$ et $OZ$: \texttt{RotX=60,RotY=20,RotZ=110}.} +\end{figure} + +\section{Constructions using cubes} +This section was done after a book first published in 1873 and +titled: + +\begin{figure}[!ht] +\centering +\psframebox{% +\begin{pspicture}(-3.1,-3.8)(3.1,3) +\rput(0,2.6){M\'ETHODE INTUITIVE} +\rput(0,2){\Large EXERCICES ET TRAVAUX} +\rput(0,1.5){POUR LES ENFANTS} +\rput(0,1){\tiny SELON LA M\'ETHODE ET LES PROC\'ED\'ES} +\rput(0,0){de \textbf{PESTALOZZI et FR\OE{}BEL}} +\rput(0,-1){M\textsuperscript{me} FANNY DELON} +\rput(0,-1.5){\tiny Directrice d'une \'Ecole professionnelle \`a Paris} +\rput(0,-2){M. CH. DELON} +\rput(0,-2.5){\tiny Licenci\'e \`es sciences} +\rput(0,-3){PARIS} +\rput(0,-3.5){1873} +\end{pspicture}} +\end{figure} + +for children at infant school! One can not be surprised that +theses kinds of pedagogue gave rise to the generation of Eintein, +Maxwell, Bohr etc. + + + +\begin{figure}[ht] +\begin{Beispiel}[colwidth=0.45\linewidth] +\psset{THETA=15,PHI=50,Dobs=200,Decran=15} +\hexagon +\end{Beispiel} +\caption{\label{hexagone}hexagon.} +\end{figure} + +\begin{figure}[ht] +\begin{Beispiel}[colwidth=0.45\linewidth] +\psset{THETA=15,PHI=50,Dobs=200,Decran=15}% +\stardodecagon +\end{Beispiel} +\caption{\label{dodecagone}star dodecagon.} +\end{figure} + +\begin{figure}[ht] +\begin{Beispiel}[colwidth=0.45\linewidth] +\psset{THETA=-15,PHI=50,Dobs=200,Decran=15} +\pentagon +\end{Beispiel} +\caption{\label{pentagone}pentagon.} +\end{figure} + +\begin{figure}[ht] +\begin{Beispiel}[colwidth=0.45\linewidth] +\psset{THETA=-15,Decran=10,Dobs=100,PHI=75} +\stardecagon +\end{Beispiel} +\caption{\label{decagone}star decagon.} +\end{figure} + +\begin{figure}[ht] +\begin{Beispiel}[colwidth=0.45\linewidth] +\psset{THETA=20,PHI=75,Decran=10,Dobs=100} +\begin{pspicture*}(-2.5,-2.5)(2.5,2) +\Table +\psset{A=5,B=5,C=5} +\CubeThreeD(-7.88675,0,5)%1 +\CubeThreeD[RotZ=-120](3.94338,6.83,5)%2 +\CubeThreeD[RotZ=120](3.94338,-6.83,5)%3 +\end{pspicture*} +\end{Beispiel} +\caption{\label{triangle}triangle.} +\end{figure} + + +\begin{figure}[ht] +\begin{Beispiel}[colwidth=0.45\linewidth] +\psset{THETA=-15,PHI=50,Decran=10,Dobs=150} +\octogon +\end{Beispiel} +\caption{\label{octogone}octogon.} +\end{figure} + + +\begin{figure}[ht] +\begin{Beispiel}[colwidth=0.45\linewidth] +\psset{THETA=-15,Decran=10,Dobs=150,PHI=75} +\starhexadecagon +\end{Beispiel} +\caption{\label{hexadecagon}star hexadecagon.} +\end{figure} + +\begin{figure}[ht] +\begin{Beispiel}[colwidth=0.45\linewidth] +\psset{THETA=-15,Decran=10,Dobs=150,PHI=75} +\begin{pspicture}(-2.2,-1.75)(2.2,2.2) + \Table + \pNodeThreeD(-8.66,-5,0){A6} + \pNodeThreeD(-8.66,5,0){A1} + \pNodeThreeD(0,10,0){A2} + \pNodeThreeD(8.66,5,0){A3} + \pNodeThreeD(8.66,-5,0){A4} + \pNodeThreeD(0,-10,0){A5}% + \psclip{\pspolygon[fillstyle=solid,fillcolor=GrisClair,% + linestyle=none](A1)(A2)(A3)(A4)(A5)(A6)} + \DessusTable + \endpsclip + \psset{A=5,B=5,C=5} + \DieThreeD[RotZ=60,RotX=-90](-6.83,-11.83,5)% + \DieThreeD[RotZ=120,RotY=-90](6.83,-11.83,5)% + \DieThreeD[RotX=90](-13.86,0,5)% + \DieThreeD[RotZ=-60,RotY=90](-6.83,11.83,5)% + \DieThreeD[RotZ=-120,RotY=180](6.83,11.83,5)% + \DieThreeD[RotZ=180](13.86,0,5)% +\end{pspicture} +\end{Beispiel} +\caption{\label{pentagoneDie}hexagon with dices.} +\end{figure} + +Observing figure from off : +\begin{verbatim} +\psset{PHI=90,THETA=0} +\end{verbatim} + one obtains classical geometric +figures : + +(\ref{hexagonePlan}) (\ref{dodecagonePlan}) (\ref{pentagonePlan}) (\ref{decagonePlanStar}) +(\ref{trianglePlan}) (\ref{octogonePlan}) (\ref{hexadecagonePlan}) (\ref{hexagonePlanDie}). + +\begin{figure}[ht] +\centering +\psset{THETA=0,Decran=10,Dobs=125,PHI=90} +\hexagon +\caption{\label{hexagonePlan}``flat'' hexagon.} +\end{figure} + + +\begin{figure}[ht] +\centering +\psset{Decran=10,Dobs=100} +\psset{PHI=90,THETA=0} +\stardecagon +\caption{\label{dodecagonePlan}``flat'' star dodecagone.} +\end{figure} +% +\begin{figure}[ht] +\centering +\psset{Decran=10,Dobs=125} +\psset{PHI=90,THETA=0} +\pentagon +\caption{\label{pentagonePlan}``flat'' pentagon.} +\end{figure} + + +\begin{figure}[ht] +\centering +\psset{THETA=0,Decran=10,Dobs=125,PHI=90} +\stardecagon +\caption{\label{decagonePlanStar}``flat'' star decagon.} +\end{figure} +% + + +% +\begin{figure}[ht] +\centering +\psset{PHI=90,THETA=0,Decran=10,Dobs=100} +\begin{pspicture}*(-2.2,-2.2)(2.2,2.2) +\Table +\psset{A=5,B=5,C=5} +\CubeThreeD(-7.88675,0,5)%1 +\CubeThreeD[RotZ=-120](3.94338,6.83,5)%2 +\CubeThreeD[RotZ=120](3.94338,-6.83,5)%3 +\end{pspicture} +\caption{\label{trianglePlan}``flat'' triangle.} +\end{figure} + + +\begin{figure}[ht] +\centering +\psset{PHI=90,THETA=0,Decran=10,Dobs=125} +\octogon +\caption{\label{octogonePlan}``flat'' octogon.} +\end{figure} + + + +\begin{figure}[ht] +\centering +\psset{PHI=90,THETA=0,Decran=10,Dobs=125} +\starhexadecagon +\caption{\label{hexadecagonePlan}``flat'' star hexadecagon.} +\end{figure} + +\begin{figure}[ht] +\centering +\psset{PHI=90,THETA=0,Decran=10,Dobs=125} +\begin{pspicture}(-2.2,-2.2)(2.2,2.2) +\Table +\pNodeThreeD(-8.66,-5,0){A6} +\pNodeThreeD(-8.66,5,0){A1} +\pNodeThreeD(0,10,0){A2} +\pNodeThreeD(8.66,5,0){A3} +\pNodeThreeD(8.66,-5,0){A4} +\pNodeThreeD(0,-10,0){A5}% +\psclip{\pspolygon[fillstyle=solid,fillcolor=GrisClair,linestyle=none](A1)(A2)(A3)(A4)(A5)(A6)} +\DessusTable +\endpsclip +\psset{A=5,B=5,C=5} +\DieThreeD[RotZ=60,RotX=-90](-6.83,-11.83,5)% +\DieThreeD[RotZ=120,RotY=-90](6.83,-11.83,5)% +\DieThreeD[RotX=90](-13.86,0,5)% +\DieThreeD[RotZ=-60,RotY=90](-6.83,11.83,5)% +\DieThreeD[RotZ=-120,RotY=180](6.83,11.83,5)% +\DieThreeD[RotZ=180](13.86,0,5)% +\end{pspicture} +\caption{\label{hexagonePlanDie}``flat'' hexagon with dices.} +\end{figure} + + + + +\clearpage + + +\section{Sphere, part of sphere, half-sphere, parallels and meridians} + +Beside \verb+sphereThreeD+ there exist several macro for spheres: + +\begin{itemize} +\item \verb|SphereInverseThreeD| +\item \verb|\SphereCercleThreeD| +\item \verb|\SphereMeridienThreeD| +\item \verb|\DemiSphereThreeDThreeD| +\item \verb|\SphereCreuseThreeD| +\item \verb|\PortionSphereThreeD| +\end{itemize} + + +The macro: +\begin{verbatim} +\SphereThreeD(10,30,20){20} +\end{verbatim} +draws the sphere defined by the coordinates of its centre and its radius which is shown in +figure~\ref{sphere} together with the macro +\begin{verbatim} +\PortionSphereThreeD(0,0,0){20} +\end{verbatim} +and some more additional lines. + +\begin{verbatim} +\begin{pspicture}(-3,-3.5)(3,5) +\psset{THETA=30,PHI=30,Dobs=100,Decran=10} +{\psset{style=GradGrayWhite}% +\SphereThreeD(0,0,0){20} +\psset{fillstyle=solid,fillcolor=gray} +\PortionSphereThreeD(0,0,0){20} +\pNodeThreeD(20;10;10){C1} +\pNodeThreeD(40;10;10){D1} +\psline(C1)(D1) +\pNodeThreeD(20;10;-10){C2} +\pNodeThreeD(40;10;-10){D2} +\psline(C2)(D2) +\pNodeThreeD(20;-10;-10){C3} +\pNodeThreeD(40;-10;-10){D3} +\psline(C3)(D3) +\pNodeThreeD(20;-10;10){C4} +\pNodeThreeD(40;-10;10){D4} +\psline(C4)(D4) +\PortionSphereThreeD% + [style=GradGrayWhite](0,0,0){40}} +% PhiCercle=latitude of the cercle +% \SphereCercle[PhiCercle=...]{radius} +\psset{linecolor=white,PhiCercle=45} +\SphereCercleThreeD(0,0,0){20} +% ThetaMeridien=longitude of the meridian +% \SphereMeridien[ThetaMeridien=...]{radius} +\SphereMeridienThreeD% + [ThetaMeridien=45](0,0,0){20} +\pNodeThreeD(20;45;45){A} +\pNodeThreeD(50;45;45){B} +\psline[linecolor=black]{->}(A)(B) +\pNodeThreeD(20;0;90){Nord} +\pNodeThreeD(40;0;90){Nord1} +\psline[linecolor=black]{->}(Nord)(Nord1) +\SphereCercleThreeD[PhiCercle=0](0,0,0){20} +\SphereMeridienThreeD% + [ThetaMeridien=0](0,0,0){20} +\end{pspicture} +\end{verbatim} + + + +\begin{figure}[!htb] +\begin{pspicture}(-3,-3.5)(3,5) +\psset{THETA=30,PHI=30,Dobs=100,Decran=10} +\bgroup + \psset{style=GradGrayWhite}% + \SphereThreeD(0,0,0){20} + \psset{fillstyle=solid,fillcolor=gray} + \PortionSphereThreeD(0,0,0){20} + \pNodeThreeD(20;10;10){C1} + \pNodeThreeD(40;10;10){D1} + \psline(C1)(D1) + \pNodeThreeD(20;10;-10){C2} + \pNodeThreeD(40;10;-10){D2} + \psline(C2)(D2) + \pNodeThreeD(20;-10;-10){C3} + \pNodeThreeD(40;-10;-10){D3} + \psline(C3)(D3) + \pNodeThreeD(20;-10;10){C4} + \pNodeThreeD(40;-10;10){D4} + \psline(C4)(D4) + \PortionSphereThreeD[style=GradGrayWhite](0,0,0){40} +\egroup +% PhiCercle=latitude of the cercle +% \SphereCercle[PhiCercle=...]{radius} + \psset{linecolor=white,PhiCercle=45} + \SphereCercleThreeD(0,0,0){20} +% ThetaMeridien=longitude of the meridian +% \SphereMeridien[ThetaMeridien=...]{radius} + \SphereMeridienThreeD[ThetaMeridien=45](0,0,0){20} +% \pNodeThreeD(radius}{longitude}{latitude}{name of the point} + \pNodeThreeD(20;45;45){A} + \pNodeThreeD(50;45;45){B} + \psline[linecolor=black]{->}(A)(B) + \pNodeThreeD(20;0;90){Nord} + \pNodeThreeD(40;0;90){Nord1} + \psline[linecolor=black]{->}(Nord)(Nord1) + \SphereCercleThreeD[PhiCercle=0](0,0,0){20} + \SphereMeridienThreeD[ThetaMeridien=0](0,0,0){20} +\end{pspicture} +\caption{\label{sphere}A Sphere.} +\end{figure} + + +\begin{figure}[!htb] +\centering +\begin{pspicture}(-3,-2)(3,5) + \psset{THETA=60,PHI=30,Dobs=100,Decran=10} +% \DemiSphereThreeD(x,y,z){radius} + \DemiSphereThreeD[RotX=180,style=GradGrayWhite](0,0,0){20} + \SphereCreuseThreeD[RotX=180,linecolor=white,style=GradGrayWhite](0,0,0){20} + \AxesThreeD[linestyle=dashed](30,30,40) +\end{pspicture} +\caption{\label{halfsphere}half-sphere.} +\end{figure} + + +\begin{figure}[!htb] +\centering +\begin{pspicture}(-3,-2)(3,2) +\psset{THETA=60,PHI=20,Dobs=100,Decran=10} +\psset{style=GradGrayWhite}% +\SphereThreeD(0,0,0){10}% +\DemiSphereThreeD[RotX=180](0,0,0){20}% +\begin{psclip}{% +\SphereCreuseThreeD[RotX=180,linecolor=white](0,0,0){20}}% +\SphereThreeD(0,0,0){10} +\end{psclip}% +\end{pspicture} +\caption{\label{egg} levitation} +\end{figure} + + +\section{A Hole in a sphere} + +\begin{figure}[!htb] +\centering +\psset{THETA=10,PHI=30,Dobs=100,Decran=10} +\begin{pspicture}*(-3,-3)(3,3) + \SphereThreeD[style=GradGrayWhite,gradmidpoint=0.2](0,0,0){40}% + \begin{psclip}{\PortionSphereThreeD[PortionSpherePHI=40,% + DeltaPHI=30,DeltaTHETA=30,linewidth=4\pslinewidth](0,0,0){40}}% + \SphereInverseThreeD[style=GradGrayWhite](0,0,0){40}% + \SphereThreeD[style=GradGrayWhite](0,0,0){30}% + \begin{psclip}{\PortionSphereThreeD[PortionSpherePHI=30,% + DeltaPHI=30,DeltaTHETA=30,linewidth=4\pslinewidth](0,0,0){30}}% + \SphereInverseThreeD[style=GradGrayWhite](0,0,0){30}% + \SphereThreeD[style=GradGrayWhite](0,0,0){20}% + \begin{psclip}{\PortionSphereThreeD[PortionSpherePHI=30,% + DeltaPHI=30,DeltaTHETA=30,linewidth=4\pslinewidth](0,0,0){20}}% + \SphereInverseThreeD[style=GradGrayWhite](0,0,0){20}% + \SphereThreeD[style=GradGrayWhite](0,0,0){10}% + \begin{psclip}{% + \PortionSphereThreeD[PortionSpherePHI=30,% + DeltaPHI=30,DeltaTHETA=30,linewidth=4\pslinewidth](0,0,0){10}}% + \SphereInverseThreeD[style=GradGrayWhite](0,0,0){10}% + \SphereThreeD[style=GradGrayWhite](0,0,0){5}% + \end{psclip}% + \end{psclip}% + \end{psclip}% + \end{psclip}% +\end{pspicture} +\caption{\label{Holeinasphere}A Hole in a sphere.} +\end{figure} + +It is a rectangular hole whose the size are meridian and parallels +arcs (figure~\ref{Holeinasphere}). + +We define the part of the sphere setting its radius, the center +of the sphere and the $\Delta\phi$ and $\Delta\theta$. +\begin{verbatim} +\PortionSphereThreeD[PortionSpherePHI=45,% + PortionSphereTHETA=0,% + DeltaPHI=45,% + DeltaTHETA=20](0,0,0){20} +\end{verbatim} + +There are the parameters of the first hole. The radius is +\texttt{20}. +\begin{verbatim} +{\psset{fillstyle=gradient,% + gradbegin=white,% + gradend=blue,% + gradmidpoint=0.2,% + linecolor=cyan,% + linewidth=0.1mm} +\SphereThreeD(0,0,0){20}}% +\begin{psclip}{% +\PortionSphereThreeD[PortionSpherePHI=45,% + DeltaPHI=45,DeltaTHETA=20](0,0,0){20}} +\SphereInverseThreeD[fillstyle=solid,% + fillcolor=red,% + linecolor=blue](0,0,0){20}% +\end{psclip}% +\end{verbatim} + +This is the tricks to see the inner of the sphere. + +\verb+\SphereInverse+ define the hidden part of the sphere. + + +\section{Drawing a cylinder} +A cylinder is defined by the radius of its base and its height. +The center of the base is set in the usual way, and +\textsf{RotX,RotY,RotZ} make it rotate around the axes. + +\verb+\CylindreThreeD(x,y,z){radius}{hauteur}+ + +\begin{figure}[!htb] +\centering +\begin{pspicture}(-3.5,-2)(3,4.5) +\psset{THETA=5,PHI=40,Dobs=150,Decran=6.5,fillstyle=solid,linewidth=0.1mm} +% plan horizontal +{\psset{normaleLongitude=0, normaleLatitude=90} +\FrameThreeD[fillstyle=solid,fillcolor=GrisClair](0,0,0)(-50,0)(50,50) +\FrameThreeD[fillstyle=solid,fillcolor=GrisClair](0,0,0)(-50,0)(50,-50) +\QuadrillageThreeD(0,0,0)(-50,-50)(50,50)} +\multido{\iCY=-45+90}{2}{% + \CylindreThreeD(-45,\iCY,0){5}{50} + \DemiSphereThreeD(-45,\iCY,50){5}% +} +\CylindreThreeD(0,0,0){10}{15} +\CylindreThreeD(0,0,15){20}{5} +\DemiSphereThreeD[RotX=180](0,0,35){20} +\SphereCreuseThreeD[RotX=180](0,0,35){20} +{\psset{RotY=90,RotX=0,RotZ=30} +\CylindreThreeD(15,15,5){5}{20}} +\multido{\iCY=-45+90}{2}{% +\CylindreThreeD(45,\iCY,0){5}{50} +\DemiSphereThreeD(45,\iCY,50){5}} +\end{pspicture} +\caption{\label{cylinder}cylinders.} +\end{figure} + +\begin{verbatim} +\CylindreThreeD(0,0,-5){10}{15}} +\psset{RotY=90} +\CylindreThreeD(15,15,-5){5}{20} +\end{verbatim} + + +\section{Tetrahedron, cone and square pyramid} +\subsection{square pyramid} +\begin{verbatim} +\psset{A=...,Hpyramide=...} +\Pyramide +\end{verbatim} + +See the examples of figures~(\ref{Pyramid})~(\ref{Obelisque}). + +\begin{figure}[!htb] +\centering +\psset{ColorFaceD=GrayD,ColorFaceA=GrayA,% + ColorFaceB=GrayB,ColorFaceC=GrayC,ColorFaceE=GrayE} +\psframebox[fillstyle=solid,fillcolor=GrayB,framesep=0pt]{% +\begin{pspicture}*(-3,-4)(3,4) +\psset{THETA=-70,PHI=60,Dobs=200,Decran=15} +\DecorSable +\psset{RotZ=45,fillstyle=solid,linecolor=black,A=9} +\PyramideThreeD(5,35,0){10} +\psset{A=10} +\PyramideThreeD(0,0,0){13} +\psset{A=7} +\PyramideThreeD(10,-35,0){8.7} +\end{pspicture}} +\caption{\label{Pyramid}Pyramids of Egypt.} +\end{figure} + + +\begin{figure}[!htb] +\centering +\psframebox[fillstyle=solid,fillcolor=GrayB,framesep=0pt]{% + \begin{pspicture}*(-2.5,-2)(2.5,5.5) + \psset{THETA=30,PHI=30,Dobs=400,Decran=12} + \DecorSable + \CubeThreeD[A=15,B=15,C=15](0,0,15)% + \psset{A=10,fillstyle=solid} + \PyramideThreeD[fracHeight=0.8](0,0,30){150}% + \psset{A=2} + \PyramideThreeD(0,0,150){5}% + \end{pspicture}% +} +\caption{\label{Obelisque}Obelisk of Egypt.} +\end{figure} + + +\subsection{Cone} +\begin{verbatim} +\ConeThreeD[fracHeight=...] + (x,y,z){radius}{Height} +\end{verbatim} +by default \verb+fracHeight=1+ : figure~\ref{Cone}. + +\begin{figure}[!htb] +\centering +\psframebox[fillstyle=solid,fillcolor=GrayB,framesep=0pt]{% +\begin{pspicture}*(-3,-5)(3,4) +\psset{THETA=30,PHI=40,Dobs=200,Decran=12,fillstyle=solid,% + fillcolor=GrisClair,linewidth=0.25\pslinewidth} +\DecorSable +\CylindreThreeD(0,0,0){10}{50} +\ConeThreeD[fillcolor=GrayB](0,0,50){10}{10} +\CylindreThreeD[RotY=90,RotZ=150](40,20,10){10}{50} +\ConeThreeD[fracHeight=0.5](20,-20,0){10}{10} +\CylindreThreeD(20,-20,5){5}{50} +\ConeThreeD[fracHeight=0.5](50,50,0){10}{10} +\CylindreThreeD(50,50,5){5}{50} +\end{pspicture}} +\caption{\label{Cone}Cones and cylinders.} +\end{figure} + +\section{Points and lines} +The command allowing to mark points and thus to draw lines +and polygons can be used of two manners, either with the Cartesian coordinates + \begin{verbatim} +\pNodeThreeD(x,y,z){name} +\end{verbatim} + or with the spherical coordinates : +\begin{verbatim} +\pNodeThreeD(radius;longitude;latitude)% + {name of the point} +\end{verbatim} + +For example \verb+\pNodeThreeD(25,-25,25){A}+, the point $A(25,25,25)$ places. +Points being positioned, just to write \verb+\psline(A)(B)+, to draw the segment $AB$. + + On the figure~\ref {points}, one drew a cube with its diagonals. +\begin{figure}[!htb] +\centering +\psset{unit=1cm} + \psset{THETA=70,PHI=30,Dobs=150,Decran=10} + \begin{pspicture}(-3,-3)(3,4) + \AxesThreeD[linecolor=red,linestyle=dashed](50,60,50) + \pNodeThreeD(25,-25,25){A} + \pNodeThreeD(25,25,25){B} + \pNodeThreeD(25,25,-25){C} + \pNodeThreeD(25,-25,-25){D} + \pNodeThreeD(-25,-25,25){E} + \pNodeThreeD(-25,25,25){F} + \pNodeThreeD(-25,25,-25){G} + \pNodeThreeD(-25,-25,-25){H} + \pspolygon(A)(B)(C)(D) + \pspolygon(E)(F)(G)(H) + \psline(A)(E) + \psline(B)(F) + \psline(C)(G) + \psline(D)(H) + \psset{linestyle=dashed} + \psline(A)(G) + \psline(B)(H) + \psline(C)(E) + \psline(D)(F) +% routine page 49 in "présentation de PSTricks" +% D.Girou "cahier 16 Gutengerg" + \newcounter{lettre} + \multido{\i=1+1}{8}{% + \setcounter{lettre}{\i} + \psdot[linecolor=red](\Alph{lettre}) + \uput[90](\Alph{lettre}){\Alph{lettre}} + } +\end{pspicture} +\caption{\label{points}Points and lines.} +\end{figure} + + +\section{Circles} +A circle is defined by a vector normal for its plan by $(\theta,\varphi)$, with the following parameters for example: +\begin{verbatim} +normaleLongitude=60,normaleLatitude=90 +\end{verbatim} +The coordinates of his centre as well as his radius. +\begin{verbatim} +\CircleThreeD(x,y,z){radius} +\end{verbatim} + +The circles of the figure~\ref{circles}, were drawn with the following +commands: + +\begin{figure}[!htb] +\centering +\psframebox{% + \begin{pspicture}(-2.5,-3.5)(3.5,1.5) + \psset{THETA=50,PHI=50,Dobs=250,Decran=10} + \multido{\iX=-70+10}{15}{% + \pNodeThreeD(\iX,0,0){X1} + \pNodeThreeD(\iX,50,0){X2} + \psline(X1)(X2) + } + \multido{\iY=0+10}{6}{% + \pNodeThreeD(-70,\iY,0){Y1} + \pNodeThreeD(70,\iY,0){Y2} + \psline(Y1)(Y2)% + } + \psset{normaleLongitude=0,normaleLatitude=90} + \multido{\iXorigine=-65+10}{14}{% + \multido{\iYorigine=5+10}{5}{% + \CircleThreeD[linecolor=red](\iXorigine,\iYorigine,0){5}% + }% + } + \end{pspicture}% +} +\caption{\label{circles}circles.} +\end{figure} + +\begin{verbatim} +\psset{normaleLongitude=0,% + normaleLatitude=90} +\multido{\iXorigine=-65+10}{14}{% + \multido{\iYorigine=5+10}{5}{% + \CircleThreeD[linecolor=red]% + (\iXorigine,\iYorigine,0){5}}} +\end{verbatim} + +\section{The macros and the options} +\subsection{The colors of the cube, the pyramid and tetraedre} + +The predefined colors for the different sides of a cube are +always set in the \verb+rgb+ mode : +\begin{verbatim} +CubeColorFaceOne=1 1 0,% +CubeColorFaceTwo=0.9 0.9 0,% +CubeColorFaceThree=0.8 0.8 0,% +CubeColorFaceFour=0.7 0.7 0,% +CubeColorFaceFive=0.65 0.65 0,% +CubeColorFaceSix=0.75 0.75 0 +\end{verbatim} + +The colors for the pyramid and the tetraedre are taken from the predefined ones: +\begin{verbatim} +ColorFaceD=cyan, +ColorFaceA=magenta, +ColorFaceB=red, +ColorFaceC=blue, +ColorFaceE=yellow +\end{verbatim} + +They can be changed in the usual way with the \verb+\psset+ macro. + + +\subsection{Common parameters} +\verb+RotX=<value>, RotY=<value>, RotZ=<value>+ + +The predefined value is zero, means no rotation. + +\subsection{Cube} +The following command places a parallelepiped with a length of $a=40$, $b=20$ and $c=10$ units +and it is placed with its center at the point $x=25$, $y=25$ and $z=25$ + +\begin{verbatim} +\CubeThreeD[A=20,B=10,C=5](25,25,25) +\end{verbatim} + +\begin{figure}[!htb] +\centering +\begin{pspicture}(-3,-3)(3,3.5) +\psset{PHI=30,THETA=45,Dobs=200} +\PlansOXYZ\AxesThreeD(55) +\FrameThreeD[normaleLongitude=0,% + normaleLatitude=90,% + fillstyle=vlines,hatchsep=0.4mm](25,25,0)(-10,-15)(10,15) +\FrameThreeD[normaleLongitude=0,% + normaleLatitude=0,% + fillstyle=vlines,hatchsep=0.4mm](0,25,25)(-10,-5)(10,5) +\FrameThreeD[normaleLongitude=90,% + normaleLatitude=0,% + fillstyle=vlines,hatchsep=0.4mm](25,0,25)(-15,-5)(15,5) +\CubeThreeD[A=15,B=10,C=5](25,25,25)% +\end{pspicture} +\caption{\label{Prisme}Parallelepiped} +\end{figure} + +In other words: the length of the sides is \verb+2A,2B,2C+ (see figure~\ref{Prisme}). + +For rotations, let us consider the result of a rotation around one of the axes, while knowing that it is possible to combine them. The corresponding rotation of projection on the horizontal level is obtained with the parameter: \verb+normaleLongitude=<degrees>+ (figure~\ref{PrismeRotZ}). + +\begin{figure}[!htb] +\centering +\begin{pspicture}(-3,-3)(3,3.5) +\psset{PHI=30,THETA=45,Dobs=200,RotZ=60} +\PlansOXYZ\AxesThreeD(55) +% la projection sur le plan Oxy +\FrameThreeD[normaleLongitude=60,% + normaleLatitude=90,% + fillstyle=vlines,hatchsep=0.4mm](25,25,0)(-10,-15)(10,15) +\CubeThreeD[A=15,B=10,C=5](25,25,25)% +\end{pspicture} +\caption{\label{PrismeRotZ}The same parallelepiped rotated with \texttt{RotZ=60}.} +\end{figure} + +There is no difference to a die, except that all sides have the same length. + + +\begin{figure}[!htb] +\centering +\begin{pspicture}(-3,-3)(3,3.5) +\psset{PHI=30,THETA=45,Dobs=200,RotZ=60,,RotX=90} +\PlansOXYZ\AxesThreeD(55) +% la projection sur le plan Oxy +\FrameThreeD[normaleLongitude=60,% + normaleLatitude=90,% + fillstyle=vlines,hatchsep=0.4mm](25,25,0)(-5,-15)(5,15) +\CubeThreeD[A=15,B=10,C=5](25,25,25)% +\end{pspicture} +\caption{\label{PrismeRotXRotZ}The same parallelepiped, rotated with the values \texttt{RotX=90,RotZ=60}} +\end{figure} + + +\subsection{Cylinder and circle} +In addition to the already quoted optional parameters the cylinder requires the obligatory parameters: +\begin{verbatim} +\CylindreThreeD[...](x,y,z){radius}{height} +\end{verbatim} + +Projection on the horizontal level is obtained with the following values: + +\begin{verbatim} +\CircleThreeD[normaleLongitude=0,% + normaleLatitude=90,% + fillstyle=vlines,% + hatchsep=0.4mm](30,30,0){10} +\end{verbatim} + +The circle macro needs the following parameters: + +\begin{verbatim} +\CircleThreeD[...](x,y,z){radius} +\end{verbatim} + +Figure~\ref{CylindreDemo} shows an example of the above macros. + +\begin{figure}[!ht] +\centering +\begin{pspicture}(-3,-3)(3,3.5) +\psset{PHI=30,THETA=45,Dobs=200} +\PlansOXYZ\AxesThreeD(55) +% la projection sur le plan Oxy +\CircleThreeD[normaleLongitude=0,% + normaleLatitude=90,% + fillstyle=vlines,% + hatchsep=0.4mm](30,30,0){10} +\CylindreThreeD[fillstyle=solid,fillcolor=yellow,% + linewidth=0.1mm](30,30,20){10}{30}% +\end{pspicture} +\caption{\label{CylindreDemo}A cylinder with a radius of $10$ units and a + height of $50$ units + with its base center at \texttt{(30,30,20)}.% +} +\end{figure} + + +\section{See the interior of a cube} +The following option makes it possible to visualize the interior of the box, the result is seen in the figure~\ref{Cube inside} : + +\begin{verbatim} +\DieThreeD(0,0,0)% +\begin{psclip}{% +\FrameThreeD[normaleLongitude=0,% + normaleLatitude=90]% + (0,0,10)(-10,-10)(10,10)}% +\DieThreeD[CubeInside=true](0,0,0)% +\end{psclip}% +\end{verbatim} + +\begin{figure} +\centering +\begin{pspicture}(-2,-2)(2,3.5) + \psset{A=10,B=10,C=10,PHI=60,THETA=-60} + \DieThreeD(0,0,0)% + \begin{psclip}{% + \FrameThreeD[normaleLongitude=0,% + normaleLatitude=90](0,0,10)(-10,-10)(10,10)}% + \DieThreeD[CubeInside=true](0,0,0)% + \end{psclip}% + \FrameThreeD[normaleLongitude=0,% + normaleLatitude=90,linewidth=1mm](0,0,10)(-10,-10)(10,10)% +\end{pspicture} +\caption{\label{Cube inside}An empty box.} +\end{figure} + + + +\end{document} diff --git a/Master/texmf-dist/doc/generic/textmerg/results.dat b/Master/texmf-dist/doc/generic/textmerg/results.dat new file mode 100644 index 00000000000..781e3869f5e --- /dev/null +++ b/Master/texmf-dist/doc/generic/textmerg/results.dat @@ -0,0 +1,10 @@ +Miss +Iusta +Mo +34 Winchester Road\\Sheffield\\England +A +Mr +Arthur +Minit +43 Sheffield Road\\Winchester\\England +C diff --git a/Master/texmf-dist/doc/generic/textmerg/silly.dat b/Master/texmf-dist/doc/generic/textmerg/silly.dat new file mode 100644 index 00000000000..70cd4b45a93 --- /dev/null +++ b/Master/texmf-dist/doc/generic/textmerg/silly.dat @@ -0,0 +1,20 @@ +Mike +look +3 +1 +2 +3 +11 +12 +13 +*** +good +Shelagh +gaze +2 +21 +22 +23 +24 +*** +horrid diff --git a/Master/texmf-dist/doc/generic/textmerg/tmexamp1.tex b/Master/texmf-dist/doc/generic/textmerg/tmexamp1.tex new file mode 100644 index 00000000000..7f3be5c00dd --- /dev/null +++ b/Master/texmf-dist/doc/generic/textmerg/tmexamp1.tex @@ -0,0 +1,26 @@ +%% +%% This is file `tmexamp1.tex', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% textmerg.dtx (with options: `examp') +%% +\documentclass[12pt]{letter} +\usepackage{textmerg} +\begin{document} +\Fields{\Title\Forenames\Surname + \Address\Grade} +\Merge{results.dat}{% +\begin{letter}{\Title\ \Forenames\ + \Surname\\\Address} + \opening{Dear \Title\ \Surname,} + This letter is to inform you + that you obtained grade \Grade\ in + your recent examinations. + \closing{Yours faithfully,} +\end{letter}} +\end{document} +\endinput +%% +%% End of file `tmexamp1.tex'. diff --git a/Master/texmf-dist/doc/generic/textmerg/tmexamp2.tex b/Master/texmf-dist/doc/generic/textmerg/tmexamp2.tex new file mode 100644 index 00000000000..cf97a1301e5 --- /dev/null +++ b/Master/texmf-dist/doc/generic/textmerg/tmexamp2.tex @@ -0,0 +1,29 @@ +%% +%% This is file `tmexamp2.tex', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% textmerg.dtx (with options: `example') +%% +\documentclass[12pt]{article} +\usepackage{textmerg} +\MarkEnd{***} +\Process{2}{\Advance} +\def\Advance#1{#1\addtocounter{page}{#1}} +\Fields{+\Name\Verb} +\begin{document} +\Merge{silly.dat}{% + Dear \Name,\par + Here is a table to \Verb\ at: + \Fields{\Width}% + \begin{tabular}{*{\Width}c} + \MultiRead\Width + \end{tabular}.\par + \Fields{\Adj}% + That was \Adj! + \clearpage} +\end{document} +\endinput +%% +%% End of file `tmexamp2.tex'. diff --git a/Master/texmf-dist/doc/generic/textmerg/tmexampp.tex b/Master/texmf-dist/doc/generic/textmerg/tmexampp.tex new file mode 100644 index 00000000000..22ac23f28c0 --- /dev/null +++ b/Master/texmf-dist/doc/generic/textmerg/tmexampp.tex @@ -0,0 +1,28 @@ +%% +%% This is file `tmexampp.tex', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% textmerg.dtx (with options: `plainexample') +%% +\input textmerg +\MarkEnd{***} +\Process{2}{\Advance} +\def\Advance#1{#1\global\advance\count0by#1} +\Fields{+\Name\Verb} +\Merge{silly.dat}{% + Dear \Name,\par + Here is a table to \Verb\ at: + \Fields{\Width}% + \vbox{\halign{\hfil{} ## {}\hfil&&\hfil{} ## {}\hfil\cr + \MultiRead\Width\cr + }}.\par + \Fields{\Adj}% + That was \Adj! + \vfill\eject} +\end + +\endinput +%% +%% End of file `tmexampp.tex'. diff --git a/Master/texmf-dist/doc/generic/ukrhyph/README b/Master/texmf-dist/doc/generic/ukrhyph/README new file mode 100644 index 00000000000..5f45f2166dc --- /dev/null +++ b/Master/texmf-dist/doc/generic/ukrhyph/README @@ -0,0 +1,109 @@ +Ukrhyph package. + +This package contains hyphenation patterns for Ukrainian. + +To install, copy all files to your texmf tree. For example, +create a directory $TEXMF/tex/generic/ukrhyph/ and put all +files there. + +You can select your favourite pattern by editing `ukrhyph.tex'. +Required encoding could be selected either by by editing `ukrhyph.tex' +or by using file ukrhyph.<ENC> where <ENC> is output encoding. + +Ukrainian hyphenation could be added to LaTeX by creation `hyphen.cfg' +file containing e.g. the following lines: + +---------------------------------------------------------------------- +\language=0 % English +\lefthyphenmin=2 \righthyphenmin=3 % disallow x- or -xx breaks +\input hyphen +\language=1 % Ukrainian +\lefthyphenmin=2 \righthyphenmin=2 % disallow x- or -x breaks; -xx OK +\input ukrhyph.t2a +% Or \input ukrhyph.lcy +% Or \input ukrhyph.ot2 +\def\English{\language0 } +\def\Ukrainian{\language1 } +\language=0 % English +---------------------------------------------------------------------- + +If you use Babel, you can modify `language.dat': + +---------------------------------------------------------------------- +% File : language.dat +% Purpose : tell iniTeX what files with patterns to load. +english hyphen.tex +% you can uncomment what encoding do you need +ukrainian ukrhyph.t2a +%ukrainian ukrhyph.lcy +%ukrainian ukrhyph.ot2 +---------------------------------------------------------------------- + +Files: +~~~~~~ + +README This file + +catlcy.tex Set the \catcode values of the lowercase Ukrainian + letters in the LCY encoding to 12. +lcy2koi.tex LCY to Koi8-u encoding (just in case). +lcy2lcy.tex LCY to LCY encoding (to setup \lccode values). +lcy2ot2.tex LCY to OT2 (LWN) encoding. +lcy2t2a.tex LCY to T2A encoding. +lcy2ucy.tex LCY to UCY (Omega Unicode Cyrillic) encoding. + +ukrhyph.tex `Head' file which inputs the specified patterns and + re-encodes them to the specified font encoding. + Users can edit this file, selecting the patterns and + font encodings. +ukrenhyp.tex `Head' file for combined English-Ukrainian hyphenation + (don't use it with OT2 (LWN) encoding). + +ukrhyph.koi `Head' file which inputs the specified patterns + and re-encodes them to KOI8-u encoding. +ukrhyph.lcy `Head' file which inputs the specified patterns + and re-encodes them to LCY encoding. +ukrhyph.ot2 `Head' file which inputs the specified patterns + and re-encodes them to OT2 (LWN) encoding. +ukrhyph.t2a `Head' file which inputs the specified patterns + and re-encodes them to T2A (X2) encoding. +ukrhyph.ucy `Head' file which inputs the specified patterns + and re-encodes them to UCY (Omega Unicode Cyrillic) encoding. + +ukrhypsm.tex Ukrainian TeX hyphenation patterns by Andrij Shvaika + (modern rules, see file `rules90{.tex,.ps,.pdf}'). These + patterns are based on a file of more than 84000 Ukrainian + words hyphenated according to the modern + (liberal, may be too liberal :) rules. + +ukrhypst.tex Ukrainian TeX hyphenation patterns by Andrij Shvaika + (modern rules with some corrections). These patterns are + based on a file of more than 84000 Ukrainian words + hyphenated according to the modern rules with removed + ``suspicious breaks''. + + +ukrhypmt.tex Ukrainian TeX hyphenation patterns by Maksym Polyakov + (old rules, see file `rules60{.tex,.ps,.pdf}'). + +ukrhypmp.tex Ukrainian TeX hyphenation patterns by Maksym Polyakov + (old rules, see file `rules60{.tex,.ps,.pdf}', + breaking into syllables according to phonetical principles, + see file `rules_ph{.tex,.ps,.pdf}'). + +ukrhypfa.tex Ukrainian TeX hyphenation patterns derived from Russian + patterns by Dimitri Vulis by substitution Russian vowels + with corresponding Ukrainian ones. + + +Required: +~~~~~~~~~~~~~~ + +hypht2.tex file from ruhyphen package + CTAN/language/hyphenation/ruhyphen/hypht2.tex + "It enables the hyphenation of words containing explicit + hyphens when using ... e.g. T2 encoded fonts". See + CTAN/language/hyphenation/ruhyphen/README. + + + diff --git a/Master/texmf-dist/doc/generic/ukrhyph/rules60.pdf b/Master/texmf-dist/doc/generic/ukrhyph/rules60.pdf Binary files differnew file mode 100644 index 00000000000..c74b439fff0 --- /dev/null +++ b/Master/texmf-dist/doc/generic/ukrhyph/rules60.pdf diff --git a/Master/texmf-dist/doc/generic/ukrhyph/rules90.pdf b/Master/texmf-dist/doc/generic/ukrhyph/rules90.pdf Binary files differnew file mode 100644 index 00000000000..26219e6359c --- /dev/null +++ b/Master/texmf-dist/doc/generic/ukrhyph/rules90.pdf diff --git a/Master/texmf-dist/doc/generic/ukrhyph/rules_ph.pdf b/Master/texmf-dist/doc/generic/ukrhyph/rules_ph.pdf Binary files differnew file mode 100644 index 00000000000..a6c156a80af --- /dev/null +++ b/Master/texmf-dist/doc/generic/ukrhyph/rules_ph.pdf |