diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /support/TVS |
Initial commit
Diffstat (limited to 'support/TVS')
-rw-r--r-- | support/TVS/Makefile | 10 | ||||
-rw-r--r-- | support/TVS/TVS/GPL | 339 | ||||
-rw-r--r-- | support/TVS/TVS/README | 14 | ||||
-rw-r--r-- | support/TVS/TVS/docs/Makefile | 31 | ||||
-rw-r--r-- | support/TVS/TVS/docs/tvs.dvi | bin | 0 -> 45560 bytes | |||
-rw-r--r-- | support/TVS/TVS/docs/tvs.html | 1050 | ||||
-rw-r--r-- | support/TVS/TVS/docs/tvs.info | 898 | ||||
-rw-r--r-- | support/TVS/TVS/docs/tvs.ps | 2158 | ||||
-rw-r--r-- | support/TVS/TVS/docs/tvs.texi | 913 | ||||
-rw-r--r-- | support/TVS/TVS/docs/tvs.toc | 27 | ||||
-rw-r--r-- | support/TVS/TVS/examples/sample.tex | 20 | ||||
-rw-r--r-- | support/TVS/TVS/ignpats.tvs | 21 | ||||
-rw-r--r-- | support/TVS/TVS/pathcuts.tvs | 15 | ||||
-rw-r--r-- | support/TVS/TVS/tvs.pl | 454 | ||||
-rw-r--r-- | support/TVS/TVS/tvsrc | 11 | ||||
-rw-r--r-- | support/TVS/index.html | 57 | ||||
-rw-r--r-- | support/TVS/misc/TVS-Zpravodaj.tex | 77 | ||||
-rw-r--r-- | support/TVS/misc/uvod_analyza.tex | 79 | ||||
-rw-r--r-- | support/TVS/slapoty.gif | bin | 0 -> 8843 bytes |
19 files changed, 6174 insertions, 0 deletions
diff --git a/support/TVS/Makefile b/support/TVS/Makefile new file mode 100644 index 0000000000..3732d2df88 --- /dev/null +++ b/support/TVS/Makefile @@ -0,0 +1,10 @@ +# This is Makefile to prepare documentation files and make tar.gz file. + +all: docs targz + +docs: + - cd TVS/docs; make; make clean + +targz: + tar cvf TVS.tar TVS + gzip -9 TVS.tar
\ No newline at end of file diff --git a/support/TVS/TVS/GPL b/support/TVS/TVS/GPL new file mode 100644 index 0000000000..a43ea2126f --- /dev/null +++ b/support/TVS/TVS/GPL @@ -0,0 +1,339 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 675 Mass Ave, Cambridge, MA 02139, USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + Appendix: How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + <one line to give the program's name and a brief idea of what it does.> + Copyright (C) 19yy <name of author> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program 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. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) 19yy name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + <signature of Ty Coon>, 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/support/TVS/TVS/README b/support/TVS/TVS/README new file mode 100644 index 0000000000..ccd2317fa6 --- /dev/null +++ b/support/TVS/TVS/README @@ -0,0 +1,14 @@ +This is TVS, TeX Versioning System README +($Id: README,v 1.4 2000/05/08 13:43:49 antos Exp $) + +This software is to pack together complete source files needed to typeset +a TeX document to be able to get exactly the same output anywhere. + +Written by David Antos, xantos (at) informatics.muni.cz. +(Substitute (at) with @, of course.) +TVS homepage: http://www.fi.muni.cz/~xantos/tvs + +See the documentation for install and use information. + +You may use this software free of charge but WITHOUT ANY WARRANTY, see +General Public License for details. diff --git a/support/TVS/TVS/docs/Makefile b/support/TVS/TVS/docs/Makefile new file mode 100644 index 0000000000..a357c44ec7 --- /dev/null +++ b/support/TVS/TVS/docs/Makefile @@ -0,0 +1,31 @@ +# This makes documentation in various formats, clean deletes the garbage +# Part of the TVS software package +# $Id: Makefile,v 1.6 2000/05/08 13:56:14 antos Exp $ + +# Useful targets are all, tex, info, html, and clean. + +all: tex info html + +clean: + - rm tvs.cp* tvs.pg* tvs.fn* tvs.ky* tvs.vr* tvs.log tvs.aux tvs.tp* + +tex: texrun + make texidx + make texrun + dvips tvs.dvi -o tvs.ps + +texrun: + texinfo tvs.texi + +texidx: + texindex *.?? +init: + make all + xdvi tvs.dvi& + vi tvs.texi + +info: + makeinfo tvs.texi + +html: + - makeinfo --html tvs.texi diff --git a/support/TVS/TVS/docs/tvs.dvi b/support/TVS/TVS/docs/tvs.dvi Binary files differnew file mode 100644 index 0000000000..aa604564c5 --- /dev/null +++ b/support/TVS/TVS/docs/tvs.dvi diff --git a/support/TVS/TVS/docs/tvs.html b/support/TVS/TVS/docs/tvs.html new file mode 100644 index 0000000000..328b711b8e --- /dev/null +++ b/support/TVS/TVS/docs/tvs.html @@ -0,0 +1,1050 @@ +<html lang="en"><head> +<title>TeX Versioning System</title> +<meta http-equiv="Content-Type" content="text/html"> +<meta name=description content="TeX Versioning System"> +<meta name=generator content="makeinfo 4.0"> +<link href="http://texinfo.org/" rel=generator-home> +</head><body> + +<p><hr> +Node:<a name="Top">Top</a>, +Next:<a rel=next href="#Copying">Copying</a>, +Previous:<a rel=previous href="#(dir)">(dir)</a>, +Up:<a rel=up href="#(dir)">(dir)</a> +<br> + +<h1>TeX Versioning System</h1> + +<p>This is documentation of TeX Versioning System, software for storing +complete source codes of TeX documents. + +<ul> +<li><a href="#Copying">Copying</a>: +<li><a href="#Introduction">Introduction</a>: +<li><a href="#Installation">Installation</a>: +<li><a href="#Using%20%3ccode%3eTVS%3c%2fcode%3e%20step%20by%20step">Using <code>TVS</code> step by step</a>: +<li><a href="#Reference%20guide%20to%20%3ccode%3eTVS%3c%2fcode%3e%20commands">Reference guide to <code>TVS</code> commands</a>: +<li><a href="#Config%20file%20and%20pattern%20files">Config file and pattern files</a>: +<li><a href="#Credits">Credits</a>: +<li><a href="#Dealing%20with%20bugs%20in%20%3ccode%3eTVS%3c%2fcode%3e">Dealing with bugs in <code>TVS</code></a>: + +<p>--- The Detailed Node Listing --- + +<p>Introduction + +</p><li><a href="#Why%20do%20you%20need%20%3ccode%3eTVS%3c%2fcode%3e%3f">Why do you need <code>TVS</code>?</a>: +<li><a href="#What%20%3ccode%3eTVS%3c%2fcode%3e%20can%20do%3f">What <code>TVS</code> can do?</a>: +<li><a href="#What%20do%20you%20need%20to%20run%20%3ccode%3eTVS%3c%2fcode%3e%3f">What do you need to run <code>TVS</code>?</a>: + +<p>Using <code>TVS</code> step by step + +</p><li><a href="#Useful%20commands">Useful commands</a>: +<li><a href="#Basic%20running%20%3ccode%3eTVS%3c%2fcode%3e">Basic running <code>TVS</code></a>: +<li><a href="#Ignoring%20files">Ignoring files</a>: +<li><a href="#Format%20file%20sources">Format file sources</a>: +<li><a href="#Configuration%20file">Configuration file</a>: +<li><a href="#Limitations%20of%20%3ccode%3eTVS%3c%2fcode%3e">Limitations of <code>TVS</code></a>: +<li><a href="#Fonts">Fonts</a>: +<li><a href="#What%20to%20do%20with%20collected%20output">What to do with collected output</a>: + +<p>Reference guide to <code>TVS</code> commands + +</p><li><a href="#Invoking%20%3ccode%3eTVS%3c%2fcode%3e">Invoking <code>TVS</code></a>: +<li><a href="#Global%20switches">Global switches</a>: +<li><a href="#Ignoring%20files%20and%20cutting%20filenames">Ignoring files and cutting filenames</a>: +<li><a href="#Output%20directory%20setting">Output directory setting</a>: +<li><a href="#Storing%20format%20source%20files%20and%20fonts">Storing format source files and fonts</a>: + +<p>Config file and pattern files + +</p><li><a href="#Config%20file">Config file</a>: +<li><a href="#Pattern%20file%20structure">Pattern file structure</a>: + +<p>Pattern file structure + +</p><li><a href="#Pathcuts%20pattern%20file">Pathcuts pattern file</a>: +<li><a href="#Ignore%20pattern%20file">Ignore pattern file</a>: + +</ul> + +<p><hr> +Node:<a name="Copying">Copying</a>, +Next:<a rel=next href="#Introduction">Introduction</a>, +Previous:<a rel=previous href="#Top">Top</a>, +Up:<a rel=up href="#Top">Top</a> +<br> + +<h1>Copying</h1> + +<p>The program <code>TVS</code> and its documentation is written and +maintained by David Antos<, <a href="mailto:xantos (at) fi.muni.cz">xantos (at) fi.muni.cz</a>. (Of course substitute (at) with @.) +Contact him when in trouble, but please read the documentation first. + +<p>Copyright © 2000 David Antos< + +<p>Permission is granted to make and distribute verbatim copies of +this manual provided the copyright notice and this permission notice +are preserved on all copies. + +<p>Permission is granted to copy and distribute modified versions of this +manual under the conditions for verbatim copying, provided that the +entire resulting derived work is distributed under the terms of a +permission notice identical to this one. + +<p>Permission is granted to copy and distribute translations of this manual +into another language, under the above conditions for modified versions, +except that this permission notice may be stated in a translation approved +by the Free Software Foundation. + +<p><hr> +Node:<a name="Introduction">Introduction</a>, +Next:<a rel=next href="#Installation">Installation</a>, +Previous:<a rel=previous href="#Copying">Copying</a>, +Up:<a rel=up href="#Top">Top</a> +<br> + +<h1>Introduction</h1> + +<p>This is documentation of TeX Versioning System, software for storing +complete source codes of TeX documents. + +<p>Version 1.0 + +<p>(Documentation CVS ver. $Id: tvs.texi,v 1.23 2000/08/16 17:00:24 antos Exp $) + +<ul> +<li><a href="#Why%20do%20you%20need%20%3ccode%3eTVS%3c%2fcode%3e%3f">Why do you need <code>TVS</code>?</a>: +<li><a href="#What%20%3ccode%3eTVS%3c%2fcode%3e%20can%20do%3f">What <code>TVS</code> can do?</a>: +<li><a href="#What%20do%20you%20need%20to%20run%20%3ccode%3eTVS%3c%2fcode%3e%3f">What do you need to run <code>TVS</code>?</a>: +</ul> + +<p><hr> +Node:<a name="Why%20do%20you%20need%20%3ccode%3eTVS%3c%2fcode%3e%3f">Why do you need <code>TVS</code>?</a>, +Next:<a rel=next href="#What%20%3ccode%3eTVS%3c%2fcode%3e%20can%20do%3f">What <code>TVS</code> can do?</a>, +Previous:<a rel=previous href="#Introduction">Introduction</a>, +Up:<a rel=up href="#Introduction">Introduction</a> +<br> + +<h2>Why do you need <code>TVS</code>?</h2> + +<p>It must have happened to you. You use TeX at work. You run another +distribution at home. You wrote a beautiful document at home, you came to +work and got error message <code>I can't find file `foo.tex'</code>. There is a +package missing in your work installation. + +<p>Or: You wrote a beautifully typeset book several years ago. +You used em-TeX on M$-DOS machine. The book should be typeset again. You +have only my_book.tex and no macros you used. What to do? + +<p>To be serious, there is nothing to be done now. But if you stored the +<em>complete</em> source of the documents, it didn't have to happen to you. +And how to store the complete source? It's simple--use <code>TVS</code>. + +<p>Please! Please! Packing complete TeX document sources is a delicate +and sensitive operation. Read the entire manual before you use +<code>TVS</code> to do something important. This kind of software can be +useful for you if and only if you use it correctly. I'm sorry for this +but it's the fact. + +<p><hr> +Node:<a name="What%20%3ccode%3eTVS%3c%2fcode%3e%20can%20do%3f">What <code>TVS</code> can do?</a>, +Next:<a rel=next href="#What%20do%20you%20need%20to%20run%20%3ccode%3eTVS%3c%2fcode%3e%3f">What do you need to run <code>TVS</code>?</a>, +Previous:<a rel=previous href="#Why%20do%20you%20need%20%3ccode%3eTVS%3c%2fcode%3e%3f">Why do you need <code>TVS</code>?</a>, +Up:<a rel=up href="#Introduction">Introduction</a> +<br> + +<h2>What <code>TVS</code> can do?</h2> + +<p><code>TVS</code> can store complete source codes of TeX documents. It parses +logs of TeX and finds files which were used to typeset the document. +<code>TVS</code> can work in three levels: + +<ul> +<li>Only document log is examined. It stores all macros, styles, +included documents etc. you need. +<li>Document log and format log is examined. It also stores all +source files needed to build up format file. +<li>(experimental) Moreover dvips log is parsed and used fonts are +stored. This is not so useful as only <code>.pk</code> +files may be obtained this way. +</ul> + +<p>Files collected by <code>TVS</code> can be used on any TeX installation to +build up exactly the same document. +Next, let us call the product of <code>TVS</code> a <em>complete source</em>. + +<p>There are several important features of <code>TVS</code>: + +<ul> +<li><code>TVS</code> is a Perl script, it runs wherever Perl is available (it +means nearly everywhere). +<li>There is no difference in using of <code>TVS</code> when running LaTeX, +plain, or whatever you want. +<li>On the destination (the place you typeset the complete source), there is +no need to run <code>TVS</code>. You only need to say TeX to find files +in working directory first. +<li><code>TVS</code> is <em>not</em> a version control system. It cannot handle +versions of your documents. There are other systems, e.g., <code>RCS</code> or +<code>CVS</code>, designed to do this. +</ul> + +<p><hr> +Node:<a name="What%20do%20you%20need%20to%20run%20%3ccode%3eTVS%3c%2fcode%3e%3f">What do you need to run <code>TVS</code>?</a>, +Previous:<a rel=previous href="#What%20%3ccode%3eTVS%3c%2fcode%3e%20can%20do%3f">What <code>TVS</code> can do?</a>, +Up:<a rel=up href="#Introduction">Introduction</a> +<br> + +<h2>What do you need to run <code>TVS</code>?</h2> + +<p>Hardware and OS requirements are simple. <code>TVS</code> is a Perl script so it +runs wherever Perl 5.x is available. +It uses packages Getopt::Long, File::Basename, File::Copy, and +File::Path. These packages should be nevertheless in standard Perl +distribution. + +<p>For information on Perl for your OS check +<<code>http://www.perl.com</code>>. There should be no problem on most Unices, in +Linux, Perl is usually a part of standard distribution. + +<p>Maybe you find useful having also <code>make</code> and <code>Texinfo</code> +utilities installed on your system, but <code>Texinfo</code> is only needed to +produce documentation in DVI, PostScript, Info, or HTML formats which +are pregenerated in <code>TVS</code> distribution. And <code>make</code> is only to +generate them comfortably. + +<p>There are some requirements for your TeX source codes to be able to +handle them successfully. There is a problem with including files into your +source. The usual and best way to do it is to have the main source at the +top of the source tree and use relative paths in all variants of +<code>\input</code> command. +Avoid pathological inputs like +<code>\includegraphics ../../pictures/pict1.ps</code>. +This should not bother you as nearly everybody does it. + +<p>Usually <code>TVS</code> is able to pack files referenced by "up-going" +relative path (if it makes a conflict, <code>TVS</code> +recognizes it), but you run into difficulties when re-typesetting the +complete source and you have to correct all the things by hand. + +<p><hr> +Node:<a name="Installation">Installation</a>, +Next:<a rel=next href="#Using%20%3ccode%3eTVS%3c%2fcode%3e%20step%20by%20step">Using <code>TVS</code> step by step</a>, +Previous:<a rel=previous href="#Introduction">Introduction</a>, +Up:<a rel=up href="#Top">Top</a> +<br> + +<h1>Installation</h1> + +<p>The program <code>TVS</code> and its documentation is written and +maintained by David Antos<, <a href="mailto:xantos (at) fi.muni.cz">xantos (at) fi.muni.cz</a>. (Of course substitute (at) with @.) +Contact him when in trouble, but please read the documentation first. + +<p>The following instructions assume that Perl version >=5 is installed on +your system. For information on Perl consult <<code>http://www.perl.org</code>>. + +<p>The homepage of <code>TVS</code> is <<code>http://www.fi.muni.cz/~xantos/tvs</code>>. +Here you can get <code>TVS</code> either file-by-file or as <code>tvs.tar.gz</code> +file. <code>TVS</code> can also be obtained on CTAN in <code>support/TVS</code>. + +<p>Because of platform independence we decided not to prepare any +"instant" packages. + +<p>If you downloaded <code>tvs.tar.gz</code>, gunzip and un-tar it somewhere. If +you downloaded separate files, reconstruct the original file structure +anywhere you want. + +<p>On UNIX, make a link to <code>tvs.pl</code> from a directory which is in your +<code>PATH</code>, e.g. <code>/usr/local/bin</code>, if your system decodes first +lines of scripts to run them. In this case, it may be needed to correct +the very first line of <code>tvs.pl</code> and put the right path to your Perl +interpreter there. Otherwise you may still run <code>TVS</code> +running <code>perl tvs.pl</code>. Install the documentation in your favorite +format, where your docs-reader can find it. At least, +<code>/usr/doc/tvs</code> wouldn't be a bad choice to store Post Script or +HTML documentation. + +<p>Generally speaking, there is no need to install <code>TVS</code> to global +directories if you are the only-one who runs it or you are not root. + +<p>Try <code>tvs --help</code>. If a TVS header and help message written, +everything is OK. + +<p>If your standard Perl distribution does not contain packages +Getopt::Long, File::Basename, File::Copy, and File::Path, get them from +<<code>http://www.perl.org</code>>. + +<p>On M$ DOS/Window$ platforms the <code>.pl</code> suffix should be enough for +Perl script to run, of course if Perl is correctly installed. Please do +not expect me to make better support for M$ platforms as I do not run +them. + +<p>On other platforms, if there are difficulties in installing or running +<code>TVS</code>, please drop me a line. + +<p><hr> +Node:<a name="Using%20%3ccode%3eTVS%3c%2fcode%3e%20step%20by%20step">Using <code>TVS</code> step by step</a>, +Next:<a rel=next href="#Reference%20guide%20to%20%3ccode%3eTVS%3c%2fcode%3e%20commands">Reference guide to <code>TVS</code> commands</a>, +Previous:<a rel=previous href="#Installation">Installation</a>, +Up:<a rel=up href="#Top">Top</a> +<br> + +<h1>Using <code>TVS</code> step by step</h1> + +<p>This chapter shows the usage of <code>TVS</code> and various examples. It also +points out the limitations of this system, in other words what it +<em>can</em> do for you (and it's quite a lot) and what it cannot. Yes, there +are some unpleasant things you must do manually. + +<ul> +<li><a href="#Useful%20commands">Useful commands</a>: +<li><a href="#Basic%20running%20%3ccode%3eTVS%3c%2fcode%3e">Basic running <code>TVS</code></a>: +<li><a href="#Ignoring%20files">Ignoring files</a>: +<li><a href="#Format%20file%20sources">Format file sources</a>: +<li><a href="#Configuration%20file">Configuration file</a>: +<li><a href="#Limitations%20of%20%3ccode%3eTVS%3c%2fcode%3e">Limitations of <code>TVS</code></a>: +<li><a href="#Fonts">Fonts</a>: +<li><a href="#What%20to%20do%20with%20collected%20output">What to do with collected output</a>: +</ul> + +<p><hr> +Node:<a name="Useful%20commands">Useful commands</a>, +Next:<a rel=next href="#Basic%20running%20%3ccode%3eTVS%3c%2fcode%3e">Basic running <code>TVS</code></a>, +Previous:<a rel=previous href="#Using%20%3ccode%3eTVS%3c%2fcode%3e%20step%20by%20step">Using <code>TVS</code> step by step</a>, +Up:<a rel=up href="#Using%20%3ccode%3eTVS%3c%2fcode%3e%20step%20by%20step">Using <code>TVS</code> step by step</a> +<br> + +<h2>Useful commands</h2> + +<p>To make sure that <code>TVS</code> is correctly installed on your system, run +<code>tvs -h</code>. +You should obtain a short help on using <code>TVS</code>. + +<p>There are two useful switches you should know before starting experiments +with <code>TVS</code>. You may increase verbosity level using <code>-v</code> or even +<code>-vv</code> switch. See <a href="#Global%20switches">Global switches</a>, for detailed information +on verbosity levels. + +<p>In following examples you may also specify <code>--dummy</code> command. It means +that no files are really copied and no real output is produced. But +everything else looks like real operations were performed. + +<p><hr> +Node:<a name="Basic%20running%20%3ccode%3eTVS%3c%2fcode%3e">Basic running <code>TVS</code></a>, +Next:<a rel=next href="#Ignoring%20files">Ignoring files</a>, +Previous:<a rel=previous href="#Useful%20commands">Useful commands</a>, +Up:<a rel=up href="#Using%20%3ccode%3eTVS%3c%2fcode%3e%20step%20by%20step">Using <code>TVS</code> step by step</a> +<br> + +<h2>Basic running <code>TVS</code></h2> + +<p>Now it's time to look to the <code>examples</code> directory in your +distribution. It contains source file <code>sample.tex</code> we will use to +demonstrate the usage of <code>TVS</code>. + +<p>The first step you must not forget is to TeX your source correctly. +Document <code>sample.tex</code> uses <code>\tableofcontents</code>, so you must run +<pre>latex sample.tex +</pre> + +<p>twice. Make sure your document is TeXed correctly. It is <em>very +very</em> important. + +<p>Let's try what <code>TVS</code> can do now. First try to run +<pre>tvs sample.log +</pre> + +<p>The most important for <code>TVS</code> is log file <code>sample.log</code>. You do not +have to specify name with <code>.log</code> extension as it is tried to add +automatically. +What <code>TVS</code> now does? It goes through the file <code>sample.log</code> +and finds +all the files which are needed to build up the final document. + +<p><code>TVS</code> created an output directory named <code>TVS-OUT</code>. Check its +contents. In fact, on M$-DOS or M$-Windows machines this didn't work. +<a rel=footnote href="#fn-1"><sup>1</sup></a> +On UN*X machines, there is stupidly deep directory structure containing +only one directory in another. + +<p>There is a way to avoid this. +Please copy file <code>pathcuts.tvs</code> into the <code>examples</code> directory. +Edit <code>pathcuts.tvs</code>, replace path <code>/usr/TeX/texmf</code> with the path +to your TeX main directory. + +<p>Delete the <code>TVS-OUT</code> directory and run +<pre>tvs -v -p pathcuts.tvs sample +</pre> + +<p>See what <code>TVS</code> does now. +You may also check what is in the <code>TVS-OUT</code> directory. +By <code>-p file</code> we say that <code>file</code> contains paths we want to shorten. +On M$ file system, there is in fact needed to use this to +cut things like <code>c:\</code> to be able to construct file names used in the +output directory. + +<p><hr> +Node:<a name="Ignoring%20files">Ignoring files</a>, +Next:<a rel=next href="#Format%20file%20sources">Format file sources</a>, +Previous:<a rel=previous href="#Basic%20running%20%3ccode%3eTVS%3c%2fcode%3e">Basic running <code>TVS</code></a>, +Up:<a rel=up href="#Using%20%3ccode%3eTVS%3c%2fcode%3e%20step%20by%20step">Using <code>TVS</code> step by step</a> +<br> + +<h2>Ignoring files</h2> + +<p>As you can see, there is <code>sample.toc</code> in the output directory. We do +not really need it as it can be always generated. Now let us show the way +how to ignore files. Please copy file <code>ignpats.tvs</code> to the working +directory. This file contains patterns which are compared to ends of +files. Matching files are not copied to the output directory. + +<p>If you want to try it, delete the output directory and run +<pre>tvs -v -p pathcuts.tvs -i ignpats.tvs sample +</pre> + +<p>Now files ending with <code>toc</code> are missing. + +<p><em>Warning:</em> use this feature with care and only if you know what you +are doing. Always make sure that files you want to ignore may be rebuilt up +from the rest of the source. + +<p><hr> +Node:<a name="Format%20file%20sources">Format file sources</a>, +Next:<a rel=next href="#Configuration%20file">Configuration file</a>, +Previous:<a rel=previous href="#Ignoring%20files">Ignoring files</a>, +Up:<a rel=up href="#Using%20%3ccode%3eTVS%3c%2fcode%3e%20step%20by%20step">Using <code>TVS</code> step by step</a> +<br> + +<h2>Format file sources</h2> + +<p>In fact, storing the complete document source may not be enough to be able +to produce the same output. We must also store format source files. Storing +only the format file itself doesn't help as this file is not +binary compatible in general. + +<p>The main thing you need is to know where log files of generated formats +are stored. To obtain this information consult your local documentation, or +you may try to find files <code>latex.log, tex.log, pdftex.log</code>, or ask +your TeX administrator. It is also possible that your administrator +deleted log files after generating formats. In this case ask him to +regenerate format files and leave the logs untouched. +This is not a good manner to delete log files of this importance. +Your administrator may have even delete format file sources. In this case, +ask him to reinstall them and better find a new TeX administrator. + +<p>You should make sure that formats were really generated on your local +installation. They may have been generated on a binary compatible +machine with other organization of TeX directories. If so, you must +re-generate them. If you run a distribution which allows you to set +local TeX installation root directory, this is quite possible. For +example, on my texlive-4 I had to correct this. + +<p>In emergency, if you do not have root privilegies and you cannot +globally make format logs correct, you still can generate formats in +your own directory and use them overriding your system defaults. +In this case, give your root my regards. + +<p>To store format sources, you need to tell <code>TVS</code> where logs are. +It is done by <code>-f path</code> switch. Let's try to call +<pre>tvs -v -p pathcuts.tvs -f where_your_logs_are sample +</pre> + +<p>You should obtain output directory similar to previous one but containing +subdirectory named <code>FORMAT</code>, where complete source for format +generating is stored. + +<p>If <code>TVS</code> is not able to determine format name correctly, you may +force format name by adding <code>--fmtname name</code> into command line +similar to previous example. You may try +<pre>tvs -v -p pathcuts.tvs -f where_your_logs_are --fmtname latex sample +</pre> + +<p><hr> +Node:<a name="Configuration%20file">Configuration file</a>, +Next:<a rel=next href="#Limitations%20of%20%3ccode%3eTVS%3c%2fcode%3e">Limitations of <code>TVS</code></a>, +Previous:<a rel=previous href="#Format%20file%20sources">Format file sources</a>, +Up:<a rel=up href="#Using%20%3ccode%3eTVS%3c%2fcode%3e%20step%20by%20step">Using <code>TVS</code> step by step</a> +<br> + +<h2>Configuration file</h2> + +<p>The command lines we use are getting too long. If file <code>tvsrc</code> is +located in the working directory, it is used as config file. You may +also specify the config file explicitly by <code>-c filename</code> or +<code>--config filename</code> switch. + +<p>Please copy file <code>tvsrc</code> to the <code>examples</code> directory. Config file +has simple structure +<pre><variable> <value> +</pre> +Values set here may be always overridden by the command line. Setting +values for ignore, pathcuts and format doesn't mean that files are +ignored, paths cut and format sources stored by default. You must use +switches <code>-i, -p</code> and <code>-f</code>, but there is no need to follow +them by values. +It may seem a bit strange but it is done this way in order to prevent +you from doing something you do not want to. It doesn't save your +keystrokes but--we hope--your nerves. + +<p>If you edit the <code>format</code> entry in <code>tvsrc</code> to the path to your +format logs, you may for example use +<pre>tvs -i -p -f -v sample +</pre> + +<p>to store the source with format with ignoring files and cutting paths +instead of the long form without config file which goes +<pre>tvs -i ignpats.tvs -p pathcuts.tvs -f /usr/TeX/texmf/web2c -v sample +</pre> + +<p>But if you use only +<pre>tvs -p sample +</pre> + +<p>then no format file is examined and no files are ignored, no matter that +the config file exists. + +<p>In the config file you may also specify the default output +directory name with +<code>output</code> entry and the default verbosity level using +<code>verbose</code> with value 0, 1, or 2. These values are used always +and may be overridden with +<code>-o</code> and <code>-v</code>. + +<p><hr> +Node:<a name="Limitations%20of%20%3ccode%3eTVS%3c%2fcode%3e">Limitations of <code>TVS</code></a>, +Next:<a rel=next href="#Fonts">Fonts</a>, +Previous:<a rel=previous href="#Configuration%20file">Configuration file</a>, +Up:<a rel=up href="#Using%20%3ccode%3eTVS%3c%2fcode%3e%20step%20by%20step">Using <code>TVS</code> step by step</a> +<br> + +<h2>Limitations of <code>TVS</code></h2> + +<p>Work of <code>TVS</code> is limited by the files which are noticed in log files. +If you use anything which is done by external program, you must take +special care on files you want to store. If you include graphics in +Post Script, it may be included only by <code>\special</code> command and may not +be noticed in log. + +<p>You must always ask yourself the main important question: <em>Which +files--not used in TeX last run--I want to store?</em> + +<p>For example if you use a bibliography, your source is a <code>.bib</code> +file. But +in the last TeX run only sorted part of it, <code>.bbl</code> file is included. +If the <code>.bbl</code> file is enough for you, it's good. +But if you want to store +sources for bibliography completely, you need also <code>.bib</code> file and +<code>.bst</code> file, which contains bibliography style. And there is no way +for <code>TVS</code> to know it as BibTeX is an external utility. +That's why you must copy them to <code>TVS-OUT</code> by hand. + +<p>If you don't do so, you are still able to obtain exactly the same document, +but you run into difficulties trying to do any modifications. + +<p>It is always better store more than you need. If you are a TeX beginner +and you are absolutely not +sure, it may be reasonable for you to preserve all the files from your +working directory. Includes from TeX directory (e.g., +<code>c:\tex\texmf</code>) are handled correctly. + +<p><hr> +Node:<a name="Fonts">Fonts</a>, +Next:<a rel=next href="#What%20to%20do%20with%20collected%20output">What to do with collected output</a>, +Previous:<a rel=previous href="#Limitations%20of%20%3ccode%3eTVS%3c%2fcode%3e">Limitations of <code>TVS</code></a>, +Up:<a rel=up href="#Using%20%3ccode%3eTVS%3c%2fcode%3e%20step%20by%20step">Using <code>TVS</code> step by step</a> +<br> + +<h2>Fonts</h2> + +<p>This is experimental! + +<p>Usually there is no reason to store also font source files. The exception +is if your national modification of fonts changed its encoding or you use +unusual fonts. + +<p>If you want to, +you may run <code>dvips</code> with <code>-d</code> switch to produce a log file with +list of opened files. +Consult your <code>dvips</code> documentation how to do it. +This switch is followed by number indicating what should be logged. + +<p>If you use <code>tvs -d dvips.log</code>, a subdirectory FONTS is created +in the output +directory and all files used by dvips are stored there. +Only font bitmaps may +be obtained this way, so this feature is not very useful. If you want to +store Metafont sources, you must do it by hand. + +<p>There is no guarantee of correct work of <code>-d</code> switch as <code>dvips</code> +log changed. + +<p><hr> +Node:<a name="What%20to%20do%20with%20collected%20output">What to do with collected output</a>, +Previous:<a rel=previous href="#Fonts">Fonts</a>, +Up:<a rel=up href="#Using%20%3ccode%3eTVS%3c%2fcode%3e%20step%20by%20step">Using <code>TVS</code> step by step</a> +<br> + +<h2>What to do with collected output</h2> + +<p>Currently <code>TVS</code> implements no way of packing nor extracting collected +complete source. Use any way of packing this directory you like depending +of the platform you run <code>TVS</code> and the platform you will want to +re-typeset your work in the future. + +<p>There is no way to run TVS on the destination. You must only tell TeX +<ul> +<li>to generate the format file if format sources were stored, +<li>to generate fonts if fonts were stored, +<li>to find files in working directory and its subdirectories at first. +</ul> +To do this, consult the local documentation. + +<p><hr> +Node:<a name="Reference%20guide%20to%20%3ccode%3eTVS%3c%2fcode%3e%20commands">Reference guide to <code>TVS</code> commands</a>, +Next:<a rel=next href="#Config%20file%20and%20pattern%20files">Config file and pattern files</a>, +Previous:<a rel=previous href="#Using%20%3ccode%3eTVS%3c%2fcode%3e%20step%20by%20step">Using <code>TVS</code> step by step</a>, +Up:<a rel=up href="#Top">Top</a> +<br> + +<h1>Reference guide to <code>TVS</code> commands</h1> + +<p>This chapter describes overall structure of <code>TVS</code> commands and +describes the function of the commands in detail. + +<ul> +<li><a href="#Invoking%20%3ccode%3eTVS%3c%2fcode%3e">Invoking <code>TVS</code></a>: +<li><a href="#Global%20switches">Global switches</a>: +<li><a href="#Ignoring%20files%20and%20cutting%20filenames">Ignoring files and cutting filenames</a>: +<li><a href="#Output%20directory%20setting">Output directory setting</a>: +<li><a href="#Storing%20format%20source%20files%20and%20fonts">Storing format source files and fonts</a>: +</ul> + +<p><hr> +Node:<a name="Invoking%20%3ccode%3eTVS%3c%2fcode%3e">Invoking <code>TVS</code></a>, +Next:<a rel=next href="#Global%20switches">Global switches</a>, +Previous:<a rel=previous href="#Reference%20guide%20to%20%3ccode%3eTVS%3c%2fcode%3e%20commands">Reference guide to <code>TVS</code> commands</a>, +Up:<a rel=up href="#Reference%20guide%20to%20%3ccode%3eTVS%3c%2fcode%3e%20commands">Reference guide to <code>TVS</code> commands</a> +<br> + +<h2>Invoking <code>TVS</code></h2> + +<p>General structure of calling <code>TVS</code> is +<pre>tvs [switches] filename +</pre> + +<p>where <code>filename</code> is a name of the main TeX log file. +<code>TVS</code> must be run in the directory where main TeX log file is +located. + +<p>Always make sure +that your document is TeX-ed correctly (index is sorted, bibliography is +present, pictures are included etc.)! Usually you have to run TeX +several times to typeset the document (but we hope this doesn't +surprise you). + +<p><hr> +Node:<a name="Global%20switches">Global switches</a>, +Next:<a rel=next href="#Ignoring%20files%20and%20cutting%20filenames">Ignoring files and cutting filenames</a>, +Previous:<a rel=previous href="#Invoking%20%3ccode%3eTVS%3c%2fcode%3e">Invoking <code>TVS</code></a>, +Up:<a rel=up href="#Reference%20guide%20to%20%3ccode%3eTVS%3c%2fcode%3e%20commands">Reference guide to <code>TVS</code> commands</a> +<br> + +<h2>Global switches</h2> + +<p>These switches may be used to change globally behavior of <code>TVS</code>. + +<dl> + +<br><dt><code>-h, --help</code> +<dd>Prints short usage and version information and exits successfully. +This switch doesn't need a filename as a parameter. + +<br><dt><code>-v, --verbose</code> +<dd>Sets verbosity level. May used several times. There are three verbosity +levels: +<ul> +<li>Level 0--only examined files and errors are written. +This is the default. +<li>Level 1--found files, copying info and errors are written. +<li>Level 2--extra talkative, writes all it does. +</ul> +For level 1, use <code>-v</code> or <code>--verbose</code> once, for level 2, use it +twice. You may also specify <code>-vv</code>, which is the most comfortable way +to do it. + +<br><dt><code>-c file, --config file</code> +<dd>Specifies the configuration file name. See <a href="#Config%20file">Config file</a>, for +details about configuration file. + +<p>If <code>--config</code> switch is not specified, file <code>tvsrc</code> in working +directory is used as a config file if it exists. There is no need of having +config file as all options may be set from command line. + +<br><dt><code>--dummy</code> +<dd>Sets <code>TVS</code> to dummy mode. No files are changed, no files are really +copied to output directory, it is only shown what has to be done. Useful if +used with <code>--verbose</code>. (Inspired by similar switch in cdrecord.) +</dl> + +<p><hr> +Node:<a name="Ignoring%20files%20and%20cutting%20filenames">Ignoring files and cutting filenames</a>, +Next:<a rel=next href="#Output%20directory%20setting">Output directory setting</a>, +Previous:<a rel=previous href="#Global%20switches">Global switches</a>, +Up:<a rel=up href="#Reference%20guide%20to%20%3ccode%3eTVS%3c%2fcode%3e%20commands">Reference guide to <code>TVS</code> commands</a> +<br> + +<h2>Ignoring files and cutting filenames</h2> + +<p>Using following settings we may set files which shouldn't be copied to +output and set usual paths we don't want to store completely. + +<dl> + +<br><dt><code>-i [file], --ignore [file]</code> +<dd>Sets file with patterns of filenames which we don't want to be copied to +output. See <a href="#Ignore%20pattern%20file">Ignore pattern file</a>, for details about ignore pattern file. + +<p>If <code>file</code> name is omitted, value from config file is used. If +<code>ignore</code> parameter is not set in config file, <code>TVS</code> terminates +with an error. + +<br><dt><code>-p [file], --pathcuts [file]</code> +<dd>Sets file with path patterns to cut. See <a href="#Pathcuts%20pattern%20file">Pathcuts pattern file</a>, +for information about file +path names handling. + +<p>If <code>file</code> name is not specified, value from config file is used. If +<code>pathcuts</code> parameter in config file is not specified, +<code>--pathcuts</code> parameter is silently ignored. It makes no harm to +function of <code>TVS</code> and if it causes filename conflict, <code>TVS</code> stops +with an error. +</dl> + +<p><hr> +Node:<a name="Output%20directory%20setting">Output directory setting</a>, +Next:<a rel=next href="#Storing%20format%20source%20files%20and%20fonts">Storing format source files and fonts</a>, +Previous:<a rel=previous href="#Ignoring%20files%20and%20cutting%20filenames">Ignoring files and cutting filenames</a>, +Up:<a rel=up href="#Reference%20guide%20to%20%3ccode%3eTVS%3c%2fcode%3e%20commands">Reference guide to <code>TVS</code> commands</a> +<br> + +<h2>Output directory setting</h2> + +<dl> + +<br><dt><code>-o dirname, --output dirname</code> +<dd>Sets the name of output directory to <code>dirname</code>. This may be only +useful to override setting in config file. If config file doesn't set +output directory name, default name <code>TVS-OUT</code> is used and this is +created in working directory. +</dl> + +<p><hr> +Node:<a name="Storing%20format%20source%20files%20and%20fonts">Storing format source files and fonts</a>, +Previous:<a rel=previous href="#Output%20directory%20setting">Output directory setting</a>, +Up:<a rel=up href="#Reference%20guide%20to%20%3ccode%3eTVS%3c%2fcode%3e%20commands">Reference guide to <code>TVS</code> commands</a> +<br> + +<h2>Storing format source files and fonts</h2> + +<dl> + +<br><dt><code>-f [dirname], --format [dirname]</code> +<dd>Specifies directory where format log files are and packs format file +sources. If <code>dirname</code> is +omitted, value from config file is taken. If <code>format</code> parameter is not +specified in config file, <code>TVS</code> dies with an error. See <a href="#Format%20file%20sources">Format file sources</a>, for +details about format source files extracting. +Format file name is taken from the main document log from the first line +which contains <code>format=name</code>. + +<br><dt><code>--fmtname [name]</code> +<dd>Specifies format name, e.g. <code>plain</code>, <code>latex</code>, etc. Useful, if +format name cannot be found in log of document in form +<code>format=name</code>. +Specifying <code>--fmtname [name]</code> doesn't imply packing format sources. +You must specify <code>--format</code>, too. +This option cannot be specified in <code>TVS</code>'s +config file. + +<br><dt><code>-d file, --dvips file</code> +<dd>Sets name of <code>dvips</code> log file. This cannot be specified in config +file. This is only experimental. See <a href="#Fonts">Fonts</a>, for information on dvips +log file +examining and font storing. You would better not to use this feature unless +you know what you are doing. +</dl> + +<p><hr> +Node:<a name="Config%20file%20and%20pattern%20files">Config file and pattern files</a>, +Next:<a rel=next href="#Credits">Credits</a>, +Previous:<a rel=previous href="#Reference%20guide%20to%20%3ccode%3eTVS%3c%2fcode%3e%20commands">Reference guide to <code>TVS</code> commands</a>, +Up:<a rel=up href="#Top">Top</a> +<br> + +<h1>Config file and pattern files</h1> + +<p>In this chapter we discuss config file setting and structure and usage of +files with patterns. These are used to shorten (cut) filenames to use +reasonable short paths in output directory and to set files which we do not +want to store at all. + +<ul> +<li><a href="#Config%20file">Config file</a>: +<li><a href="#Pattern%20file%20structure">Pattern file structure</a>: +</ul> + +<p><hr> +Node:<a name="Config%20file">Config file</a>, +Next:<a rel=next href="#Pattern%20file%20structure">Pattern file structure</a>, +Previous:<a rel=previous href="#Config%20file%20and%20pattern%20files">Config file and pattern files</a>, +Up:<a rel=up href="#Config%20file%20and%20pattern%20files">Config file and pattern files</a> +<br> + +<h2>Config file</h2> + +<p>We may set values for <code>verbose, format, ignore, pathcuts,</code> and +<code>output</code> variables in config file. + +<p>If <code>TVS</code> is run with <code>--config</code> switch, it sets used config file +name. If this is not used, default config file named <code>tvsrc</code> in +working directory is tried. +If it doesn't exist, no config file is used at all. +There is no default config file location (e.g. +<code>/etc/tvsrc</code> or something similar) because of the platform independence +of <code>TVS</code>. + +<p>The structure of config file is quite simple. Everything after <code>#</code> and +<code>%</code> characters is ignored. Lines with structure +<pre><variable> <value> +</pre> + +<p>set values of variables. There must be just one white character between +the <code><variable></code> and the <code><value></code>. There may be any count of +white spaces before and after this structure on the line. Lines with +other structure or specifying variables not listed below are silently +ignored. + +<p>For example of config file, see file <code>tvsrc</code> enclosed with the +distribution. + +<p>Variables have meanings as follows: + +<dl> + +<br><dt><code>verbose</code> +<dd>Sets the default verbosity level. Reasonable values are +<dl> +<dt><code>0</code> +<dd>This is the default. +<br><dt><code>1, 2</code> +<dd>Set verbosity level to 1 or 2. See <a href="#Global%20switches">Global switches</a>, for description +of verbosity levels. +</dl> + +<br><dt><code>format</code> +<dd>Sets the name of the directory where format log files are stored. This is +used only of <code>--format</code> or <code>-f</code> switch is set and may be +overridden by this. You should specify <code>format</code> parameter in config +file if you want to store format sources. And you should store format +sources. Simply--use it. + +<br><dt><code>ignore</code> +<dd>Sets the name of file with patterns used to ignore files. See <a href="#Ignore%20pattern%20file">Ignore pattern file</a>, for +information about ignoring files. +This is used only if <code>--ignore</code> or <code>-i</code> switch is set and may be +overridden by this. + +<br><dt><code>pathcuts</code> +<dd>Sets the name of file with patterns used to shorten the stored filenames. +Used only if <code>--pathcuts</code> or <code>-p</code> switch is set and may be +overridden by these. + +<br><dt><code>output</code> +<dd>Sets the default output directory name. May be overridden by <code>--output</code> +or <code>-o</code> switch. If not set, default value <code>TVS-OUT</code> is used. +</dl> + +<p><hr> +Node:<a name="Pattern%20file%20structure">Pattern file structure</a>, +Previous:<a rel=previous href="#Config%20file">Config file</a>, +Up:<a rel=up href="#Config%20file%20and%20pattern%20files">Config file and pattern files</a> +<br> + +<h2>Pattern file structure</h2> + +<p>The structure of files which contain patterns is quite simple. Everything +after <code>#</code> or <code>%</code> characters is ignored. A line of the file may +start and end with white characters. These white characters are ignored. +The remaining part of the line (if it is nonempty) is considered to be a +pattern. + +<p>A pattern is treated as a Perl regular expression. +It doesn't matter if you don't know what it is, all you need to know is +seen from the examples. Nevertheless you may try <code>man perlre</code> or +equivalent for reading documentation on you system. + +<p>Next, we'll discuss the usage of pattern files. + +<ul> +<li><a href="#Pathcuts%20pattern%20file">Pathcuts pattern file</a>: +<li><a href="#Ignore%20pattern%20file">Ignore pattern file</a>: +</ul> + +<p><hr> +Node:<a name="Pathcuts%20pattern%20file">Pathcuts pattern file</a>, +Next:<a rel=next href="#Ignore%20pattern%20file">Ignore pattern file</a>, +Previous:<a rel=previous href="#Pattern%20file%20structure">Pattern file structure</a>, +Up:<a rel=up href="#Pattern%20file%20structure">Pattern file structure</a> +<br> + +<h3>Pathcuts pattern file</h3> + +<p>This file is used if <code>--pathcuts</code> or <code>-p</code> switch is specified. +An example is enclosed with the distribution and named <code>pathcuts.tvs</code>. + +<p>The file specifies list of patterns which are compared to the +<em>beginnings</em> of +filenames. On <em>first match</em> the matching part is cut +and the rest of pattern +list is not used. So it has no sense to have a pattern list +<pre>/usr/TeX +/usr/TeX/texmf +</pre> + +<p>as the second entry will be never used. +But sequence +<pre>/usr/TeX/texmf +/usr/TeX +</pre> + +<p>may be reasonable. (It's an exercise why and when <code>:-)</code>.) + +<p>An example: Let us have pattern list containing <code>/usr/TeX/texmf</code>. If +filename is +<pre></pre> + +<p>it matches and is cut to +<pre>tex/latex/algorith/algorithm.sty +</pre> + +<p>File <code>inputs/my_macro.tex</code> doesn't match the pattern and is +left untouched. + +<p><hr> +Node:<a name="Ignore%20pattern%20file">Ignore pattern file</a>, +Previous:<a rel=previous href="#Pathcuts%20pattern%20file">Pathcuts pattern file</a>, +Up:<a rel=up href="#Pattern%20file%20structure">Pattern file structure</a> +<br> + +<h3>Ignore pattern file</h3> + +<p>This file is used when <code>--ignore</code> or <code>-i</code> switch is specified. An +example named <code>ignpats.tvs</code> is enclosed. + +<p>This file specifies list of patterns which are compared to <em>ends</em> +of filenames. If <em>any</em> of them matches, file is ignored and is not +copied to output. Usually, suffices of files (e.g. <code>toc, bbl</code>) are +used here. If you want make sure that there is a dot before <code>toc</code> +or <code>bbl</code>, use <code>\.toc</code> and <code>\.bbl</code> entries in pattern file +as entries are PERL regular expressions. For detailed information see +<code>perlre(1)</code>. + +<p>Use this feature with care, it is usually better to have a superset of +needed complete source then have <em>incomplete</em> source. There may be +files which loaded (and you don't know about them) with suffices you +don't expect. Use it only if you know what you are doing. You've been +warned. + +<p><hr> +Node:<a name="Credits">Credits</a>, +Next:<a rel=next href="#Dealing%20with%20bugs%20in%20%3ccode%3eTVS%3c%2fcode%3e">Dealing with bugs in <code>TVS</code></a>, +Previous:<a rel=previous href="#Config%20file%20and%20pattern%20files">Config file and pattern files</a>, +Up:<a rel=up href="#Top">Top</a> +<br> + +<h1>Credits</h1> + +<p>I would like to thank to: +<ul> +<li>Petr Sojka, who made me to write <code>TVS</code> and helped me very much with +all the troubles and decisions we have had to make, +<li>Richard Bot´ik, who lent me the +"Perl Camel Book" for a fortnight, +<li>many others, +<li>Bubo, my home computer, as it surprisingly didn't get overheated too much +during the terribly hot spring of year 2000 in middle Europe. +</ul> + +<p><hr> +Node:<a name="Dealing%20with%20bugs%20in%20%3ccode%3eTVS%3c%2fcode%3e">Dealing with bugs in <code>TVS</code></a>, +Previous:<a rel=previous href="#Credits">Credits</a>, +Up:<a rel=up href="#Top">Top</a> +<br> + +<h1>Dealing with bugs in <code>TVS</code></h1> + +<p>Please send bug-reports to <a href="mailto:xantos (at) fi.muni.cz">xantos (at) fi.muni.cz</a> with subject +<code>TVS bug</code>. Add information on platform, TeX installation and +include log files which were parsed. Also please note version of TVS, +both version number and CVS version code (it's the line containing +<code>$Id: tvs.pl,v...</code>). You can get this information by running +<code>tvs --help</code>. + +<p>If you tried to compare <code>.dvi</code> files obtained running TeX on +various platforms using <code>TVS</code> complete source, please keep in mind +they may differ if something depending on "the state of the computer" +(especially date) was included. + + +<h1>Table of Contents</h1> +<ul> +<li><a href="#Top">TeX Versioning System</a> +<li><a href="#Copying">Copying</a> +<li><a href="#Introduction">Introduction</a> +<ul> +<li><a href="#Why%20do%20you%20need%20%3ccode%3eTVS%3c%2fcode%3e%3f">Why do you need <code>TVS</code>?</a> +<li><a href="#What%20%3ccode%3eTVS%3c%2fcode%3e%20can%20do%3f">What <code>TVS</code> can do?</a> +<li><a href="#What%20do%20you%20need%20to%20run%20%3ccode%3eTVS%3c%2fcode%3e%3f">What do you need to run <code>TVS</code>?</a> +</ul> +<li><a href="#Installation">Installation</a> +<li><a href="#Using%20%3ccode%3eTVS%3c%2fcode%3e%20step%20by%20step">Using <code>TVS</code> step by step</a> +<ul> +<li><a href="#Useful%20commands">Useful commands</a> +<li><a href="#Basic%20running%20%3ccode%3eTVS%3c%2fcode%3e">Basic running <code>TVS</code></a> +<li><a href="#Ignoring%20files">Ignoring files</a> +<li><a href="#Format%20file%20sources">Format file sources</a> +<li><a href="#Configuration%20file">Configuration file</a> +<li><a href="#Limitations%20of%20%3ccode%3eTVS%3c%2fcode%3e">Limitations of <code>TVS</code></a> +<li><a href="#Fonts">Fonts</a> +<li><a href="#What%20to%20do%20with%20collected%20output">What to do with collected output</a> +</ul> +<li><a href="#Reference%20guide%20to%20%3ccode%3eTVS%3c%2fcode%3e%20commands">Reference guide to <code>TVS</code> commands</a> +<ul> +<li><a href="#Invoking%20%3ccode%3eTVS%3c%2fcode%3e">Invoking <code>TVS</code></a> +<li><a href="#Global%20switches">Global switches</a> +<li><a href="#Ignoring%20files%20and%20cutting%20filenames">Ignoring files and cutting filenames</a> +<li><a href="#Output%20directory%20setting">Output directory setting</a> +<li><a href="#Storing%20format%20source%20files%20and%20fonts">Storing format source files and fonts</a> +</ul> +<li><a href="#Config%20file%20and%20pattern%20files">Config file and pattern files</a> +<ul> +<li><a href="#Config%20file">Config file</a> +<li><a href="#Pattern%20file%20structure">Pattern file structure</a> +<ul> +<li><a href="#Pathcuts%20pattern%20file">Pathcuts pattern file</a> +<li><a href="#Ignore%20pattern%20file">Ignore pattern file</a> +</ul> +</ul> +<li><a href="#Credits">Credits</a> +<li><a href="#Dealing%20with%20bugs%20in%20%3ccode%3eTVS%3c%2fcode%3e">Dealing with bugs in <code>TVS</code></a> +</ul> + +<hr><h4>Footnotes</h4> +<ol type="1"> +<li><a name="fn-1"></a> +<p>Do not install Linux immediately, we will correct it in the +next paragraph. <code>;-)</code></p> + +</ol><hr> + +</body></html> + diff --git a/support/TVS/TVS/docs/tvs.info b/support/TVS/TVS/docs/tvs.info new file mode 100644 index 0000000000..95853269f5 --- /dev/null +++ b/support/TVS/TVS/docs/tvs.info @@ -0,0 +1,898 @@ +This is tvs.info, produced by makeinfo version 4.0 from tvs.texi. + +INFO-DIR-SECTION TeX +START-INFO-DIR-ENTRY +* TVS: (tvs) TeX Versioning System +END-INFO-DIR-ENTRY + + +File: tvs.info, Node: Top, Next: Copying, Prev: (dir), Up: (dir) + +TeX Versioning System +********************* + + This is documentation of TeX Versioning System, software for storing +complete source codes of TeX documents. + +* Menu: + +* Copying:: +* Introduction:: +* Installation:: +* Using `TVS' step by step:: +* Reference guide to `TVS' commands:: +* Config file and pattern files:: +* Credits:: +* Dealing with bugs in `TVS':: + + --- The Detailed Node Listing --- + +Introduction + +* Why do you need `TVS'?:: +* What `TVS' can do?:: +* What do you need to run `TVS'?:: + +Using `TVS' step by step + +* Useful commands:: +* Basic running `TVS':: +* Ignoring files:: +* Format file sources:: +* Configuration file:: +* Limitations of `TVS':: +* Fonts:: +* What to do with collected output:: + +Reference guide to `TVS' commands + +* Invoking `TVS':: +* Global switches:: +* Ignoring files and cutting filenames:: +* Output directory setting:: +* Storing format source files and fonts:: + +Config file and pattern files + +* Config file:: +* Pattern file structure:: + +Pattern file structure + +* Pathcuts pattern file:: +* Ignore pattern file:: + + +File: tvs.info, Node: Copying, Next: Introduction, Prev: Top, Up: Top + +Copying +******* + + The program `TVS' and its documentation is written and maintained by +David Antos<, <xantos (at) fi.muni.cz>. (Of course substitute (at) with +@.) Contact him when in trouble, but please read the documentation +first. + + Copyright (C) 2000 David Antos< + + Permission is granted to make and distribute verbatim copies of this +manual provided the copyright notice and this permission notice are +preserved on all copies. + + Permission is granted to copy and distribute modified versions of +this manual under the conditions for verbatim copying, provided that the +entire resulting derived work is distributed under the terms of a +permission notice identical to this one. + + Permission is granted to copy and distribute translations of this +manual into another language, under the above conditions for modified +versions, except that this permission notice may be stated in a +translation approved by the Free Software Foundation. + + +File: tvs.info, Node: Introduction, Next: Installation, Prev: Copying, Up: Top + +Introduction +************ + + This is documentation of TeX Versioning System, software for storing +complete source codes of TeX documents. + + Version 1.0 + + (Documentation CVS ver. $Id: tvs.texi,v 1.23 2000/08/16 17:00:24 +antos Exp $) + +* Menu: + +* Why do you need `TVS'?:: +* What `TVS' can do?:: +* What do you need to run `TVS'?:: + + +File: tvs.info, Node: Why do you need `TVS'?, Next: What `TVS' can do?, Prev: Introduction, Up: Introduction + +Why do you need `TVS'? +====================== + + It must have happened to you. You use TeX at work. You run another +distribution at home. You wrote a beautiful document at home, you came +to work and got error message `I can't find file `foo.tex''. There is a +package missing in your work installation. + + Or: You wrote a beautifully typeset book several years ago. You +used em-TeX on M$-DOS machine. The book should be typeset again. You +have only my_book.tex and no macros you used. What to do? + + To be serious, there is nothing to be done now. But if you stored the +_complete_ source of the documents, it didn't have to happen to you. +And how to store the complete source? It's simple--use `TVS'. + + Please! Please! Packing complete TeX document sources is a delicate +and sensitive operation. Read the entire manual before you use `TVS' to +do something important. This kind of software can be useful for you if +and only if you use it correctly. I'm sorry for this but it's the fact. + + +File: tvs.info, Node: What `TVS' can do?, Next: What do you need to run `TVS'?, Prev: Why do you need `TVS'?, Up: Introduction + +What `TVS' can do? +================== + + `TVS' can store complete source codes of TeX documents. It parses +logs of TeX and finds files which were used to typeset the document. +`TVS' can work in three levels: + + * Only document log is examined. It stores all macros, styles, + included documents etc. you need. + + * Document log and format log is examined. It also stores all source + files needed to build up format file. + + * (experimental) Moreover dvips log is parsed and used fonts are + stored. This is not so useful as only `.pk' files may be obtained + this way. + + Files collected by `TVS' can be used on any TeX installation to +build up exactly the same document. Next, let us call the product of +`TVS' a _complete source_. + + There are several important features of `TVS': + + * `TVS' is a Perl script, it runs wherever Perl is available (it + means nearly everywhere). + + * There is no difference in using of `TVS' when running LaTeX, + plain, or whatever you want. + + * On the destination (the place you typeset the complete source), + there is no need to run `TVS'. You only need to say TeX to find + files in working directory first. + + * `TVS' is _not_ a version control system. It cannot handle versions + of your documents. There are other systems, e.g., `RCS' or `CVS', + designed to do this. + + +File: tvs.info, Node: What do you need to run `TVS'?, Prev: What `TVS' can do?, Up: Introduction + +What do you need to run `TVS'? +============================== + + Hardware and OS requirements are simple. `TVS' is a Perl script so it +runs wherever Perl 5.x is available. It uses packages Getopt::Long, +File::Basename, File::Copy, and File::Path. These packages should be +nevertheless in standard Perl distribution. + + For information on Perl for your OS check <http://www.perl.com>. +There should be no problem on most Unices, in Linux, Perl is usually a +part of standard distribution. + + Maybe you find useful having also `make' and `Texinfo' utilities +installed on your system, but `Texinfo' is only needed to produce +documentation in DVI, PostScript, Info, or HTML formats which are +pregenerated in `TVS' distribution. And `make' is only to generate them +comfortably. + + There are some requirements for your TeX source codes to be able to +handle them successfully. There is a problem with including files into +your source. The usual and best way to do it is to have the main source +at the top of the source tree and use relative paths in all variants of +`\input' command. Avoid pathological inputs like `\includegraphics +../../pictures/pict1.ps'. This should not bother you as nearly +everybody does it. + + Usually `TVS' is able to pack files referenced by "up-going" +relative path (if it makes a conflict, `TVS' recognizes it), but you +run into difficulties when re-typesetting the complete source and you +have to correct all the things by hand. + + +File: tvs.info, Node: Installation, Next: Using `TVS' step by step, Prev: Introduction, Up: Top + +Installation +************ + + The program `TVS' and its documentation is written and maintained by +David Antos<, <xantos (at) fi.muni.cz>. (Of course substitute (at) with +@.) Contact him when in trouble, but please read the documentation +first. + + The following instructions assume that Perl version >=5 is installed +on your system. For information on Perl consult <http://www.perl.org>. + + The homepage of `TVS' is <http://www.fi.muni.cz/~xantos/tvs>. Here +you can get `TVS' either file-by-file or as `tvs.tar.gz' file. `TVS' +can also be obtained on CTAN in `support/TVS'. + + Because of platform independence we decided not to prepare any +"instant" packages. + + If you downloaded `tvs.tar.gz', gunzip and un-tar it somewhere. If +you downloaded separate files, reconstruct the original file structure +anywhere you want. + + On UNIX, make a link to `tvs.pl' from a directory which is in your +`PATH', e.g. `/usr/local/bin', if your system decodes first lines of +scripts to run them. In this case, it may be needed to correct the very +first line of `tvs.pl' and put the right path to your Perl interpreter +there. Otherwise you may still run `TVS' running `perl tvs.pl'. Install +the documentation in your favorite format, where your docs-reader can +find it. At least, `/usr/doc/tvs' wouldn't be a bad choice to store +Post Script or HTML documentation. + + Generally speaking, there is no need to install `TVS' to global +directories if you are the only-one who runs it or you are not root. + + Try `tvs --help'. If a TVS header and help message written, +everything is OK. + + If your standard Perl distribution does not contain packages +Getopt::Long, File::Basename, File::Copy, and File::Path, get them from +<http://www.perl.org>. + + On M$ DOS/Window$ platforms the `.pl' suffix should be enough for +Perl script to run, of course if Perl is correctly installed. Please do +not expect me to make better support for M$ platforms as I do not run +them. + + On other platforms, if there are difficulties in installing or +running `TVS', please drop me a line. + + +File: tvs.info, Node: Using `TVS' step by step, Next: Reference guide to `TVS' commands, Prev: Installation, Up: Top + +Using `TVS' step by step +************************ + + This chapter shows the usage of `TVS' and various examples. It also +points out the limitations of this system, in other words what it _can_ +do for you (and it's quite a lot) and what it cannot. Yes, there are +some unpleasant things you must do manually. + +* Menu: + +* Useful commands:: +* Basic running `TVS':: +* Ignoring files:: +* Format file sources:: +* Configuration file:: +* Limitations of `TVS':: +* Fonts:: +* What to do with collected output:: + + +File: tvs.info, Node: Useful commands, Next: Basic running `TVS', Prev: Using `TVS' step by step, Up: Using `TVS' step by step + +Useful commands +=============== + + To make sure that `TVS' is correctly installed on your system, run +`tvs -h'. You should obtain a short help on using `TVS'. + + There are two useful switches you should know before starting +experiments with `TVS'. You may increase verbosity level using `-v' or +even `-vv' switch. *Note Global switches::, for detailed information on +verbosity levels. + + In following examples you may also specify `--dummy' command. It +means that no files are really copied and no real output is produced. +But everything else looks like real operations were performed. + + +File: tvs.info, Node: Basic running `TVS', Next: Ignoring files, Prev: Useful commands, Up: Using `TVS' step by step + +Basic running `TVS' +=================== + + Now it's time to look to the `examples' directory in your +distribution. It contains source file `sample.tex' we will use to +demonstrate the usage of `TVS'. + + The first step you must not forget is to TeX your source correctly. +Document `sample.tex' uses `\tableofcontents', so you must run + latex sample.tex + +twice. Make sure your document is TeXed correctly. It is _very very_ +important. + + Let's try what `TVS' can do now. First try to run + tvs sample.log + +The most important for `TVS' is log file `sample.log'. You do not have +to specify name with `.log' extension as it is tried to add +automatically. What `TVS' now does? It goes through the file +`sample.log' and finds all the files which are needed to build up the +final document. + + `TVS' created an output directory named `TVS-OUT'. Check its +contents. In fact, on M$-DOS or M$-Windows machines this didn't work. +(1) On UN*X machines, there is stupidly deep directory structure +containing only one directory in another. + + There is a way to avoid this. Please copy file `pathcuts.tvs' into +the `examples' directory. Edit `pathcuts.tvs', replace path +`/usr/TeX/texmf' with the path to your TeX main directory. + + Delete the `TVS-OUT' directory and run + tvs -v -p pathcuts.tvs sample + +See what `TVS' does now. You may also check what is in the `TVS-OUT' +directory. By `-p file' we say that `file' contains paths we want to +shorten. On M$ file system, there is in fact needed to use this to cut +things like `c:\' to be able to construct file names used in the output +directory. + + ---------- Footnotes ---------- + + (1) Do not install Linux immediately, we will correct it in the next +paragraph. `;-)' + + +File: tvs.info, Node: Ignoring files, Next: Format file sources, Prev: Basic running `TVS', Up: Using `TVS' step by step + +Ignoring files +============== + + As you can see, there is `sample.toc' in the output directory. We do +not really need it as it can be always generated. Now let us show the +way how to ignore files. Please copy file `ignpats.tvs' to the working +directory. This file contains patterns which are compared to ends of +files. Matching files are not copied to the output directory. + + If you want to try it, delete the output directory and run + tvs -v -p pathcuts.tvs -i ignpats.tvs sample + +Now files ending with `toc' are missing. + + _Warning:_ use this feature with care and only if you know what you +are doing. Always make sure that files you want to ignore may be +rebuilt up from the rest of the source. + + +File: tvs.info, Node: Format file sources, Next: Configuration file, Prev: Ignoring files, Up: Using `TVS' step by step + +Format file sources +=================== + + In fact, storing the complete document source may not be enough to +be able to produce the same output. We must also store format source +files. Storing only the format file itself doesn't help as this file is +not binary compatible in general. + + The main thing you need is to know where log files of generated +formats are stored. To obtain this information consult your local +documentation, or you may try to find files `latex.log, tex.log, +pdftex.log', or ask your TeX administrator. It is also possible that +your administrator deleted log files after generating formats. In this +case ask him to regenerate format files and leave the logs untouched. +This is not a good manner to delete log files of this importance. Your +administrator may have even delete format file sources. In this case, +ask him to reinstall them and better find a new TeX administrator. + + You should make sure that formats were really generated on your local +installation. They may have been generated on a binary compatible +machine with other organization of TeX directories. If so, you must +re-generate them. If you run a distribution which allows you to set +local TeX installation root directory, this is quite possible. For +example, on my texlive-4 I had to correct this. + + In emergency, if you do not have root privilegies and you cannot +globally make format logs correct, you still can generate formats in +your own directory and use them overriding your system defaults. In +this case, give your root my regards. + + To store format sources, you need to tell `TVS' where logs are. It +is done by `-f path' switch. Let's try to call + tvs -v -p pathcuts.tvs -f where_your_logs_are sample + +You should obtain output directory similar to previous one but +containing subdirectory named `FORMAT', where complete source for format +generating is stored. + + If `TVS' is not able to determine format name correctly, you may +force format name by adding `--fmtname name' into command line similar +to previous example. You may try + tvs -v -p pathcuts.tvs -f where_your_logs_are --fmtname latex sample + + +File: tvs.info, Node: Configuration file, Next: Limitations of `TVS', Prev: Format file sources, Up: Using `TVS' step by step + +Configuration file +================== + + The command lines we use are getting too long. If file `tvsrc' is +located in the working directory, it is used as config file. You may +also specify the config file explicitly by `-c filename' or `--config +filename' switch. + + Please copy file `tvsrc' to the `examples' directory. Config file +has simple structure + <variable> <value> + Values set here may be always overridden by the command line. Setting +values for ignore, pathcuts and format doesn't mean that files are +ignored, paths cut and format sources stored by default. You must use +switches `-i, -p' and `-f', but there is no need to follow them by +values. It may seem a bit strange but it is done this way in order to +prevent you from doing something you do not want to. It doesn't save +your keystrokes but--we hope--your nerves. + + If you edit the `format' entry in `tvsrc' to the path to your format +logs, you may for example use + tvs -i -p -f -v sample + +to store the source with format with ignoring files and cutting paths +instead of the long form without config file which goes + tvs -i ignpats.tvs -p pathcuts.tvs -f /usr/TeX/texmf/web2c -v sample + + But if you use only + tvs -p sample + +then no format file is examined and no files are ignored, no matter that +the config file exists. + + In the config file you may also specify the default output directory +name with `output' entry and the default verbosity level using +`verbose' with value 0, 1, or 2. These values are used always and may +be overridden with `-o' and `-v'. + + +File: tvs.info, Node: Limitations of `TVS', Next: Fonts, Prev: Configuration file, Up: Using `TVS' step by step + +Limitations of `TVS' +==================== + + Work of `TVS' is limited by the files which are noticed in log files. +If you use anything which is done by external program, you must take +special care on files you want to store. If you include graphics in +Post Script, it may be included only by `\special' command and may not +be noticed in log. + + You must always ask yourself the main important question: _Which +files--not used in TeX last run--I want to store?_ + + For example if you use a bibliography, your source is a `.bib' file. +But in the last TeX run only sorted part of it, `.bbl' file is included. +If the `.bbl' file is enough for you, it's good. But if you want to +store sources for bibliography completely, you need also `.bib' file and +`.bst' file, which contains bibliography style. And there is no way for +`TVS' to know it as BibTeX is an external utility. That's why you must +copy them to `TVS-OUT' by hand. + + If you don't do so, you are still able to obtain exactly the same +document, but you run into difficulties trying to do any modifications. + + It is always better store more than you need. If you are a TeX +beginner and you are absolutely not sure, it may be reasonable for you +to preserve all the files from your working directory. Includes from +TeX directory (e.g., `c:\tex\texmf') are handled correctly. + + +File: tvs.info, Node: Fonts, Next: What to do with collected output, Prev: Limitations of `TVS', Up: Using `TVS' step by step + +Fonts +===== + + This is experimental! + + Usually there is no reason to store also font source files. The +exception is if your national modification of fonts changed its +encoding or you use unusual fonts. + + If you want to, you may run `dvips' with `-d' switch to produce a +log file with list of opened files. Consult your `dvips' documentation +how to do it. This switch is followed by number indicating what should +be logged. + + If you use `tvs -d dvips.log', a subdirectory FONTS is created in +the output directory and all files used by dvips are stored there. +Only font bitmaps may be obtained this way, so this feature is not very +useful. If you want to store Metafont sources, you must do it by hand. + + There is no guarantee of correct work of `-d' switch as `dvips' log +changed. + + +File: tvs.info, Node: What to do with collected output, Prev: Fonts, Up: Using `TVS' step by step + +What to do with collected output +================================ + + Currently `TVS' implements no way of packing nor extracting collected +complete source. Use any way of packing this directory you like +depending of the platform you run `TVS' and the platform you will want +to re-typeset your work in the future. + + There is no way to run TVS on the destination. You must only tell TeX + * to generate the format file if format sources were stored, + + * to generate fonts if fonts were stored, + + * to find files in working directory and its subdirectories at first. + To do this, consult the local documentation. + + +File: tvs.info, Node: Reference guide to `TVS' commands, Next: Config file and pattern files, Prev: Using `TVS' step by step, Up: Top + +Reference guide to `TVS' commands +********************************* + + This chapter describes overall structure of `TVS' commands and +describes the function of the commands in detail. + +* Menu: + +* Invoking `TVS':: +* Global switches:: +* Ignoring files and cutting filenames:: +* Output directory setting:: +* Storing format source files and fonts:: + + +File: tvs.info, Node: Invoking `TVS', Next: Global switches, Prev: Reference guide to `TVS' commands, Up: Reference guide to `TVS' commands + +Invoking `TVS' +============== + + General structure of calling `TVS' is + tvs [switches] filename + +where `filename' is a name of the main TeX log file. `TVS' must be run +in the directory where main TeX log file is located. + + Always make sure that your document is TeX-ed correctly (index is +sorted, bibliography is present, pictures are included etc.)! Usually +you have to run TeX several times to typeset the document (but we hope +this doesn't surprise you). + + +File: tvs.info, Node: Global switches, Next: Ignoring files and cutting filenames, Prev: Invoking `TVS', Up: Reference guide to `TVS' commands + +Global switches +=============== + + These switches may be used to change globally behavior of `TVS'. + +`-h, --help' + Prints short usage and version information and exits successfully. + This switch doesn't need a filename as a parameter. + +`-v, --verbose' + Sets verbosity level. May used several times. There are three + verbosity levels: + * Level 0--only examined files and errors are written. This is + the default. + + * Level 1--found files, copying info and errors are written. + + * Level 2--extra talkative, writes all it does. + For level 1, use `-v' or `--verbose' once, for level 2, use it + twice. You may also specify `-vv', which is the most comfortable + way to do it. + +`-c file, --config file' + Specifies the configuration file name. *Note Config file::, for + details about configuration file. + + If `--config' switch is not specified, file `tvsrc' in working + directory is used as a config file if it exists. There is no need + of having config file as all options may be set from command line. + +`--dummy' + Sets `TVS' to dummy mode. No files are changed, no files are really + copied to output directory, it is only shown what has to be done. + Useful if used with `--verbose'. (Inspired by similar switch in + cdrecord.) + + +File: tvs.info, Node: Ignoring files and cutting filenames, Next: Output directory setting, Prev: Global switches, Up: Reference guide to `TVS' commands + +Ignoring files and cutting filenames +==================================== + + Using following settings we may set files which shouldn't be copied +to output and set usual paths we don't want to store completely. + +`-i [file], --ignore [file]' + Sets file with patterns of filenames which we don't want to be + copied to output. *Note Ignore pattern file::, for details about + ignore pattern file. + + If `file' name is omitted, value from config file is used. If + `ignore' parameter is not set in config file, `TVS' terminates + with an error. + +`-p [file], --pathcuts [file]' + Sets file with path patterns to cut. *Note Pathcuts pattern file::, + for information about file path names handling. + + If `file' name is not specified, value from config file is used. If + `pathcuts' parameter in config file is not specified, `--pathcuts' + parameter is silently ignored. It makes no harm to function of + `TVS' and if it causes filename conflict, `TVS' stops with an + error. + + +File: tvs.info, Node: Output directory setting, Next: Storing format source files and fonts, Prev: Ignoring files and cutting filenames, Up: Reference guide to `TVS' commands + +Output directory setting +======================== + +`-o dirname, --output dirname' + Sets the name of output directory to `dirname'. This may be only + useful to override setting in config file. If config file doesn't + set output directory name, default name `TVS-OUT' is used and this + is created in working directory. + + +File: tvs.info, Node: Storing format source files and fonts, Prev: Output directory setting, Up: Reference guide to `TVS' commands + +Storing format source files and fonts +===================================== + +`-f [dirname], --format [dirname]' + Specifies directory where format log files are and packs format + file sources. If `dirname' is omitted, value from config file is + taken. If `format' parameter is not specified in config file, + `TVS' dies with an error. *Note Format file sources::, for details + about format source files extracting. Format file name is taken + from the main document log from the first line which contains + `format=name'. + +`--fmtname [name]' + Specifies format name, e.g. `plain', `latex', etc. Useful, if + format name cannot be found in log of document in form + `format=name'. Specifying `--fmtname [name]' doesn't imply + packing format sources. You must specify `--format', too. This + option cannot be specified in `TVS''s config file. + +`-d file, --dvips file' + Sets name of `dvips' log file. This cannot be specified in config + file. This is only experimental. *Note Fonts::, for information on + dvips log file examining and font storing. You would better not to + use this feature unless you know what you are doing. + + +File: tvs.info, Node: Config file and pattern files, Next: Credits, Prev: Reference guide to `TVS' commands, Up: Top + +Config file and pattern files +***************************** + + In this chapter we discuss config file setting and structure and +usage of files with patterns. These are used to shorten (cut) filenames +to use reasonable short paths in output directory and to set files +which we do not want to store at all. + +* Menu: + +* Config file:: +* Pattern file structure:: + + +File: tvs.info, Node: Config file, Next: Pattern file structure, Prev: Config file and pattern files, Up: Config file and pattern files + +Config file +=========== + + We may set values for `verbose, format, ignore, pathcuts,' and +`output' variables in config file. + + If `TVS' is run with `--config' switch, it sets used config file +name. If this is not used, default config file named `tvsrc' in working +directory is tried. If it doesn't exist, no config file is used at all. +There is no default config file location (e.g. `/etc/tvsrc' or +something similar) because of the platform independence of `TVS'. + + The structure of config file is quite simple. Everything after `#' +and `%' characters is ignored. Lines with structure + <variable> <value> + +set values of variables. There must be just one white character between +the `<variable>' and the `<value>'. There may be any count of white +spaces before and after this structure on the line. Lines with other +structure or specifying variables not listed below are silently ignored. + + For example of config file, see file `tvsrc' enclosed with the +distribution. + + Variables have meanings as follows: + +`verbose' + Sets the default verbosity level. Reasonable values are + `0' + This is the default. + + `1, 2' + Set verbosity level to 1 or 2. *Note Global switches::, for + description of verbosity levels. + +`format' + Sets the name of the directory where format log files are stored. + This is used only of `--format' or `-f' switch is set and may be + overridden by this. You should specify `format' parameter in config + file if you want to store format sources. And you should store + format sources. Simply--use it. + +`ignore' + Sets the name of file with patterns used to ignore files. *Note + Ignore pattern file::, for information about ignoring files. This + is used only if `--ignore' or `-i' switch is set and may be + overridden by this. + +`pathcuts' + Sets the name of file with patterns used to shorten the stored + filenames. Used only if `--pathcuts' or `-p' switch is set and + may be overridden by these. + +`output' + Sets the default output directory name. May be overridden by + `--output' or `-o' switch. If not set, default value `TVS-OUT' is + used. + + +File: tvs.info, Node: Pattern file structure, Prev: Config file, Up: Config file and pattern files + +Pattern file structure +====================== + + The structure of files which contain patterns is quite simple. +Everything after `#' or `%' characters is ignored. A line of the file +may start and end with white characters. These white characters are +ignored. The remaining part of the line (if it is nonempty) is +considered to be a pattern. + + A pattern is treated as a Perl regular expression. It doesn't +matter if you don't know what it is, all you need to know is seen from +the examples. Nevertheless you may try `man perlre' or equivalent for +reading documentation on you system. + + Next, we'll discuss the usage of pattern files. + +* Menu: + +* Pathcuts pattern file:: +* Ignore pattern file:: + + +File: tvs.info, Node: Pathcuts pattern file, Next: Ignore pattern file, Prev: Pattern file structure, Up: Pattern file structure + +Pathcuts pattern file +--------------------- + + This file is used if `--pathcuts' or `-p' switch is specified. An +example is enclosed with the distribution and named `pathcuts.tvs'. + + The file specifies list of patterns which are compared to the +_beginnings_ of filenames. On _first match_ the matching part is cut +and the rest of pattern list is not used. So it has no sense to have a +pattern list + /usr/TeX + /usr/TeX/texmf + +as the second entry will be never used. But sequence + /usr/TeX/texmf + /usr/TeX + +may be reasonable. (It's an exercise why and when `:-)'.) + + An example: Let us have pattern list containing `/usr/TeX/texmf'. If +filename is + +it matches and is cut to + tex/latex/algorith/algorithm.sty + +File `inputs/my_macro.tex' doesn't match the pattern and is left +untouched. + + +File: tvs.info, Node: Ignore pattern file, Prev: Pathcuts pattern file, Up: Pattern file structure + +Ignore pattern file +------------------- + + This file is used when `--ignore' or `-i' switch is specified. An +example named `ignpats.tvs' is enclosed. + + This file specifies list of patterns which are compared to _ends_ of +filenames. If _any_ of them matches, file is ignored and is not copied +to output. Usually, suffices of files (e.g. `toc, bbl') are used here. +If you want make sure that there is a dot before `toc' or `bbl', use +`\.toc' and `\.bbl' entries in pattern file as entries are PERL regular +expressions. For detailed information see `perlre(1)'. + + Use this feature with care, it is usually better to have a superset +of needed complete source then have _incomplete_ source. There may be +files which loaded (and you don't know about them) with suffices you +don't expect. Use it only if you know what you are doing. You've been +warned. + + +File: tvs.info, Node: Credits, Next: Dealing with bugs in `TVS', Prev: Config file and pattern files, Up: Top + +Credits +******* + + I would like to thank to: + * Petr Sojka, who made me to write `TVS' and helped me very much with + all the troubles and decisions we have had to make, + + * Richard Boti'k, who lent me the "Perl Camel Book" for a fortnight, + + * many others, + + * Bubo, my home computer, as it surprisingly didn't get overheated + too much during the terribly hot spring of year 2000 in middle + Europe. + + +File: tvs.info, Node: Dealing with bugs in `TVS', Prev: Credits, Up: Top + +Dealing with bugs in `TVS' +************************** + + Please send bug-reports to <xantos (at) fi.muni.cz> with subject +`TVS bug'. Add information on platform, TeX installation and include +log files which were parsed. Also please note version of TVS, both +version number and CVS version code (it's the line containing `$Id: +tvs.pl,v...'). You can get this information by running `tvs --help'. + + If you tried to compare `.dvi' files obtained running TeX on various +platforms using `TVS' complete source, please keep in mind they may +differ if something depending on "the state of the computer" +(especially date) was included. + + + +Tag Table: +Node: Top189 +Node: Copying1301 +Node: Introduction2325 +Node: Why do you need `TVS'?2744 +Node: What `TVS' can do?3852 +Node: What do you need to run `TVS'?5338 +Node: Installation6899 +Node: Using `TVS' step by step9059 +Node: Useful commands9684 +Node: Basic running `TVS'10409 +Ref: Basic running `TVS'-Footnote-112170 +Node: Ignoring files12260 +Node: Format file sources13096 +Node: Configuration file15347 +Node: Limitations of `TVS'17034 +Node: Fonts18491 +Node: What to do with collected output19416 +Node: Reference guide to `TVS' commands20141 +Node: Invoking `TVS'20629 +Node: Global switches21243 +Node: Ignoring files and cutting filenames22710 +Node: Output directory setting23883 +Node: Storing format source files and fonts24399 +Node: Config file and pattern files25720 +Node: Config file26204 +Node: Pattern file structure28515 +Node: Pathcuts pattern file29321 +Node: Ignore pattern file30268 +Node: Credits31225 +Node: Dealing with bugs in `TVS'31763 + +End Tag Table diff --git a/support/TVS/TVS/docs/tvs.ps b/support/TVS/TVS/docs/tvs.ps new file mode 100644 index 0000000000..a1d33f3e85 --- /dev/null +++ b/support/TVS/TVS/docs/tvs.ps @@ -0,0 +1,2158 @@ +%!PS-Adobe-2.0 +%%Creator: dvips(k) 5.86d Copyright 1999 Radical Eye Software +%%Title: tvs.dvi +%%Pages: 16 +%%PageOrder: Ascend +%%BoundingBox: 0 0 596 842 +%%DocumentPaperSizes: a4 +%%EndComments +%DVIPSWebPage: (www.radicaleye.com) +%DVIPSCommandLine: dvips tvs.dvi -o tvs.ps +%DVIPSParameters: dpi=600, compressed +%DVIPSSource: TeX output 2000.08.17:1231 +%%BeginProcSet: texc.pro +%! +/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S +N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72 +mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0 +0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{ +landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize +mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[ +matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round +exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{ +statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0] +N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin +/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array +/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2 +array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N +df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A +definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get +}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub} +B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr +1 add N}if}B/id 0 N/rw 0 N/rc 0 N/gp 0 N/cp 0 N/G 0 N/CharBuilder{save 3 +1 roll S A/base get 2 index get S/BitMaps get S get/Cd X pop/ctr 0 N Cdx +0 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx +sub Cy .1 sub]/id Ci N/rw Cw 7 add 8 idiv string N/rc 0 N/gp 0 N/cp 0 N{ +rc 0 ne{rc 1 sub/rc X rw}{G}ifelse}imagemask restore}B/G{{id gp get/gp +gp 1 add N A 18 mod S 18 idiv pl S get exec}loop}B/adv{cp add/cp X}B +/chg{rw cp id gp 4 index getinterval putinterval A gp add/gp X adv}B/nd{ +/cp 0 N rw exit}B/lsh{rw cp 2 copy get A 0 eq{pop 1}{A 255 eq{pop 254}{ +A A add 255 and S 1 and or}ifelse}ifelse put 1 adv}B/rsh{rw cp 2 copy +get A 0 eq{pop 128}{A 255 eq{pop 127}{A 2 idiv S 128 and or}ifelse} +ifelse put 1 adv}B/clr{rw cp 2 index string putinterval adv}B/set{rw cp +fillstr 0 4 index getinterval putinterval adv}B/fillstr 18 string 0 1 17 +{2 copy 255 put pop}for N/pl[{adv 1 chg}{adv 1 chg nd}{1 add chg}{1 add +chg nd}{adv lsh}{adv lsh nd}{adv rsh}{adv rsh nd}{1 add adv}{/rc X nd}{ +1 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]A{bind pop} +forall N/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn +/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put +}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{ +bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A +mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{ +SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{ +userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X +1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4 +index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N +/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{ +/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT) +(LaserWriter 16/600)]{A length product length le{A length product exch 0 +exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse +end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask +grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot} +imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round +exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto +fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p +delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M} +B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{ +p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S +rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end + +%%EndProcSet +TeXDict begin 39158280 55380996 1000 600 600 (tvs.dvi) +@start +%DVIPSBitmapFont: Fa cmbxti10 14.4 1 +/Fa 1 47 df<13FCEA03FF000F13804813C05AA25AA2B5FCA31480A214006C5A6C5A6C5A +EA0FE0121271912B>46 D E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fb cmbx12 13.14 20 +/Fb 20 118 df<923807FFE092B512FC020714FF021F81027F9038007FC0902601FFF0EB +0FE04901C0497E4990C7487ED90FFC147F011F824A14FF495AA2137F5CA2715A715A715A +EF078094C8FCA7EF07FCB9FCA526007FF0C7123F171FB3B3A2003FB5D8E00FB512F8A53D +4D7ECC44>12 D<EA07E0EA1FF8EA3FFCEA7FFEA2B5FCA6EA7FFEA2EA3FFCEA1FF8EA07E0 +1010778F22>46 D<15F014011407141F147FEB03FF137FB6FCA313FC1380C7FCB3B3B200 +7FB712E0A52B4777C63D>49 D<ECFFF80107EBFF80013F14F090B612FC4881480101EBFF +802707F8003F13C0D80FE0010F13E0D81F806D13F0003F80D87FF06D13F86D15FC6D7F00 +FF16FE6D147FA217FF82A36C5A6C5A6C5A6C5AC95A17FEA3EEFFFCA24B13F817F05D17E0 +4B13C017804B13004B5A4B5A5EED7FE04B5A4A5B4A90C7FCEC07FC4A5A4A5A4B131FEC3F +804AC7FC14FE4948143E495AEB07E0495A4948147E49C8FC017E15FE90B7FC4816FC5A5A +5A5A5A5AB8FC17F8A430477AC63D>I<D8038015E001E0140301FC143F9039FFE003FF91 +B612C017801700A25E5E16F05E5E93C7FC15FC15F001E790C8FC01E0C9FCAAEC1FFC01E1 +B512C001E714F001EF14FC9039FFE01FFFDA0007138001FC6D13C001F06D13E04915F049 +7F17F8C913FC167F17FEA417FFA3EA0FC0EA3FF0487EA2487EA317FEA34914FF6C4815FC +5B018015F86CC74813F07F6C6C4913E0D80FF04913C0D807FC011F13806CB46CB512006C +90B512FC6C5D013F14C0010F91C7FC010113F030487AC63D>53 D<B712FEA5D8000FEBE0 +00B3B3B3ABB712FEA5274B7DCA2E>73 D<B912C018FCF0FF8019F085D8001F9026800007 +13FE05007F063F1380060F13C07213E01AF0841AF8A27213FCA31AFEA81AFCA34E13F8A2 +1AF0601AE04E13C0063F138095B51200050713FC92B75A19E096C7FC18F803C0CAFCB3AB +B712FCA5474B7BCA54>80 D<ECFFFC010FEBFFC0017F14F090B612FC489038803FFE3B03 +FC0007FF80486C6D7F6D7F486D6C7F83167F83A2707E6C90C7FC6C5A6C5AC9FCA5ED1FFF +021FB5FC49B6FC130F013FEBC03F9038FFFE00000313F04813C04890C7FC485A485AA248 +5AA2485AA4167FA26D14FF007F15EF6D01017F6C6C903907CFFF806C6CD90F8F13FE6C90 +38E07F076C9038FFFE0300014A7ED8003F9038F0007F0103018090C7FC37347CB23C>97 +D<91380FFF8091B512F8010314FF010F15804948C613C0D97FF8EB1FE0D9FFE0EB3FF048 +49137F4849EBFFF84890C7FCA2485A121FA24848EC7FF0EE3FE0EE1FC0007F92C7FC5BA2 +12FFAC127FA27FA2123FA26C6C153EA26C6C157E177C6C6D14FC6C6D14F86C6D13036C6D +EB07F0D97FFCEB1FE06DB4EBFFC0010F90B5120001035C010014F0020F13802F347CB237 +>99 D<EC0FFF91B512F0010314FC010F14FF90263FFE077F90267FF0007F49486D7E4801 +806D7E486F7E4890C7120F484881707E121F491403003F82A2127F5B701380A212FFA390 +B8FCA401F8CAFCA5127FA27FA2123FA26C6CED0F80A26C6C151F6C17006E5C6C6D147E6C +6D5C6C6D495AD93FFCEB07F0903A1FFF803FE0010790B55A010192C7FC6D6C13FC020713 +C031347DB238>101 D<DA7FFCEB0FE00103B538807FF8010F9138E1FFFC013F02FB13FE +903A7FF01FFFF39026FFC007138348D90001130348168348486DEBC1FCEFC0F8000FEEE0 +0049147F001F82A9000F5E6D14FF00075EA26C6C495B6C93C7FC6C9038C007FE9138F01F +FC4890B55A01EF14E0D803C314809026C07FFCC8FC000790CAFCA47FA27F13FC90B612FC +EEFFC06C16F817FE6C8218806C17C06D16E00003B812F0120FD81FFCC7000F13F8D83FF0 +140049153F4848ED1FFC00FF160F491507A56D150F007F17F86D151F6C6CED3FF06C6CED +7FE0D80FFE913801FFC06C6C6C010713806C01F8017F1300C690B612FC013F15F0010715 +80D9003F01F0C7FC37497DB13D>103 D<EB7FC0B5FCA512037EB3923801FFC0030F13F8 +033F7F4B13FFDBFE077F9138C1F0039126C3E0017FDAC78080ECCF0014DE02DC6D7F14FC +5CA25CA35CB3AAB6D8C07FEBFFE0A53B4C7BCB44>I<EB7FC0B5FCA512037EB3B3B3AAB6 +1280A5194C7BCB22>108 D<903A7FC001FFC0B5010F13F8033F7F4B13FFDBFE077F9138 +C1F00300039026C3E0017F6CD9C78080ECCF0014DE02DC6D7F14FC5CA25CA35CB3AAB6D8 +C07FEBFFE0A53B327BB144>110 D<913807FF80027F13F80103B6FC010F15C090261FFE +017F903A7FF0003FF849486D7E480180EB07FE4890C76C7E4817804980000F17C048486E +13E0A2003F17F0A249157F007F17F8A400FF17FCAB007F17F8A46C6CEDFFF0A2001F17E0 +A26C6C4A13C0A26C6C4A13806C6D4913006C5E6C01E0EB1FFC6D6C495A903A3FFE01FFF0 +010FB612C0010392C7FCD9007F13F80207138036347DB23D>I<90397FC007FFB5017F13 +E002C1B512FC02C714FF9126CFF80F7F9126DFC0037F000301FFC77F6C496E7E02F8814A +6E7E717E4A81831980A28319C0A37113E0AC19C05FA319805F19005F606E143F6E5D4D5A +6E4A5A02FF495BDBC0075B9126EFF01F5B02E7B548C7FC02E114F8DAE07F13E0DB0FFEC8 +FC92CAFCAFB612C0A53B477CB144>I<9039FF803FE0B5EBFFF8028113FE02837FDA87E1 +1380EC8F830003D99F0713C06C139E14BCA214F8A24A6C13806F13006F5A4A90C7FCA45C +B3A8B612E0A52A327CB132>114 D<903907FF8070017FEBF1F048B6FC1207380FFC0139 +1FE0003F4848130F491307127F90C71203A2481401A27FA27F01F090C7FC13FCEBFFC06C +13FEECFFE06C14FC6C806CECFF806C15C06C15E06C15F06C7E011F14F8010114FCEB000F +EC007FED1FFE0078140F00F8140715037E1501A27E16FC7E15036D14F86D13076D14F001 +F8EB1FE001FFEBFFC04890B51280486C1400D8F81F13FCD8E00313C027347CB230>I<14 +F8A51301A41303A21307A2130FA2131F133F137F13FF1203000F90B512F0B7FCA426007F +F8C7FCB3A7167CAA013F14F880A290391FFE01F0010F1303903907FF87E06DEBFFC06D14 +806D6C1300EC0FFC26467EC430>I<D97FE0EC3FF0B5EC7FFFA5000315016C81B3AC5EA2 +5EA25E7E6EEB0F7F017F021E7F6E017CEBFFE090393FFE01F86DB512F0010714E0010114 +C09027003FFE00EBC0003B337BB144>I E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fc cmtt9 9 3 +/Fc 3 60 df<127012F812FE7E6C7E6C7EEA0FE06C7E12037F6C7E1200137EA27FA2EB1F +80A3EB0FC0A4EB07E0ACEB0FC0A4EB1F80A3EB3F00A2137EA25B1201485A5B1207485AEA +3FC0485A48C7FC5A12F81270133A7AB327>41 D<007FB512F8B612FCA46C14F81E067C99 +27>45 D<120FEA3FC0A2EA7FE0A4EA3FC0A2EA0F00C7FCAC120FEA3F8013C0127F13E0A3 +123FA2120F120713C0120FA2EA3F80EA7F005A5A12F812700B2A739F27>59 +D E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fd cmr9 9 23 +/Fd 23 122 df<123C127EB4FCA21380A2127F123D1201A412031300A25A1206120E120C +121C5A5A126009177A8715>44 D<123C127E12FFA4127E123C08087A8715>46 +D<B77E16F016FE3A01FE0001FF00009138003FC0EE0FE0707E707E707E707E177E177FEF +3F80A2EF1FC0A3EF0FE0A418F0AA18E0A3171F18C0A21880173F18005F17FE5F4C5AEE07 +F04C5AEE3FC000014AB45AB748C7FC16F8168034337EB23B>68 D<B512FEA3D803FEC9FC +6C5AB3A9EE0180A416031700A45EA25E5E5E5E16FE00031407B7FCA329337DB230>76 +D<EB7F803803FFF0380F80FC381C003E003F133F6D6C7E6E7EA26E7EEA1F00C7FCA4EB01 +FF131FEBFF873803FC07EA0FF0EA1FC0EA3F80127F13004815C05AA3140FA26C131F6C13 +3B3A3F8071F180391FC1E1FF2607FFC013003900FE003C22237DA126>97 +D<EB07F8EB3FFF9038FC07C03901F000E03903E003F03807C007120FEA1F80123F903800 +03E04890C7FCA2127E12FEAA127FA26C14187F001F14386D1330000F14706C6C13E03903 +F001C03900FC0F8090383FFE00EB07F01D237EA122>99 D<153FEC0FFFA3EC007F81AEEB +07F0EB3FFCEBFC0F3901F003BF3907E001FF48487E48487F8148C7FCA25A127E12FEAA12 +7E127FA27E6C6C5BA26C6C5B6C6C4813803A03F007BFFC3900F81E3FEB3FFCD90FE01300 +26357DB32B>I<EB0FE0EB7FFCEBF83F3903F00F80D807E013C0390FC007E0381F800315 +F0EA3F0014014814F8127EA212FEA2B6FCA248C8FCA5127E127FA26C1418A26C6C133800 +0F14306D13706C6C13E03901F003C03900FC0F00EB3FFEEB07F01D237EA122>I<151F90 +391FC07F809039FFF8E3C03901F07FC73907E03F033A0FC01F83809039800F8000001F80 +EB00074880A66C5CEB800F000F5CEBC01F6C6C48C7FCEBF07C380EFFF8380C1FC0001CC9 +FCA3121EA2121F380FFFFEECFFC06C14F06C14FC4880381F0001003EEB007F4880ED1F80 +48140FA56C141F007C15006C143E6C5C390FC001F83903F007E0C6B51280D91FFCC7FC22 +337EA126>103 D<EA03F012FFA312071203AEEC1FC0EC7FF09038F1E0FC9038F3807C90 +38F7007E13FE497FA25BA25BB3486CEB7F80B538C7FFFCA326347EB32B>I<EA0780EA0F +C0EA1FE0A4EA0FC0EA0780C7FCAAEA07E012FFA3120F1207B3A6EA0FF0B5FCA310337EB2 +15>I<EA07E012FFA3120F1207B3B3A7EA0FF0B5FCA310347EB315>108 +D<2703F01FE013FF00FF90267FF80313C0903BF1E07C0F03E0903BF3803E1C01F02807F7 +003F387FD803FE1470496D486C7EA2495CA2495CB3486C496C487EB53BC7FFFE3FFFF0A3 +3C217EA041>I<3903F01FC000FFEB7FF09038F1E0FC9038F3807C3907F7007EEA03FE49 +7FA25BA25BB3486CEB7F80B538C7FFFCA326217EA02B>I<EB07F0EB3FFE9038FC1F8039 +01F007C03903C001E000078048486C7E48C7127CA248147E003E143E007E143FA300FE15 +80A8007E1500A36C147EA26C147C6D13FC6C6C485A00075C3903F007E03900FC1F80D93F +FEC7FCEB07F021237EA126>I<3903F03F8000FFEBFFE09038F3C0F89038F7007ED807FE +7F6C48EB1F804914C049130F16E0ED07F0A3ED03F8A9150716F0A216E0150F16C06D131F +6DEB3F80160001FF13FC9038F381F89038F1FFE0D9F07FC7FC91C8FCAA487EB512C0A325 +307EA02B>I<3803E07C38FFE1FF9038E38F809038E71FC0EA07EEEA03ECA29038FC0F80 +49C7FCA35BB2487EB512E0A31A217FA01E>114 D<EBFF06000713CE381F00FE003C133E +48131E140E5A1406A27EA200FE90C7FC6C7EEA7FFC383FFFC014F0000F7F6C7FC67FEB0F +FF1300EC3F8000C0131F140F6C1307A37E15006C5B6C130E6C5B38F7807838E1FFE038C0 +7F8019237EA11E>I<1330A51370A313F0A21201A212031207381FFFFEB5FCA23803F000 +AF1403A814073801F806A23800FC0EEB7E1CEB1FF8EB07E0182F7FAD1E>I<D803F0133F +00FFEB0FFFA30007EB007F000380B35DA35D12016D4813800000903803BFFC90387E073F +EB1FFED907F8130026227EA02B>I<B53A1FFF81FFF0A33C07F801FC003F8001F049EB1E +0000030100141C816C6C017C1318A26D017E1338000002FE1330A290267E01FF5B159F16 +8090263F030F5BA216C0903A1F8607C180A202C613E390260FCC0390C7FCA2D907FC13F6 +ECF80116FE6D486C5AA36D481378A36D48133034217F9F37>119 +D<B53801FFF8A32603FE0013806C48EB7C0000001478017E1370017F5B90383F81C09038 +1F8380D90FC3C7FCEB07E614FE6D5A6D5A6D7E80805B9038039F809038071FC09038060F +E0EB0C0790381C03F0496C7E01707FEBF000000180000FECFF8026FFFC0313FCA326207F +9F29>I<3A7FFF807FF8A33A07F8001FC00003EC0F800001EC070015066C6C5BA26D131C +017E1318A26D5BA2EC8070011F1360ECC0E0010F5BA2903807E180A214F3010390C7FC14 +FBEB01FEA26D5AA31478A21430A25CA214E05CA2495A1278D8FC03C8FCA21306130EEA70 +1CEA7838EA1FF0EA0FC025307F9F29>I E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fe cmr7 7 1 +/Fe 1 50 df<13381378EA01F8121F12FE12E01200B3AB487EB512F8A215267BA521>49 +D E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Ff cmtt12 17.28 3 +/Ff 3 87 df<DA0FFF147C027F01F013FC0103B538FE01FE010FECFF814915E3017F15F3 +90B8FC5A5A48EBFC01489038E0003F0280130F4890C7120301FC80484880177F4848153F +5B171F12FF5B170FA31707A27FA2715A6C7E94C8FC7F6C7E7F6C7E14C06C13F06C13FEEC +FFE06C14FE6CECFFE06C15FF013F15E06D15F8010715FE010181D9003F15C0020381DA00 +3F80030380ED003F04037F04007FEF3FFF83711380837113C083A28319E0EA3F80007F17 +7F487EA57F18FFA219C06D5DA26D17806D5D6D5D6D4B130002C04A5A02F0147F02FC4A5A +9126FFE0075B92B65A6060019F5E018793C7FC010115FC6D6C14F0007E010F14C0007C90 +26007FFCC8FC3B5C79D94A>83 D<003FB912FE4884BB1280A7903BC0000FFC0001AB6C48 +7013006CC7167EC893C7FCB3B3B3A3027FB67E91B77EA24982A36D5EA26E5D41587CD74A +>I<263FFFFE020FB51280486D4A14C0B66C4914E0A56C91C76C14C06C496E1480000101 +C09139007FF0006C60A36E15FF017F5FA36E5C013F5FA36E5C011F94C7FCA36E5C010F5E +A36E140F01075EA36E141F6D5EA36F133F6D5EA46D6D495AA46E6C495AA46E6C485BA46E +6C4890C8FCA4020F5CEDFC07A302075CA2EDFE0FA202035CA2EDFF1FA26E5CA46EEBBFE0 +A416FF6F5BA46F5BA36F90C9FC6F5A6F5A43597DD74A>86 D E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fg lcircle10 10 4 +/Fg 4 12 df<EA7FC0EAFFFEEBFFE06C13FCC66CB4FC010313C09038003FF0EC07FCEC01 +FE9138007F80ED1FC0ED07F06F7EED00FC167E82707E707E707E707E1601707E83177C83 +A2831880170FEF07C0A2170318E0A2170118F0A2170018F8A21878A4187CA2183CA71818 +3636B28364>8 D<1818183CA7187CA21878A418F8A218F01701A218E01703A218C01707 +A2EF0F80171F1800173EA25F17FC5F4C5A16034C5A4C5A4C5A4CC7FC167E5EED03F84B5A +ED1FC0ED7F80DA01FEC8FCEC07FCEC3FF0903803FFC0017F90C9FC387FFFFCB512E049CA +FCEA7FC03636B2B564>I<126012F0A77EA21278A3127CA2123C123EA2121E121FA27E7F +A26C7E7F12036C7EA26C7E7F137E133E7F806D7E6D7E6D7E6D7E6D7E147F6E7EEC0FC0EC +07F0EC03FCEC00FFED7FC0ED1FF8ED07FF030113FC9239007FFFF8040F13FC1601933800 +07F8363680B564>I<EF07F8933801FFFC160F047F13F8923901FFFC00030790C7FCED1F +F8ED7FC04BC8FCEC03FCEC07F0EC0FC0EC3F804AC9FC14FC495A495A495A495A495A91CA +FC133E137E5B5B485AA2485A12075B485AA290CBFC5AA2121E123EA2123C127CA21278A3 +12F8A25AA712603636808364>I E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fh cmti10 10.95 30 +/Fh 30 125 df<933807FF80043F13E09338FE00F8DB01F0133EDB07E0130E4B48131F4C +137F031F14FF4BC7FCA218FE157E1878180015FE5DA31401A25DA414030103B712F0A218 +E0903A0003F000070207140F4B14C0A3171F020F15805DA2173F1800141F5D5F177EA214 +3F92C712FE5FA34A1301027EECF81CA3160302FEECF03C4A1538A21878187013014A0101 +13F018E0933800F1C0EF7F804948EC1F0094C7FCA35C1307A2001E5B127F130F00FF5BA2 +49CAFC12FEEAF81EEA703CEA7878EA1FF0EA07C0385383BF33>12 +D<120FEA3FC0127FA212FFA31380EA7F00123C0A0A77891C>46 D<131EEB3F80137FEBFF +C05AA214806C13005B133C90C7FCB3120FEA3FC0127FA212FFA35B6CC7FC123C122777A6 +1C>58 D<147F903801FFC090380780F090381E00784913380170133C49131C4848131E48 +5A120790C7FC120E121E121C003C143E0038143C0078147C1270007C14F8B41301EC03F0 +1407EC0FE048EB1FC0EC3F800078EBFF00C6485AEB03F8495AEB1FE0495A49C7FC13FE48 +5A485A13E0485A1470EB80F0000F5B1300495AEA0703495A019FC7FCEA03FCEA00F090C8 +FCA8EA0780EA1FE0123FA2127FA35B6C5A001EC8FC1F416FC02E>63 +D<49B812F8A390260003FEC7121F18074B14031801F000F014075DA3140F5D19E0A2141F +4B1338A2EF7801023F027013C04B91C7FCA217F0027F5CED80011603160F91B65AA3ED00 +1F49EC07805CA3010392C8FC5CF003804C13070107020E14005C93C75A180E010F161E4A +151C183CA2011F5E5C60A2013F15014A4A5A1707017F150F4D5A4A147F01FF913807FF80 +B9FCA295C7FC3D3E7BBD3E>69 D<49B6FC5BA2D9000313005D5DA314075DA3140F5DA314 +1F5DA3143F5DA3147F5DA314FF92C7FCA35B5CA313035CA313075CA3130F5CA3131F5CA3 +133F5CA2137FA25C497EB67EA3283E7BBD23>73 D<48B9FCA25A903AFE001FF00101F891 +38E0007FD807E0163E49013F141E5B48C75BA2001E147FA2001C4B131C123C003814FFA2 +007892C7FC12704A153C00F01738485CC716001403A25DA21407A25DA2140FA25DA2141F +A25DA2143FA25DA2147FA25DA214FFA292C9FCA25BA25CA21303A25CEB0FFE003FB67E5A +A2383D71BC41>84 D<277FFFFE01B500FC90B512E0B5FCA20003902680000790C7380FFC +006C90C701FCEC07F049725A04035EA26350C7FCA20407150EA2040F5D1A3C041F153862 +163B6216734F5A6D14E303014B5A6C15C303034BC8FC1683DB0703140E191E030E151C61 +031C7F61ED380161157003F04A5A15E002014B5A15C0DA03804AC9FC60DA0700140E6014 +0E605C029C5D14B8D97FF85D5C715A5C4A5DA24A92CAFC5F91C7FC705A137E5F137C5F13 +7801705D53406EBD5B>87 D<91B690383FFFFC605E020101E0010F13006E49EB07F84C6D +5A19C06F6C495A96C7FC033F140E705B183C031F5C705B4D5A030F5C70485A4DC8FC0307 +130EEEFC1E5F03035BEEFE705F6F6C5A5FA26F90C9FC83A2707EA216FF4B7F5DED079FEE +1FF0150EED1C0F03387F1578EDF007DA01E07F15C09138038003DA07007F140E021E1301 +4A805C02707F4A81495A4948147F01078249C8FC013F6F7E496C147F2603FFC049487EB5 +00F8011FEBFFE0A261463E7CBD44>I<147E49B47E903907C1C38090391F80EFC090383F +00FF017E137F4914804848133F485AA248481400120F5B001F5C157E485AA215FE007F5C +90C7FCA21401485C5AA21403EDF0385AA21407EDE078020F1370127C021F13F0007E013F +13E0003E137FECF3E1261F01E313C03A0F8781E3803A03FF00FF00D800FC133E252977A7 +2E>97 D<EB1FC0EA0FFF5CA2EA003FA291C7FCA25BA2137EA213FEA25BA21201A25BA212 +03A25B147E3907F1FF809038F783E09038EF01F013FE390FF800F8A24913FC49137C485A +157E5B15FE123FA290C7FCA248130115FC127EA2140300FE14F85AA2EC07F0A215E04813 +0F15C0141F15800078EB3F00127C147E003C5B383E01F8381E03E06C485A6CB4C7FCEA01 +F81F4076BE2A>I<EC1FE0ECFFF8903803F03E903807C00F90381F8007D93F001380017E +131F49137F485A485A000715005B000F147E484890C7FCA2485AA3127F90C9FCA35A5AA6 +481403007E5C5D151E003E5C5D6C5CEC03E0390F800F802603E07EC7FC3801FFF838003F +C0212977A72A>I<EE3F80ED1FFF1700A2ED007FA2167EA216FEA25EA21501A25EA21503 +A25EA21507A25E147E903801FF8F903807C1CF90391F80EFC090383F00FF017E137F5B48 +486D5A485AA2485A000F92C7FC5B001F5CA24848137EA215FE127F90C75AA214015A485C +A2140316384814F0A21407167891380FE070127C021F13F0007E013F5B003E137FECF3E1 +261F01E35B3A0F8781E3802703FF00FFC7FCD800FC133E294077BE2E>I<EC3F80903801 +FFE0903807E0F890381F803CEB3E0001FC131E485A485A12074848133E49133C121F4848 +137C15F8EC03F0397F000FE0ECFF80B5EAFC0014C048C8FCA45AA61506150E151E007C14 +3C15786C14F0EC01E06CEB07C0390F801F003807C0FC3801FFF038007F801F2976A72A> +I<EC03F0EC0FFC91383E0E1C9138FC077E903901F003FE1303903807E001D90FC013FCEB +1F80A2EB3F004914F8137E01FE1303A2484814F0A2150712034914E0A2150F12074914C0 +A2151FA216805B153F1203ED7F006D5BA200015B0000495A9038F80F7E90387C1EFEEB1F +F8903807E0FC90C7FC1401A25DA21403A25D001C1307007F5C48130F5D4A5A4AC7FC4813 +7E00F85B387C03F0381FFFC0D803FEC8FC273B7CA72A>103 D<EB01FC13FF5CA21303A2 +5CA21307A25CA2130FA25CA2131FA25CA2133FA291C8FCEC03F890387F0FFE91383E0F80 +D97E7813C0ECE007D9FFC013E014801400A2485A5BA25B0003140F16C05BA20007141F16 +805BA2000F143F16005B5D001F147EEDFE074913FCA2003F0101130FEDF80E1300161E48 +ECF01CA2007E1538A200FE1570020013E048EC7FC00038EC1F0028407ABE2E>I<1478EB +01FCA21303A314F8EB00E01400AD137C48B4FC38038F80EA0707000E13C0121E121CEA3C +0F1238A2EA781F00701380A2EAF03F140012005B137E13FE5BA212015BA212035B143812 +0713E0000F1378EBC070A214F0EB80E0A2EB81C01383148038078700EA03FEEA00F8163E +79BC1C>I<EB07F0EA03FF14E0A2EA000FA214C0A2131FA21480A2133FA21400A25BA213 +7EA213FEA25BA21201A25BA21203A25BA21207A25BA2120FA25BA2121FA25BA2123FA290 +C7FCA25A1307127EA2EAFE0F130E12FCA2131E131CA2EA7C381378EA3C70EA1FE0EA0780 +144079BE17>108 D<D801F0D93F80137F3D07FC01FFE003FFC03D0F3E07C1F80F83F03D +0E1F0F00FC1E01F8001E011C90387C3800001C49D97E707F003C01F05C0038157F4A5C26 +783FC05C12704A91C7FC91C7127E00F003FE1301494A5CEA007EA20301140301FE5F495C +A203031407000160495C180F03075D0003051F13E0494A1480A2030FEC3F810007F001C0 +495CA2031F91383E0380120F494AEC0700A2033F150E001FEF1E1C4991C7EA0FF80007C7 +000EEC03E0432979A74A>I<D801F0EB3F803A07FC01FFE03A0F3E07C1F83A0E1F0F00FC +001E011C137C001C49137E003C13F012385C38783FC012705C91C7FC00F015FE495CEA00 +7EA2150101FE5C5BA2150300015D5B15075E0003020F13704914C0A2031F13F00007ED80 +E05B1681EE01C0120F49EC0380A2EE0700001FEC0F0E49EB07FC0007C7EA01F02C2979A7 +33>I<EC1FC0ECFFF8903803F07C90380FC01FEB1F8090393F000F80017E14C049130748 +4814E0485A12075B000F15F0485AA2485AA2ED0FE0127F90C7FCA2151F4815C05AA2ED3F +80A2ED7F00A248147E007C5C007E13015D4A5A003E495A6C495A4A5A260F803EC7FC3807 +C0FC3801FFF038003F80242977A72E>I<903903E001F890390FF807FE903A1E7C1E0F80 +903A1C3E3C07C0013C137801389038E003E0EB783F017001C013F0ED80019038F07F0001 +E015F8147E1603000113FEA2C75AA20101140717F05CA20103140F17E05CA20107EC1FC0 +A24A1480163F010F15005E167E5E131F4B5A6E485A4B5A90393FB80F80DA9C1FC7FCEC0F +FCEC03E049C9FCA2137EA213FEA25BA21201A25BA21203A2387FFFE0B5FCA22D3A80A72E +>I<D801F013FC3A07FC07FF803A0F3E0F03C0260E1F1C13E0001EEB380F001C1370003C +EBE01F123814C0D8783F14C00070903880070092C7FC91C8FC12F05BEA007EA313FE5BA3 +12015BA312035BA312075BA3120F5BA3121F5B0007C9FC232979A726>114 +D<EC7F80903801FFE0903807C0F890381F003C013E131C013C131E017C133E49137E15FE +A2000114FCA215706D13007FEBFFC014FC6C13FF15806D13C06D13E0010F13F01300140F +14071403120C123F387F80011403D8FF0013E0A300FCEB07C000F0EB0F8012700078EB1F +006C133C381F01F83807FFE0C690C7FC1F297AA725>I<EB01C0EB03F01307A25CA2130F +A25CA2131FA25CA2133FA291C7FCA2007FB51280B6FC1500D8007EC7FC13FEA25BA21201 +A25BA21203A25BA21207A25BA2120FA25BA2121F141C1380A2003F133C1438EB00781470 +14F05C495AEA1F03495A6C48C7FCEA07FCEA01F0193A78B81E>I<137C48B4141C26038F +80137EEA0707000E7F001E15FE121CD83C0F5C12381501EA781F007001805BA2D8F03F13 +03140000005D5B017E1307A201FE5C5B150F1201495CA2151F0003EDC1C0491481A2153F +1683EE0380A2ED7F07000102FF13005C01F8EBDF0F00009038079F0E90397C0F0F1C9039 +1FFC07F8903907F001F02A2979A731>I<017CEB01C048B4EB07F038038F80EA0707000E +01C013F8121E001C1403EA3C0F0038EC01F0A2D8781F130000705BA2EAF03F91C712E012 +005B017E130116C013FE5B1503000115805BA2ED07001203495B150EA25DA25D15780001 +14706D5B0000495A6D485AD97E0FC7FCEB1FFEEB03F0252979A72A>I<017C167048B491 +387001FC3A038F8001F8EA0707000E01C015FE001E1403001CEDF000EA3C0F0038177C15 +07D8781F4A133C00701380A2D8F03F130F020049133812005B017E011F14784C137013FE +5B033F14F0000192C712E05BA2170100034A14C049137E17031880A2EF070015FE170E00 +010101141E01F86D131C0000D9039F5BD9FC076D5A903A3E0F07C1E0903A1FFC03FFC090 +2703F0007FC7FC372979A73C>I<137C48B4143826038F8013FCEA0707000E7F001E1401 +001C15F8EA3C0F12381503D8781F14F000701380A2D8F03F1307020013E012005B017E13 +0F16C013FE5B151F1201491480A2153F000315005BA25D157EA315FE5D00011301EBF803 +0000130790387C1FF8EB3FF9EB07E1EB00035DA21407000E5CEA3F80007F495AA24A5AD8 +FF0090C7FC143E007C137E00705B387801F0383803E0381E0FC06CB4C8FCEA03F8263B79 +A72C>121 D<BD12E0A2530276985D>124 D E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fi cmtt10 10.95 62 +/Fi 62 127 df<903907C007C0A2496C487EA8011F131FA202C05BA3007FB7FCA2B81280 +A36C16006C5D3A007F807F80A2020090C7FCA9495BA2003F90B512FE4881B81280A36C16 +00A22701FC01FCC7FCA300031303A201F85BA76C486C5AA229387DB730>35 +D<1438147C14FCA4EB03FF011F13E090B512FC4880000780481580261FFEFD13C09039F0 +FC3FE0D83FC0131FD87F80EB0FF001001307007E15F800FE14035A1507A36CEC03F0A200 +7F91C7FC138013C0EA3FF0EA1FFE13FF6C13FF6C14E0000114F86C6C7F011F7F01037F01 +00148002FD13C09138FC7FE0151FED0FF015070018EC03F8127E1501B4FCA35AA26CEC03 +F07E01801307ED0FE0D83FC0131F01F0EB7FC0D81FFEB512806CB612006C5C6C5CC614F0 +013F13C0D907FEC7FCEB00FCA5147C143825477BBE30>I<D803C0EB01E0D80FF0130348 +6C497E487E150F487ED87E7E495AEAFE7F5E486C133FA25E157FA24BC7FC6C5A5D387E7E +01EA7FFED83FFC5B1403EA1FF86C48485AEA03C0C75B140FA25D141FA24A5AA25D147FA2 +92C8FC5CA2495AA25C1303A25C1307A290390FF001E0ED07F84A487E011F497EA24A487E +133F163F90267F807F1380ED7E1F14005BA25B1201A24848EB7F3F033F13004914FF1207 +6F5A5B6F5A6C486D5A0001EC01E029477DBE30>I<EA07C0EA0FF0EA1FF8A213FCA213FE +120F1207EA007EA513FE13FCA2120113F81203EA07F0120FEA1FE0127FEAFFC013801300 +127C12380F1D70B730>39 D<141E147F14FF5BEB03FEEB07FCEB0FF0EB1FE0EB3FC0EB7F +80EBFF00485A5B12035B485A120F5BA2485AA2123F5BA2127F90C7FCA412FEAD127FA47F +123FA27F121FA26C7EA27F12076C7E7F12017F6C7EEB7F80EB3FC0EB1FE0EB0FF0EB07FC +EB03FEEB01FF7F147F141E184771BE30>I<127812FE7E7F6C7E6C7EEA0FF06C7E6C7E6C +7E6C7EEB7F80133F14C0131FEB0FE014F01307A2EB03F8A214FC1301A214FE1300A4147F +AD14FEA4130114FCA2130314F8A2EB07F0A2130F14E0EB1FC0133F1480137FEBFF00485A +485A485A485AEA3FE0485A485A90C7FC5A1278184778BE30>I<EA03E0EA0FF0EA1FF813 +FCEA3FFEA213FFA27EA27E1203EA007FA2137E13FEEA01FC1203EA07F8EA3FF0127FEAFF +E0EA7F801300123C1019708B30>44 D<007FB612F0A2B712F8A36C15F0A225077B9E30> +I<120FEA3FC0EA7FE0A2EAFFF0A4EA7FE0A2EA3FC0EA0F000C0C6E8B30>I<16F01501ED +03F8A21507A2ED0FF0A2ED1FE0A2ED3FC0A2ED7F80A2EDFF00A24A5AA25D1403A24A5AA2 +4A5AA24A5AA24A5AA24A5AA24AC7FCA2495AA25C1303A2495AA2495AA2495AA2495AA249 +5AA249C8FCA2485AA25B1203A2485AA2485AA2485AA2485AA2485AA248C9FCA25AA2127C +A225477BBE30>I<14FE903807FFC0497F013F13F8497F90B57E48EB83FF4848C6138049 +137F4848EB3FC04848EB1FE049130F001F15F0491307A24848EB03F8A290C712014815FC +A400FEEC00FEAD6C14016C15FCA36D1303003F15F8A26D1307001F15F0A26D130F6C6CEB +1FE0A26C6CEB3FC06C6CEB7F806D13FF2601FF8313006CEBFFFE6D5B6D5B010F13E06D5B +D900FEC7FC273A7CB830>I<EB03C0497EA2130FA2131FA2133F137F13FF1203123FB5FC +A213EF138FEA7E0F1200B3B0003FB512F84814FCB612FEA26C14FC6C14F81F3977B830> +I<EB07FC90383FFFC090B512F00003804814FE4880261FF80F1380263FE00113C09038C0 +007F4848EB3FE090C7121FED0FF04814075A6C15F81503A3127E1218C8FCA2150716F015 +0F16E0151F16C0153FED7F8015FF4A13005DEC07FC4A5A4A5A4A5A4A5A4A5A4990C7FC49 +5A495AEB0FF0EB3FE0495A495A4890C8FC4848EB01F04848EB03F8485AEA1FE048B6FCB7 +FCA37E6C15F025397BB830>I<120FEA3FC0EA7FE0A2EAFFF0A4EA7FE0A2EA3FC0EA0F00 +C7FCAF120FEA3FC0EA7FE0A2EAFFF0A4EA7FE0A2EA3FC0EA0F000C276EA630>58 +D<16F01503ED07F8151F157FEDFFF014034A13C0021F138091383FFE00ECFFF8495B0107 +13C0495BD93FFEC7FC495A3801FFF0485B000F13804890C8FCEA7FFC5BEAFFE05B7FEA7F +F87FEA1FFF6C7F000313E06C7F38007FFC6D7E90380FFF806D7F010113F06D7FEC3FFE91 +381FFF80020713C06E13F01400ED7FF8151F1507ED03F01500252F7BB230>60 +D<007FB7FCA2B81280A36C16006C5DCBFCA7003FB612FE4881B81280A36C1600A229157D +A530>I<1278127EB4FC13C07FEA7FF813FEEA1FFF6C13C000037F6C13F86C6C7EEB1FFF +6D7F010313E06D7F9038007FFC6E7E91380FFF806E13C0020113F080ED3FF8151F153FED +FFF05C020713C04A138091383FFE004A5A903801FFF0495B010F13804990C7FCEB7FFC48 +485A4813E0000F5B4890C8FCEA7FFE13F8EAFFE05B90C9FC127E1278252F7BB230>I<EC +1FE0ECFFF8010313FE010F7F4914804914C090397FF03FE09038FF800F4890380007F0D8 +03FC13033A07F801FBF89038F007FF380FE01F4A13FCEA1FC0495A003FEBFF0F903800FE +07903901FC03FE007FEBF801EA7E03ECF000A2EAFE0700FC49137EAA00FE6D13FED87E03 +14FCA2ECF801D87F0114F8003FEBFC03903900FE07F0903880FF0F001F90387FFFE06D6C +13C0EA0FE06E13803A07F007FE009038F801F86C6CC7127C6CB414FE6CEB800390387FF0 +1F6DB512FC6D14F86D14E0010314C00100EBFE00EC1FF0273A7CB830>64 +D<147F4A7EA2497FA4497F14F7A401077F14E3A3010F7FA314C1A2011F7FA490383F80FE +A590387F007FA4498049133F90B6FCA34881A39038FC001F00038149130FA40007814913 +07A2D87FFFEB7FFFB56CB51280A46C496C130029397DB830>I<91387F803C903903FFF0 +3E49EBFC7E011F13FE49EBFFFE5B9038FFE07F48EB801F3903FE000F484813075B484813 +03A2484813015B123F491300A2127F90C8FC167C16005A5AAC7E7EA2167C6D14FE123FA2 +7F121F6D13016C6C14FCA26C6CEB03F86D13076C6CEB0FF03901FF801F6C9038E07FE06D +B512C06D14806D1400010713FC6D13F09038007FC0273A7CB830>67 +D<003FB712804816C0B8FCA27E7ED801FCC7121FA8EE0F8093C7FCA5153E157FA490B6FC +A69038FC007FA4153E92C8FCAE383FFFF8487FB5FCA27E6C5B2A387EB730>70 +D<3B3FFF800FFFE0486D4813F0B56C4813F8A26C496C13F06C496C13E0D803F8C7EAFE00 +B290B6FCA601F8C7FCB3A23B3FFF800FFFE0486D4813F0B56C4813F8A26C496C13F06C49 +6C13E02D387FB730>72 D<007FB6FCB71280A46C1500260007F0C7FCB3B3A8007FB6FCB7 +1280A46C1500213879B730>I<D83FF8ECFFE0486C4913F0486C4913F8A2007F16F06C6C +4913E00007160001EF14BFEC800FA39039E7C01F3FA4ECE03F01E3133EA2ECF07EA201E1 +137CA2ECF8FCA201E013F8A214FDEC7DF0A3147FEC3FE0A3EC1FC0A2EC070091C7FCADD8 +3FFC903801FFE0486C4913F0B54913F8A26C486D13F06C486D13E02D387FB730>77 +D<90383FFFE048B512FC000714FF4815804815C04815E0EBF80001E0133FD87F80EB0FF0 +A290C71207A44815F8481403B3A96C1407A26C15F0A36D130FA26D131F6C6CEB3FE001F8 +13FF90B6FC6C15C06C15806C1500000114FCD8003F13E0253A7BB830>79 +D<007FB512F0B612FE6F7E16E0826C813903F8003FED0FFCED03FE15016F7EA282178016 +3FA6167F17005EA24B5A1503ED0FFCED3FF890B6FC5E5E16804BC7FC15F001F8C9FCB038 +7FFFC0B57EA46C5B29387EB730>I<003FB57E4814F0B612FC15FF6C816C812603F8017F +9138003FF0151F6F7E15071503821501A515035E1507150F4B5A153F4AB45A90B65A5E93 +C7FC5D8182D9F8007FED3FE0151F150F821507A817F8EEF1FCA53A3FFF8003FB4801C0EB +FFF8B56C7E17F06C496C13E06C49EB7FC0C9EA1F002E397FB730>82 +D<90390FF803C0D97FFF13E048B512C74814F74814FF5A381FF80F383FE001497E484813 +7F90C7123F5A48141FA2150FA37EED07C06C91C7FC7F7FEA3FF0EA1FFEEBFFF06C13FF6C +14E0000114F86C80011F13FF01031480D9003F13C014019138007FE0151FED0FF0A2ED07 +F8A2007C140312FEA56C140716F07F6DEB0FE06D131F01F8EB3FC001FF13FF91B5128016 +0000FD5CD8FC7F13F8D8F81F5BD878011380253A7BB830>I<003FB712C04816E0B8FCA4 +3AFE003F800FA8007CED07C0C791C7FCB3B1011FB5FC4980A46D91C7FC2B387EB730>I< +3B7FFFC007FFFCB56C4813FEA46C496C13FCD803F8C7EA3F80B3B16D147F00011600A36C +6C14FE6D13016D5CEC800390393FE00FF890391FF83FF06DB55A6D5C6D5C6D91C7FC9038 +007FFCEC1FF02F3980B730>I<D87FFE90380FFFC0B54913E06E5AA24A7E6C486D13C0D8 +07F0903801FC00A26D130300035DA46C6C495AA46C6C495AA46D131F6D5CA3EC803F013F +5CA46D6C48C7FCA490380FE0FEA401075B14F1A301035BA314FB01015BA314FFA26D5BA4 +6E5A6E5A2B397EB730>I<3A3FFF01FFF84801837F02C77FA202835B6C01015B3A01FC00 +7F806D91C7FC00005C6D5BEB7F01EC81FCEB3F8314C3011F5B14E7010F5B14FF6D5BA26D +5BA26D5BA26D90C8FCA4497FA2497FA2815B81EB0FE781EB1FC381EB3F8181EB7F008149 +7F49800001143F49800003141F49800007140FD87FFEEB7FFFB590B5128080A25C6C486D +130029387DB730>88 D<007FB5FCB61280A4150048C8FCB3B3B3A5B6FC1580A46C140019 +476DBE30>91 D<127CA212FEA27EA26C7EA26C7EA26C7EA26C7EA26C7EA26C7EA212017F +A26C7EA26D7EA26D7EA26D7EA26D7EA26D7EA26D7EA2130180A26D7EA26E7EA26E7EA26E +7EA26E7EA26E7EA26E7EA2140181A26E7EA2ED7F80A2ED3FC0A2ED1FE0A2ED0FF0A2ED07 +F8A21503A2ED01F0150025477BBE30>I<007FB5FCB61280A47EC7123FB3B3B3A5007FB5 +FCB6FCA46C140019477DBE30>I<007FB612F0A2B712F8A36C15F0A225077B7D30>95 +D<1338137CEA01FE12031207EA0FFC13F0EA1FE013C0EA3F8013005A127EA212FE5AA5EA +FFC013E013F0127FA2123FA2EA1FE0EA07C00F1D70BE30>I<EB3FFC48B57E4814E04880 +488048809038F00FFE9038E001FF806F7E6C48133F6C4880C8121FA491B5FC130F137F48 +B6FC12075A48EBC01F383FFC00EA7FE0138048C7FC5AA46C143FA26C6C137F9038C001FF +263FF80FEBFFC06CB712E0A2000714F76C14C3C6020013C0D93FF090C7FC2B2A7CA830> +I<EA3FFC487E12FFA2127F123F1200AAEC03FE91381FFF80027F13E091B57E90B612FC82 +ECFE079138F001FF4A6C13804A137F4AEB3FC091C7121F4915E0160FA217F01607A8160F +A217E07F161F6EEB3FC0A26EEB7F806E13FFDAF00313009138FC0FFE91B55A5E495CD97E +7F13C0D93C1F90C7FC90380003FC2C3980B730>I<ECFFE0010713FC011F7F017F7F90B6 +12804815C048EB807F3907FC003F485A485A49EB1F804848EB0F004990C7FC127F90C9FC +A25A5AA87E7EA27F003FEC07C06DEB0FE06C7E6D131F6C6C14C0D807FE133F9039FFC0FF +806C90B5FCC615006D5B011F13F801075B01011380232A7AA830>I<913801FFE04A7F5C +A28080EC0007AAEB03FE90381FFF874913E790B6FC5A5A481303380FFC00D81FF0133F49 +131F485A150F4848130790C7FCA25AA25AA87E6C140FA27F003F141F6D133F6C7E6D137F +390FF801FF2607FE07EBFFC06CB712E06C16F06C14F76D01C713E0011F010313C0D907FC +C8FC2C397DB730>I<49B4FC010713E0011F13F8017F7F90B57E488048018113803A07FC +007FC04848133FD81FE0EB1FE0150F484814F0491307127F90C7FCED03F85A5AB7FCA516 +F048C9FC7E7EA27F003FEC01F06DEB03F86C7E6C7E6D1307D807FEEB1FF03A03FFC07FE0 +6C90B5FC6C15C0013F14806DEBFE00010713F8010013C0252A7CA830>I<EDFF80020713 +E0021F13F05C4A13F891B5FC491387903803FE079138FC03F0903907F800C04A1300A800 +3FB612C04815E0B7FCA36C15C0260007F0C7FCB3A9003FB512FE4880B71280A26C15006C +5C25397DB830>I<D903FC13FF90261FFF8713C04913DF90B712E05A5A2607FE07138F90 +3AF801FE07C048486C6CC7FCA2497F001F8149133FA56D137F000F92C7FC6D5BA26C6C48 +5AEBFE0790B55A5D485C15C001DF5BD9C3FCC8FC01C0C9FCA37F7F6CB512F015FF6C15C0 +4815F0488148813A3FE0001FFE0180130148C8127F007E8100FE168048151FA56C153F00 +7FED7F006D5C6C6C495A01F013076CB4EB7FFC6C90B55A6C5D000115C06C6C91C7FC011F +13FC010113C02B3E7DA730>I<EA3FFC487E12FFA2127F123F1200AAEC01FE91380FFF80 +023F13E091B57E90B67EA29138FE07FCECF8039138E001FE14C0EC8000A291C7FCA25BB3 +A23B3FFFF81FFFF8486D4813FCB500FE14FEA26C01FC14FC6C496C13F82F3880B730>I< +14E0EB03F8A2497EA36D5AA2EB00E091C8FCA9381FFFF8487F5AA27E7EEA0001B3A9003F +B612C04815E0B7FCA27E6C15C023397AB830>I<EA7FF8487EA4127F1200AB0203B51280 +4A14C017E0A217C06E14809139001FE0004B5A4B5A4BC7FC4A5A4A5AEC0FF84A5A4A5A4A +5A4A5A01FD7F90B57E8114F7ECE3F8ECC1FCEC81FEEC00FF497F496D7E6F7E826F7E1507 +6F7E6F7E3B7FFFF81FFFE0B56C4813F017F8A217F06C496C13E02D387FB730>107 +D<387FFFF8B57EA47EEA0001B3B3A8007FB612F0B712F8A46C15F025387BB730>I<02FC +137E3B7FC3FF01FF80D8FFEF01877F90B500CF7F15DF92B57E6C010F13872607FE07EB03 +F801FC13FE9039F803FC01A201F013F8A301E013F0B3A23C7FFE0FFF07FF80B548018F13 +C0A46C486C01071380322881A730>I<EC01FE3A3FFC0FFF80267FFE3F13E000FF90B57E +90B67E7E6C9038FE07FCC6EBF8039138E001FE14C0EC8000A291C7FCA25BB3A23B3FFFF8 +1FFFF8486D4813FCB500FE14FEA26C01FC14FC6C496C13F82F2880A730>I<49B4FC010F +13E0013F13F8497F90B57E0003ECFF8014013A07FC007FC04848EB3FE0D81FE0EB0FF0A2 +4848EB07F8491303007F15FC90C71201A300FEEC00FEA86C14016C15FCA26D1303003F15 +F86D13076D130F6C6CEB1FF06C6CEB3FE06D137F3A07FF01FFC06C90B512806C15006C6C +13FC6D5B010F13E0010190C7FC272A7CA830>I<EC03FE3A3FFC1FFF80267FFE7F13E000 +FF90B57E90B612FC6C816CEBFE07C69038F001FF4A6C13804A137F4AEB3FC091C7121F49 +15E0160FA217F01607A8160FA217E07F161F6EEB3FC0A26EEB7F806E13FFDAF003130091 +38FC0FFE91B55A5E495C6E13C0021F90C7FCEC03FC91C9FCAD383FFFF8487FB57EA26C5B +6C5B2C3C80A730>I<ED07F83A3FFF803FFF486DB51280B512C302CF14C06C13DF6C9038 +FFFC3FD8001F13E09238801F809238000F004A90C7FC5C5C5CA25CA45CAF003FB512FC48 +80B7FCA26C5C6C5C2A287EA730>114 D<90381FFC1E48B5129F000714FF5A5A5A387FF0 +07EB800100FEC7FC4880A46C143E007F91C7FC13E06CB4FC6C13FC6CEBFF806C14E00001 +14F86C6C7F01037F9038000FFF02001380007C147F00FEEC1FC0A2150F7EA27F151F6DEB +3F806D137F9039FC03FF0090B6FC5D5D00FC14F0D8F83F13C026780FFEC7FC222A79A830 +>I<EB0780497E131FA9003FB612E04815F0B7FCA36C15E026001FC0C7FCB216F8ED01FC +A5ECE003010FEB07F814F09138FC1FF06DB512E06D14C016806D14009038007FFCEC1FF0 +26337EB130>I<D83FFCEB3FFC486C497E00FF14FFA2007F147F003F143F00001400B3A4 +1501A2150315076D130F903A7FC07FFFF891B612FC6D15FE7F6D4913FC6D9038F87FF801 +0001C0C7FC2F2880A630>I<3B3FFFC07FFF80486DB512C0B515E0A26C16C06C496C1380 +3B01F80003F000A26D130700005DA26D130F017E5CA2017F131F6D5CA2EC803F011F91C7 +FCA26E5A010F137EA2ECE0FE01075BA214F101035BA3903801FBF0A314FF6D5BA36E5A6E +5A2B277EA630>I<3B3FFFC01FFFE0486D4813F0B515F8A26C16F06C496C13E0D807E0C7 +EA3F00A26D5C0003157EA56D14FE00015DEC0F80EC1FC0EC3FE0A33A00FC7FF1F8A2147D +A2ECFDF9017C5C14F8A3017E13FBA290393FF07FE0A3ECE03FA2011F5C90390F800F802D +277FA630>I<3A3FFF81FFFC4801C37FB580A26C5D6C01815BC648C66CC7FC137FEC80FE +90383F81FC90381FC3F8EB0FE3ECE7F06DB45A6D5B7F6D5B92C8FC147E147F5C497F8190 +3803F7E0EB07E790380FE3F0ECC1F890381F81FC90383F80FE90387F007E017E137F01FE +6D7E48486D7E267FFF80B5FCB500C1148014E3A214C16C0180140029277DA630>I<3B3F +FFC07FFF80486DB512C0B515E0A26C16C06C496C13803B01FC0003F000A2000014076D5C +137E150F017F5C7F151FD91F805BA214C0010F49C7FCA214E00107137EA2EB03F0157C15 +FCEB01F85DA2EB00F9ECFDF0147D147FA26E5AA36E5AA35DA2143F92C8FCA25C147EA200 +0F13FE486C5AEA3FC1EBC3F81387EB8FF0EBFFE06C5B5C6C90C9FC6C5AEA01F02B3C7EA6 +30>I<001FB612FC4815FE5AA316FC90C7EA0FF8ED1FF0ED3FE0ED7FC0EDFF80003E4913 +00C7485A4A5A4A5A4A5A4A5A4A5A4A5A4990C7FC495A495A495A495A495A495A4948133E +4890C7127F485A485A485A485A485A48B7FCB8FCA46C15FE28277DA630>I<017C133848 +B4137C48EB80FE4813C14813C348EBEFFC397FEFFFF0D8FF8713E0010713C0486C1380D8 +7C0113003838007C1F0C78B730>126 D E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fj cmtt12 14.4 3 +/Fj 3 87 df<DAFFF01378010701FE13FC011FEBFF81017F14E190B612F94815FF5A48EB +C03F390FFE0003D81FF87F4848EB007F49143F4848141F5B160F00FF150790C8FCA31603 +A37F705A6C6C91C8FCA26C7E7F6C7E13FE380FFFE06C13FE6CEBFFE06C14FE6CECFFE001 +3F14F8010F14FE010380D9007F14C0020380DA003F7F15039238007FF8EE1FFC1607707E +A2707E82A21880003E167F127F5AA56D15FF1800A26D5C6D5D6D14036D4A5A01FE4A5A6D +6C133F9139FC01FFF091B65A5F486C5D011F4AC7FC01075C48C614E00078010F90C8FC31 +4B7AC93E>83 D<003FB812FC5AB912FEA590C7EB0001A9007EEE00FCA2C81500B3B3AC49 +B67E4981A56D5D37497DC83E>I<263FFFF0903807FFFE4883B56C491480A36C496D1400 +6C5FD801FEC8EA3FC0A36D157F6C5FA36E14FF017F93C7FCA36E5B013F5DA36E1303011F +5DA36E1307010F5DA36E130F01075DA36E131F01035DA36E133F01015DA46D6C495AA46E +6C48C8FCA491383FC1FEA4021F5B15E3A3020F5BA215F7A202075BA215FFA26E5BA46E5B +6E5B6FC9FC394A7EC83E>86 D E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fk cmbx12 17.28 35 +/Fk 35 122 df<94387FFF80041FB512F04BB612FC030F81037F6F7E4AB5D8E0077F4A49 +C76C7E020F01F0EC1FF04A01C0147F4A90C8487E4A485C4A484A7F49495C495BA2495B4E +7F49705B5DA3725B725B725B735A96C9FCAB0503B512FEBBFCA6D8000F01E0C7120184B3 +B3AF003FB6D8F803B71280A651657DE45A>12 D<16F04B7E1507151F153FEC01FF140714 +7F010FB5FCB7FCA41487EBF007C7FCB3B3B3B3007FB91280A6395E74DD51>49 +D<913801FFF8021FEBFFC091B612F8010315FF010F16C0013F8290267FFC0114F89027FF +E0003F7F4890C7000F7F48486E7FD807F86E148048486E14C048486E14E048486F13F001 +FC17F8486C816D17FC6E80B56C16FE8380A219FFA283A36C5BA26C5B6C90C8FCD807FC5D +EA01F0CA14FEA34D13FCA219F85F19F04D13E0A294B512C019804C14004C5B604C5B4C5B +604C13804C90C7FC4C5A4C5A4B13F05F4B13804B90C8FC4B5AED1FF84B5A4B5A4B48143F +4A5B4A48C8FC4A5A4A48157E4A5A4A5AEC7F8092C9FC02FE16FE495A495A4948ED01FCD9 +0FC0150749B8FC5B5B90B9FC5A4818F85A5A5A5A5ABAFCA219F0A4405E78DD51>I<92B5 +FC020F14F8023F14FF49B712C04916F0010FD9C01F13FC90271FFC00077FD93FE001017F +49486D8049C86C7F484883486C6F7F14C0486D826E806E82487FA4805CA36C5E4A5E6C5B +6C5B6C495E011FC85A90C95CA294B55A614C91C7FC604C5B4C5B4C5B4C5B047F13809226 +0FFFFEC8FC020FB512F817E094C9FC17F817FF91C7003F13E0040713F8040113FE707F71 +7F7113E085717FA2717F85A285831A80A31AC0EA03FCEA0FFF487F487F487FA2B57EA31A +80A34D14005C7E4A5E5F6C495E49C8485BD81FF85F000F5ED807FE92B55A6C6C6C491480 +6C01F0010791C7FC6C9026FF803F5B6D90B65A011F16F0010716C001014BC8FCD9001F14 +F0020149C9FC426079DD51>I<F01F804E7E187F18FFA25F5F5F5FA25F5F5FA294B5FC5E +5E5EA25E5EEE3FBFEE7F3FA216FEED01FCED03F8ED07F0A2ED0FE0ED1FC0ED3F8016005D +15FE4A5A4A5AA24A5A4A5A4A5A4A5AA24AC7FC14FE495A5C1303495A495A495A5C133F49 +C8FC13FE485AA2485A485A485A5B121F485A48C9FC12FEBCFCA6CA6CEBC000B1037FB8FC +A6485E7CDD51>I<01C0EE01C0D801F8160F01FF167F02F0EC07FFDAFF8090B5FC92B712 +8019006060606060606095C7FC17FC5F17E0178004FCC8FC16E09026FC3FFCC9FC91CBFC +ADED3FFE0203B512F0020F14FE023F6E7E91B712E001FDD9E00F7F9027FFFE00037F02F8 +01007F02E06EB4FC02806E138091C8FC496F13C04917E07113F0EA00F090C914F8A219FC +83A219FEA419FFA3EA03F0EA0FFC487E487E487FA2B57EA319FEA35C4D13FC6C90C8FC5B +4917F8EA3FF001804B13F06D17E0001F5E6C6C17C06D4B1380D807FC92B512006C6C4A5B +6C6C6C01075B6C01E0011F5BD97FFE90B55A6DB712C0010F93C7FC6D15FC010115F0D900 +3F1480020301F0C8FC406078DD51>I<F00FE04E7EA24E7EA34E7EA24E7EA34D7FA24D80 +A24D80A34D80A24D80A34D80A2DD7FBF7FA2181F05FF8017FE04016D7FA24D7E04038217 +F804076D80A24D7E040F8217E0041F6D80A24D7F043F825F047F6E7FA294C77E4C825E03 +016F7FA24C800303845E03076F80A24C80030F845E031F6F80A24C81033F845E037F707F +93B9FCA292BA7EA24A85A203FCC912070203865D020771805D86020F864B82021F865D87 +023F864B83027F8692CBFC874A864A840101875C496C728090381FFFC0B700E092B812FE +A66F647BE37A>65 D<BB12F0F2FF801BF81BFEF3FFC088D800010280C7000114F8DF003F +7F080F13FF74807480867480757FA2757FA28987A289A965A26365A2515BA298B55A505C +505C5091C7FC505B505B087F13F00703B512C096B6C8FC93B812F81BC01BF8F3FF801CE0 +0480C8001F13F8080713FE08016D7E7480757F757F757F89757F89871E80871EC0A41EE0 +87A663A21EC0A3631E80A2511400A2515B515B6398B55A505C08075C081F5C97B6C7FCBD +5A1CF81CE099C8FC1BF898C9FC63627AE173>I<4DB5ED03C0057F02F014070407B600FE +140F047FDBFFC0131F4BB800F0133F030F05FC137F033F9127F8007FFE13FF92B6C73807 +FF814A02F0020113C3020702C09138007FE74A91C9001FB5FC023F01FC16074A01F08291 +B54882490280824991CB7E49498449498449498449865D49498490B5FC484A84A2484A84 +A24891CD127FA25A4A1A3F5AA348491A1FA44899C7FCA25CA3B5FCB07EA380A27EA2F50F +C0A26C7FA37E6E1A1F6C1D80A26C801D3F6C6E1A00A26C6E616D1BFE6D7F6F4E5A7F6D6D +4E5A6D6D4E5A6D6D4E5A6D6E171F6D02E04D5A6E6DEFFF806E01FC4C90C7FC020F01FFEE +07FE6E02C0ED1FF8020102F8ED7FF06E02FF913803FFE0033F02F8013F1380030F91B648 +C8FC030117F86F6C16E004071680DC007F02F8C9FC050191CAFC626677E375>I<BB12E0 +F2FF801BF01BFE757E1CF0D800010280C7000780DF007F13FE080F6D7E0801807480093F +7F090F13FC757F757F877580767F8A88767F8A888AA2767FA28A881F80A37614C0A41FE0 +A5881FF0B05214E0A51FC0A4521480A31F006466A2525BA2525BA2525B666499B55A515C +5191C7FC515B515B515B097F5B50B512C008075C083F91C8FC0707B512FCBD12F01CC051 +C9FC1BF81B8008E0CAFC6C627AE17C>I<B912E0A6C702E0C7FCB3B3B3B3AEB912E0A633 +627CE13C>73 D<BA12F8F1FFE01AFEF2FFC01BF01BFED800010280C76C7F070714C00700 +14F0747F081F7F747F747F7480A2748089A37480A389A865A3505CA265A2505C9AC9FC50 +5B505B505B087F5B4FB55A0707148096B548CAFC93B812F81BC050CBFC621AFF93268000 +0314C0DE007F7F071F13F8737F737F737F73808885888688A2747FA688A688A676140FF7 +1F80A374801F3F86771400745E746E5BB96E6E5B746E485A75EBFE07091F90B55A090715 +E009015DCF003F91C7FC0A0013FC71647AE178>82 D<001FBEFCA64849C79126E0000F14 +8002E0180091C8171F498601F81A0349864986A2491B7FA2491B3F007F1DC090C9181FA4 +007E1C0FA600FE1DE0481C07A5CA95C7FCB3B3B3A3021FBAFCA663617AE070>84 +D<B96C023FB612FEA6D8000102C0CA0007EBF000E2007FC7FCB3B3B3AA656D63A2821C01 +806570170380525A6E7F6E4F5A70171F6E626E6D4D5A6E6D177F525A6E6E030390C8FC03 +3F01E04B5A6F6DED1FFC6F01FCED7FF80303D9FF80903803FFE06F02F8017F5B6F6C90B7 +C9FC041F5E040716F8040016C0050F4ACAFCDD003F13C06F647AE17C>I<913803FFFE02 +7FEBFFF00103B612FE010F6F7E4916E090273FFE001F7FD97FE001077FD9FFF801017F48 +6D6D7F717E486D6E7F85717FA2717FA36C496E7FA26C5B6D5AEB1FC090C9FCA74BB6FC15 +7F0207B7FC147F49B61207010F14C0013FEBFE004913F048B512C04891C7FC485B4813F8 +5A5C485B5A5CA2B55AA45FA25F806C5E806C047D7F6EEB01F96C6DD903F1EBFF806C01FE +D90FE114FF6C9027FFC07FC01580000191B5487E6C6C4B7E011F02FC130F010302F00101 +1400D9001F90CBFC49437CC14E>97 D<903807FF80B6FCA6C6FC7F7FB3A8EFFFF8040FEB +FF80047F14F00381B612FC038715FF038F010014C0DBBFF0011F7FDBFFC001077F93C76C +7F4B02007F03F8824B6F7E4B6F13804B17C0851BE0A27313F0A21BF8A37313FCA41BFEAE +1BFCA44F13F8A31BF0A24F13E0A24F13C06F17804F1300816F4B5A6F4A5B4AB402075B4A +6C6C495B9126F83FE0013F13C09127F00FFC03B55A4A6CB648C7FCDAC00115F84A6C15E0 +91C7001F91C8FC90C8000313E04F657BE35A>I<92380FFFF04AB67E020F15F0023F15FC +91B77E01039039FE001FFF4901F8010113804901E0010713C04901804913E0017F90C7FC +49484A13F0A2485B485B5A5C5A7113E0485B7113C048701380943800FE0095C7FC485BA4 +B5FCAE7EA280A27EA2806C18FCA26C6D150119F87E6C6D15036EED07F06C18E06C6D150F +6D6DEC1FC06D01E0EC7F806D6DECFF00010701FCEB03FE6D9039FFC03FFC010091B512F0 +023F5D020F1580020102FCC7FCDA000F13C03E437BC148>I<F17FF8050FB5FCA6EF000F +8484B3A892380FFF804AB512F8020F14FE023FECFF8391B712E301039138807FF3499039 +F8000FFB011F01E00103B5FC494913004990C87E49488148498148834A815A485BA2485B +A25AA3485BA4B5FCAE7EA46C7FA37EA26C7FA26C5F806C5F6C6D5D6C6D5D017F93B5FC6D +6C6C0103806D6D49806D01F0D91FF7EBFFFE6D9039FE01FFE7010190B612876D6CECFE07 +021F14F8020314E09127003FFE00ECC0004F657BE35A>I<92380FFFC04AB512FC020FEC +FF80023F15E091B712F80103D9FE037F499039F0007FFF011F01C0011F7F49496D7F4990 +C76C7F49486E7F48498048844A804884485B727E5A5C48717EA35A5C721380A2B5FCA391 +B9FCA41A0002C0CBFCA67EA380A27EA27E6E160FF11F806C183F6C7FF17F006C7F6C6D16 +FE6C17016D6C4B5A6D6D4A5A6D01E04A5A6D6DEC3FE0010301FC49B45A6D9026FFC01F90 +C7FC6D6C90B55A021F15F8020715E0020092C8FC030713F041437CC14A>I<EE3FFC0307 +B51280033F14C04AB612F0020715F84A9038F03FFC4AEB807F913A7FFE00FFFE4A5A4B48 +13FF4913F05B4913E0A24913C0A27013FE4949EB7FFCEF3FF8EF1FF0EF07C094C7FCB0B8 +12C0A6D8001F01C0C8FCB3B3B0007FB612FCA638657CE431>I<F107F8DB7FFEEC3FFE02 +0FB5D8F001B5FC027FDAFE03148049B7128F49DCDFFD13C0010FD9F00FEBFFC149D98001 +14014990C7EBFC0349486E6C7E4948EC3FFF48496E018113800780130048F0C03E97C7FC +48496E7FA34884A96C60A36C6D4A5BA26C60A26C6D4A90C8FC6D6C4A5A6D6C4A5A6D6D48 +5BDBF00F5B4990B612C060D97C7F4AC9FCD9FC0F14F09126007FFECAFC92CCFC1201A47F +A27F8014F091B77E18FE6CEFFFC019F06D17FC19FF6D846D846D846D84013F8490BAFC00 +03854801E0C712014890C9000F7F484816014848EE007F4848717E8512FF5B85A56D5F00 +7F616D173F003F616D177F6C6C4D5A6C01C003035B6C6D4B5B6C01F8031F5BC601FF92B5 +C7FC6D01F8011F5B011F90B712F8010717E0010094C8FC020F15F0DA003F01FCC9FC4A60 +7CC151>I<903807FF80B6FCA6C6FC7F7FB3A8EF1FFF94B512F0040714FC041F14FF4C81 +93267FE07F7F922781FE001F7FDB83F86D7FDB87F07FDB8FC0814C7F039FC78015BE03BC +8003FC825DA25DA25DA45DB3B2B7D8F007B71280A651647BE35A>I<EB0FE0EB3FF8497E +48B5FCA24880A24880A76C5CA26C91C7FCA238007FFC6D5AEB0FE090C9FCAF903807FF80 +007FB5FCA6C6FC7F7FB3B3AEB712C0A622657BE42C>I<903807FF80B6FCA6C6FC7F7FB3 +B3B3B3ADB712E0A623647BE32C>108 D<902607FF80D91FFFEEFFF8B691B500F00207EB +FF80040702FC023F14E0041F02FF91B612F84C6F488193267FE07F6D4801037F922781FE +001F9027E00FF0007FC6DA83F86D9026F01FC06D7F6DD987F06D4A487F6DD98FC0DBF87E +C7804C6D027C80039FC76E488203BEEEFDF003BC6E4A8003FC04FF834B5FA24B5FA24B94 +C8FCA44B5EB3B2B7D8F007B7D8803FB612FCA67E417BC087>I<902607FF80EB1FFFB691 +B512F0040714FC041F14FF4C8193267FE07F7F922781FE001F7FC6DA83F86D7F6DD987F0 +7F6DD98FC0814C7F039FC78015BE03BC8003FC825DA25DA25DA45DB3B2B7D8F007B71280 +A651417BC05A>I<923807FFE092B6FC020715E0021F15F8027F15FE494848C66C6C7E01 +0701F0010F13E04901C001037F49496D7F4990C87F49486F7E49486F7E48496F13804819 +C04A814819E048496F13F0A24819F8A348496F13FCA34819FEA4B518FFAD6C19FEA46C6D +4B13FCA36C19F8A26C6D4B13F0A26C19E06C6D4B13C0A26C6D4B13806C6D4B13006D6C4B +5A6D6D495B6D6D495B010701F0010F13E06D01FE017F5B010090B7C7FC023F15FC020715 +E0020092C8FC030713E048437CC151>I<902607FF80EBFFF8B6010FEBFF80047F14F003 +81B612FC038715FF038F010114C09227BFF0003F7FC6DAFFC0010F7F6D91C76C7F6D496E +7F03F86E7F4B6E7F4B17804B6F13C0A27313E0A27313F0A21BF885A21BFCA3851BFEAE4F +13FCA41BF861A21BF0611BE0611BC06F92B512801B006F5C6F4A5B6F4A5B03FF4A5B7049 +5B04E0017F13C09226CFFC03B55A03C7B648C7FC03C115F803C015E0041F91C8FC040313 +E093CBFCB3A3B712F0A64F5D7BC05A>I<D90FFFEB0FFCB690383FFF8093B512E04B14F0 +4B14F8923907FC7FFC92390FE0FFFEC6EC1F806DD93F0113FF6D133E157E157C15F8A215 +F07013FEA24BEB7FFCEF3FF8EF0FE04B90C7FCA55DB3B0B712F8A638417BC042>114 +D<913A3FFF8007800107B5EAF81F011FECFE7F017F91B5FC48B8FC48EBE0014890C7121F +D80FFC1407D81FF0801600485A007F167F49153FA212FF171FA27F7F7F6D92C7FC13FF14 +E014FF6C14F8EDFFC06C15FC16FF6C16C06C16F06C826C826C826C82013F1680010F16C0 +1303D9007F15E0020315F0EC001F1500041F13F81607007C150100FC81177F6C163FA217 +1F7EA26D16F0A27F173F6D16E06D157F6D16C001FEEDFF806D0203130002C0EB0FFE02FC +EB7FFC01DFB65A010F5DD8FE0315C026F8007F49C7FC48010F13E035437BC140>I<EC07 +E0A6140FA5141FA3143FA2147FA214FF5BA25B5B5B5B137F48B5FC000F91B512FEB8FCA5 +D8001F01E0C8FCB3AFEF0FC0AC171F6D6D1480A2173F6D16006F5B6D6D137E6D6D5B6DEB +FF836EEBFFF86E5C020F14C002035C9126003FFCC7FC325C7DDA3F>I<902607FFC0ED3F +FEB60207B5FCA6C6EE00076D826D82B3B3A260A360A2607F60183E6D6D147E4E7F6D6D49 +48806D6DD907F0ECFF806D01FFEB3FE06D91B55A6E1500021F5C020314F8DA003F018002 +F0C7FC51427BC05A>I<B70081B600FC0103B512FCA6C66C0180C701FCC8381FFE006F6F +ED03F86D047F5F856F6E16076D646F70140F6D705F866F6E161F6D646F4A6D143F6D99C7 +FC4E7F6F616D1B7E6F4A6D14FE6D6395B57E7001FC15016E62DCC0016E13036EDBF87F5D +05038004E0496C14076E62DCF007ED800F6E4B6C5D050F15C004F8496C141F6E62DCFC1F +EDE03F6E4B6C92C8FC053F15F004FE496C5C6E197E7048EDF8FE6E027E6D5C05FE15FC4D +6D13FD6F601BFF6F496E5BA24D806F60A26F496E5BA24D806F60A26F496E90C9FCA294C8 +7E6F5FA26F486F5A047C6F5A6E417DBF75>119 D<007FB600C0017FB512F8A6D8001F01 +F8C70007EBF0006D040190C7FC6D6D5D6D6D4A5A6D6D4A5A70495A6D4C5A6E7F6E6D495A +6E6D495A7049C8FC6E4A5A6E6D485A6E6D485A6E13FFEF8FF06EEC9FE06FEBFFC06F5C6F +91C9FC5F6F5B816F7F6F7F8481707F8493B57E4B805D4B80DB0FF37FDB1FE17F04C08015 +3F4B486C7F4B486C7F4A486D7F4A486D7F4A5A4B6D7F020F6E7F4A486D7F4A486D804A5A +4AC86C7F49486F7F4A6F7F0107707FEB3FFFB600F049B7FCA650407EBF55>I<B700C001 +03B512FCA6D8003F01C0C8381FFE006FED07F0A26D6D5E190F6D6D5E191F6D6D5E193F6D +95C7FC6F5D6D177E6F15FEA26D6E495AA26E6D5C18036E6D5C18076E5E70130F6E5E7013 +1FA26E6D495AA26E6D91C8FC606E6D137E18FE6E5D17816F5C17C3A26FEBE7F0A26FEBF7 +E017FF6F5CA26F5CA26F91C9FCA36F5BA26F5BA2705AA2705AA2705AA35FA25F163F94CA +FC5E167E16FED807E05CD81FF81301487E486C495AA2B5495AA24B5A5E151F4B5A6C4849 +CBFC15FEEBFC01393FF807FC391FF03FF06CB55A6C5C6C91CCFCC613FCEB1FE04E5D7DBF +55>I E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fl cmsy10 10.95 2 +/Fl 2 16 df<EE7FFE0307B512E0033F14FC92B7FC0203D9C00313C0DA0FFCC7EA3FF0DA +3FE0EC07FCDA7F80EC01FED901FEC9EA7F80D903F8EE1FC0D907E0EE07E04948707E4948 +707E49CB7E017E187E498449844848F00F8000031AC04918074848F003E0A24848F001F0 +A248CD12F8A2001E1A78003E1A7CA2003C1A3C007C1A3EA200781A1EA300F81A1FA2481A +0FAB6C1A1FA200781A1EA3007C1A3EA2003C1A3C003E1A7CA2001E1A78001F1AF8A26C6C +F001F0A26C6CF003E0A26C6CF007C06D180F00011A806C6CF01F006D60017E187E6D606D +6C4C5A6D6C4C5A6D6C4C5AD903F8EE1FC0D901FEEE7F809026007F80DA01FEC7FCDA3FE0 +EC07FCDA0FFCEC3FF0913B03FFC003FFC0020090B6C8FC033F14FC030714E09226007FFE +C9FC50557BC05B>13 D<EB0FFCEB3FFF90B512C0000314F04880488048804880A2481580 +A3B712C0AA6C1580A36C1500A26C5C6C5C6C5C6C5CC614C0013F90C7FCEB0FFC22227BA7 +2D>15 D E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fm cmbx12 14.4 50 +/Fm 50 122 df<EEFFFC031FEBFF804AB612E0020781021F9038C00FF8913A7FFE0003FC +DAFFF0EB00FE4949EB03FF4901805B4990C7487F49485CA2495A4D7F013F6F5B5CA37190 +C7FC715AEF01F894C9FCA90403B512C0BAFCA526003FFCC7120783B3B3A6003FB5D8FC03 +B612C0A542547DD34B>12 D<003015C0007CEC03E0D87F80131FD8FFE0EB7FF09038F801 +FF263FFF0F13C06C90B512800007ECFE00000114F86C5C013F13C06D5BD907FEC7FC6D5A +EB00F01460241071CD43>20 D<EA07F0487E487E487E487EB51280A76C13006C5A6C5A6C +5A6C5A1111769025>46 D<913803FFC0023F13FC91B6FC010315C0010F018113F0903A1F +FC003FF849486D7E49486D7E49486D7E48496D138048496D13C0A24817E04890C813F0A3 +4817F8A24817FC49157FA3007F17FEA600FF17FFB3A5007F17FEA6003F17FCA26D15FFA2 +6C17F8A36C17F0A26C6D4913E0A26C6D4913C06C17806E5B6C6D4913006D6C495AD91FFC +EB3FF8903A0FFF81FFF06D90B55A01011580D9003F01FCC7FC020313C0384F7BCD43>48 +D<157815FC14031407141F14FF130F0007B5FCB6FCA2147F13F0EAF800C7FCB3B3B3A600 +7FB712FEA52F4E76CD43>I<EC3FFE0103B512E0010F14FC013F14FF90B712C048D9C07F +7F2703FE000F13F8D807F801037FD80FE06D7F48486D7F48488001F01680486C6E13C07F +486C6E13E07FA27013F0A56C5AA26C5AEA0FF0EA03C0C914E05EA218C05E1880A24C1300 +5F4C5A4B5B5F4B5B5F4B5B4B90C7FC4B5A5E4B5AED7FE04B5A4A5B4A48C8FC4A5A5D4A48 +EB01F04A5AEC3F804AC7FC02FEEC03E0495A495A495A495AD91F80140749C8FC013E150F +017FB7FC90B812C05A5A5A5A5A5A5AB9FC1880A4344E79CD43>I<91380FFFC091B512FC +0107ECFF80011F15E090263FF8077F9026FF800113FC4848C76C7ED803F86E7E491680D8 +07FC8048B416C080486D15E0A4805CA36C17C06C5B6C90C75AD801FC1680C9FC4C13005F +A24C5A4B5B4B5B4B13C04B5BDBFFFEC7FC91B512F816E016FCEEFF80DA000713E0030113 +F89238007FFE707E7013807013C018E07013F0A218F8A27013FCA218FEA2EA03E0EA0FF8 +487E487E487EB57EA318FCA25E18F891C7FC6C17F0495C6C4816E001F04A13C06C484A13 +80D80FF84A13006CB44A5A6CD9F0075BC690B612F06D5D011F1580010302FCC7FCD9001F +1380374F7ACD43>I<177C17FEA2160116031607160FA2161F163F167FA216FF5D5DA25D +5DED1FBFED3F3F153E157C15FCEC01F815F0EC03E01407EC0FC01580EC1F005C147E147C +5C1301495A495A5C495A131F49C7FC133E5B13FC485A5B485A1207485A485A90C8FC123E +127E5ABA12C0A5C96C48C7FCAF020FB712C0A53A4F7CCE43>I<D80380150ED807E0157E +01FEEC03FED9FFF0137F91B65A5F5F5F5F5F94C7FC5E5E16F016C093C8FC15F801E190C9 +FC01E0CAFCABEC0FFF027F13F001E3B512FE01E76E7E9026FFF8077FDAC0017F49C713F8 +496E7E49143F4981496E7E6C481680C9FC18C08218E0A418F0A3EA0FE0487E487E487E48 +7EA418E0A35B6C484A13C05B491680003EC85A003F17006C6C4A5A6D5D6C6C4A5AD807F8 +495BD803FE01075B2701FFC03F5B6C90B65A013F4AC7FC6D14F8010314C09026007FF8C8 +FC344F79CD43>I<ED0FFF92B512E0020780021F14FC91397FFE03FE903A01FFF0007F49 +01C0EB3F804990C7121F4948EC7FC0494814FF49484913E049485B01FF5C485BA2485B5A +A2486F13C04A6D1380486F1300177E94C7FC5AA291CAFC5AA21508913801FFF8020713FF +B54814C04A14F04AC66C7E023C6D7E4A6D7E4A6D7E7013804A15C0A24A15E07013F05C18 +F8A491C714FCA37EA67EA46C17F880A27E18F06C5D18E06C6D15C07E6E4913806C6D1500 +6D6C495A6D6CEB7FFC6DB448485A6D90B55A010315C0010092C7FC023F13FC020713C036 +4F7ACD43>I<121F7F7FEBFF8091B81280A45A1900606060A2606060485F0180C86CC7FC +007EC95A4C5A007C4B5A5F4C5A160F4C5A484B5A4C5A94C8FC16FEC812014B5A5E4B5A15 +0F4B5AA24B5AA24B5A15FFA24A90C9FCA25C5D1407A2140FA25D141FA2143FA4147F5DA3 +14FFA55BAC6D5BA2EC3FC06E5A395279D043>I<913807FFC0027F13FC0103B67E010F15 +E090261FFC0113F8903A3FE0003FFCD97F80EB0FFE49C76C7E48488048486E1380000717 +C04980120F18E0177FA2121F7FA27F7F6E14FF02E015C014F802FE4913806C7FDBC00313 +009238F007FE6C02F85B9238FE1FF86C9138FFBFF06CEDFFE017806C4BC7FC6D806D8101 +0F15E06D81010115FC010781011F81491680EBFFE748018115C048D9007F14E04848011F +14F048487F48481303030014F8484880161F4848020713FC1601824848157F173FA2171F +A2170FA218F8A27F007F17F06D151FA26C6CED3FE0001F17C06D157F6C6CEDFF806C6C6C +010313006C01E0EB0FFE6C01FCEBFFFC6C6CB612F06D5D010F1580010102FCC7FCD9000F +13C0364F7ACD43>I<91B5FC010F14F8017F14FF90B712C00003D9C00F7F2707FC00017F +D80FE06D7F48486E7E48C87FD87FE06E7E7F7F486C1680A66C5A18006C485C6C5AC9485A +5F4B5B4B5B4B5B4B5B4B90C7FC16FC4B5A4B5A16C04B5A93C8FC4A5A5D14035D5D14075D +A25D140FA25DAB91CAFCAAEC1FC04A7EECFFF8497FA2497FA76D5BA26D5BEC3FE06E5A31 +5479D340>63 D<171F4D7E4D7EA24D7EA34C7FA24C7FA34C7FA34C7FA24C7FA34C808304 +7F80167E8304FE804C7E03018116F8830303814C7E03078116E083030F814C7E031F8116 +8083033F8293C77E4B82157E8403FE824B800201835D840203834B800207835D844AB87E +A24A83A3DA3F80C88092C97E4A84A2027E8202FE844A82010185A24A820103854A820107 +85A24A82010F855C011F717FEBFFFCB600F8020FB712E0A55B547BD366>65 +D<BA12C019FEF1FFC01AF01AFCD8000701F0C7000313FFDE007F7F737F070F7F737F8785 +87858785A287A84F5BA263616361634F5B4F5B077F90C7FC4E485A060713F892B812E097 +C8FC861AF003F0C7000313FE9539003FFF80070F13E0737F07017F87737F747E1C807413 +C0A27413E0A31CF0A386A362A31CE0A2621CC0A250138097B5FC1C004F5B19074F5B073F +13F04EB55ABC128098C7FC1AF81AC007F8C8FC54527CD160>I<932601FFFCEC01C0047F +D9FFC013030307B600F81307033F03FE131F92B8EA803F0203DAE003EBC07F020F01FCC7 +383FF0FF023F01E0EC0FF94A01800203B5FC494848C9FC4901F882494982494982494982 +4949824990CA7E494883A2484983485B1B7F485B481A3FA24849181FA3485B1B0FA25AA2 +98C7FC5CA2B5FCAE7EA280A2F307C07EA36C7FA21B0F6C6D1980A26C1A1F6C7F1C006C6D +606C6D187EA26D6C606D6D4C5A6D6D16036D6D4C5A6D6D4C5A6D01FC4C5A6D6DEE7F806D +6C6C6C4BC7FC6E01E0EC07FE020F01FEEC1FF80203903AFFE001FFF0020091B612C0033F +93C8FC030715FCDB007F14E0040101FCC9FC525479D261>I<BA7E19FCF1FF801AF01AFC +D8000701F0C7000F13FF060014C0071F7F070713F807017F737F747E747F747F86747F74 +7F8886888688A2757EA31D8087A21DC0A51DE0A387A963A31DC0A51D80A2631D00A3515A +A2646264505B6264505B505B5090C7FCF2FFFE4F5B07075B071F5B96B512C0060F91C8FC +BB5A1AF01AC007FCC9FC19805B527CD167>I<BB12FEA5D8000701F8C700077FF0007F19 +1F190785858586861B80A21A1FA31A0FA41BC006F81307A497C7FCA31701A31703170717 +0F177F92B6FCA59238F8007F170F170717031701A31700A795C9FCB3B812F8A54A517CD0 +55>70 D<932601FFFCEC01C0047FD9FFC013030307B600F81307033F03FE131F92B8EA80 +3F0203DAE003EBC07F020F01FCC7383FF0FF023F01E0EC0FF94A01800203B5FC494848C9 +FC4901F8824949824949824949824949824990CA7E494883A2484983485B1B7F485B481A +3FA24849181FA3485B1B0FA25AA298C8FC5CA2B5FCAE6C057FB712E0A280A36C94C7003F +EBC000A36C7FA36C7FA27E6C7FA26C7F6C7FA26D7E6D7F6D7F6D6D5E6D7F6D01FC93B5FC +6D13FF6D6C6D5C6E01F0EC07FB020F01FEEC1FF10203903AFFF001FFE0020091B6EAC07F +033FEE001F030703FC1307DB007F02E01301040149CAFC5B5479D26A>I<B812C0A5D800 +0701F8C7FCB3B3B3B2B812C0A52A527CD132>73 D<B812F8A5D8000701F8CAFCB3B3A91A +7CA41AFC1AF8A51901A31903A219071AF0190FA2191F193F197F19FF180360183F4DB5FC +BB12E0A546527CD151>76 D<93380FFFC00303B6FC031F15E092B712FC0203D9FC0013FF +020F01C0010F13C0023F90C7000313F0DA7FFC02007F494848ED7FFE4901E0ED1FFF4949 +6F7F49496F7F4990C96C7F49854948707F4948707FA24849717E48864A83481B804A8348 +1BC0A2481BE04A83A2481BF0A348497113F8A5B51AFCAF6C1BF86E5FA46C1BF0A26E5F6C +1BE0A36C6D4D13C0A26C6D4D1380A26C1B006C6D4D5A6E5E6C626D6C4C5B6D6D4B5B6D6D +4B5B6D6D4B5B6D6D4B5B6D6D4B90C7FC6D6D4B5A6D01FF02035B023F01E0011F13F0020F +01FC90B512C0020390B7C8FC020016FC031F15E0030392C9FCDB001F13E0565479D265> +79 D<BAFC19F819FF1AE086D8000701F0C7001F13FC060113FF726C13807313C0070F13 +E01BF0857313F81BFCA27313FEA41BFFA81BFEA31BFC61A21BF84F13F04F13E0614F13C0 +4F13004E485A061F5B92B812F01AC04FC7FC19E003F8CBFCB3AEB812C0A550527CD15C> +I<B912F0F0FF8019F819FF1AC0D8000701F0C714F0060F7F060113FE727F737F737F8573 +7F87A2737FA387A863A2616363A24F5B4F5B4F90C8FC4F5A06035B060F13F095B512C092 +B8C9FC19F819E019F89226F0000313FE9439007FFF80727F727F727F727F727F8684A286 +84A787A71D1C75133EA38575137E73157C7513FC731401B86C6D9038F803F807039038FE +07F07390B512E0736C14C0080F1400CEEA7FFC5F537CD164>82 D<91260FFF80130791B5 +00F85B010702FF5B011FEDC03F49EDF07F9026FFFC006D5A4801E0EB0FFD4801800101B5 +FC4848C87E48488149150F001F824981123F4981007F82A28412FF84A27FA26D82A27F7F +6D93C7FC14C06C13F014FF15F86CECFF8016FC6CEDFFC017F06C16FC6C16FF6C17C06C83 +6C836D826D82010F821303010082021F16801400030F15C0ED007F040714E01600173F05 +0F13F08383A200788200F882A3187FA27EA219E07EA26CEFFFC0A27F6D4B13806D17006D +5D01FC4B5A01FF4B5A02C04A5A02F8EC7FF0903B1FFFC003FFE0486C90B65AD8FC0393C7 +FC48C66C14FC48010F14F048D9007F90C8FC3C5479D24B>I<B800C00103B612FCA5D800 +0701F8CAEBF000F31F80B3B3B11B3FA26D97C7FC81637F1B7E6D6D17FE505A6E7E505A6E +6D15076E4D5A6E6D4B5A6E6D4B5A6E01F84B5A6E6DDA03FFC8FC6E6CB46CEB0FFE6F9039 +F001FFF8030F90B65A030316C0DB007F92C9FC040F14F8DC007F13805E537CD167>85 +D<B700FC017FB600FE91B612F0A5D8003F01C0C8001F01E0C9EBF8006F71EE0FC06D7161 +876F1C1F6D7196C7FC6F8373606D1E3E6F836D7160876F1CFC6D666F4B801F016D66704A +806E525A88704A17076E059F5F70021F80080F160F6E6570023F806EDC3E074CC8FC8870 +027E5F6EDC7C03163E7002FC804F6C167E6E1C7C700101814F6C16FC6E745B7001031701 +6E4C6D5D060716C00580496D14036F63DDC00F16E04F6D14076F07F05BDDE01F170F6F92 +C76C5D1DF8DDF03E6E141F6F98C9FCDDF87E16FC067C6E5C6FF1FE3EDDFCFC177E6F4A6E +147C1DFFDDFFF06E14FC6F62A24E816F62A270496F5BA24E817061A295C97E7061A27048 +7090CAFCA37048705AA24D1601040360A27048705A84537DD18B>87 +D<EC7FFF0107B512F0013F14FE90B77E48D9E00F7F2703FE000113F0486C6D7F6EEB3FFC +48826E131F83707FA36C496D7FA26C90C7FC6C5AC9FCA6037FB5FC020FB6FC91B7FC0107 +1487013FEBF0074913803901FFFC004813F0485B485B485B4890C7FC5A5BA2485AA45EA2 +6D5C007F151D163D6C6C02797F6C6D01F113F86C9026C003E1EBFFE06C9026F81FC014F0 +6C90B5487EC6ED001F011F01FC010713E0010101E090C8FC3C387CB641>97 +D<EB3FF0B5FCA51203C6FCB3A4923801FFE0030F13FE033FEBFFC092B612F002F301017F +913AF7F8003FFEDAFFE0EB0FFF03806D7F92C76C7F4A6E7F4A824A6E7FA2727EA285A285 +84A31A80AC1A00A44E5AA36118FF616E4A5BA26E4A5B6E4A5B6F495BDACFC04990C7FCDA +87F0EB7FFC913A03FE03FFF849C6B612E0496D148049011F01FCC8FC90C7000313C04154 +7BD24B>I<913801FFF8021FEBFF8091B612F0010315FC010F9038C00FFE903A1FFE0001 +FFD97FFC491380D9FFF05B4817C048495B5C5A485BA2486F138091C7FC486F1300705A48 +92C8FC5BA312FFAD127F7FA27EA2EF03E06C7F17076C6D15C07E6E140F6CEE1F806C6DEC +3F006C6D147ED97FFE5C6D6CEB03F8010F9038E01FF0010390B55A01001580023F49C7FC +020113E033387CB63C>I<4DB47E0407B5FCA5EE001F1707B3A4913801FFE0021F13FC91 +B6FC010315C7010F9038E03FE74990380007F7D97FFC0101B5FC49487F4849143F484980 +485B83485B5A91C8FC5AA3485AA412FFAC127FA36C7EA37EA26C7F5F6C6D5C7E6C6D5C6C +6D49B5FC6D6C4914E0D93FFED90FEFEBFF80903A0FFFC07FCF6D90B5128F0101ECFE0FD9 +003F13F8020301C049C7FC41547CD24B>I<913803FFC0023F13FC49B6FC010715C04901 +817F903A3FFC007FF849486D7E49486D7E4849130F48496D7E48178048497F18C0488191 +C7FC4817E0A248815B18F0A212FFA490B8FCA318E049CAFCA6127FA27F7EA218E06CEE01 +F06E14037E6C6DEC07E0A26C6DEC0FC06C6D141F6C6DEC3F806D6CECFF00D91FFEEB03FE +903A0FFFC03FF8010390B55A010015C0021F49C7FC020113F034387CB63D>I<ED3FFC02 +03B5FC020F14C0023F14E09139FFF81FF0499038C03FF849EB807F49903800FFFC495A49 +5AA2495AA2EE7FF8495AEE3FF0EE0FC093C7FCAEB712E0A526007FF8C8FCB3B3A7007FB5 +12FEA52E547CD329>I<DA3FFF14FF0103B5D8F00713C0010FDAFC1F13E0013FECFF7F90 +267FFC0F9038FF9FF09026FFE001EBF83F48496C13E0484990387FF01F4890C7D83FF813 +E0489338FC0FC0F0078048486E6CC7FCA2003F82A9001F5EA26C6C4A5AA26C5E6C6D495A +6C6D495A6C6D485BDAFC0F5B4890B6C8FCD803EF14FC01C314F02607C03F90C9FC91CBFC +A2120FA37FA213F813FE90B7FC6C16F817FF18C06C836C836C836D828448B9FC12074848 +C700031480D81FF8EC003F4848150748486F13C083485A83A56D5D007F18806D5D003F18 +006C6C4B5AD80FFEED1FFC6C6C6CEC7FF86C01E049485A6C01FE011F5B6C6CB71280010F +03FCC7FC010115E0D9000F01FCC8FC3C4F7CB543>I<EB3FF0B5FCA51203C6FCB3A4EE1F +FC93B512C0030314F0030F8092391FE07FFC92393F001FFE037C8003F07FDAF1E081ECF3 +C0DAF7807F8502FFC7FC5CA25CA45CB3ACB6D8F807B612C0A542537BD24B>I<137F497E +000313E0487FA2487FA76C5BA26C5BC613806DC7FC90C8FCADEB3FF0B5FCA512017EB3B3 +A6B612E0A51B547BD325>I<EB3FF0B5FCA51203C6FCB3A54CB512F8A59339003FFE00EF +1FF0EF3FC04D5A4DC7FCEE03FEEE07F84C5A4C5AEE7FC04CC8FC4B5A4B5AED0FF8ED1FE0 +4B7E4B7EECF1FF02F37F02F77F91B6FC83159F030F7F02FE80DAF8077F4A7E6F7F6F7F83 +707E82707F84707F707F82707F84707F177F717E4D13C0B6D8F003B6FCA540537CD247> +107 D<EB3FF0B5FCA512017EB3B3B3B1B612F0A51C537BD225>I<D93FF0D91FFCEDFFE0 +B591B500C0010713FE030302F0011F6D7E030F6E017F8092271FE07FFCD9FF037F922A3F +001FFE01F8007F0003027C9126FF03E080C602F06DD90780137FDAF1E0038FC77FDAF3C0 +159EDAF7806D01BC143F07FC8102FFC75C4A5EA24A5EA44A5EB3ACB6D8F807B6D8C03FB5 +12FEA567367BB570>I<D93FF0EB1FFCB591B512C0030314F0030F8092391FE07FFC9239 +3F001FFE0003027C80C602F07FDAF1E081ECF3C0DAF7807F8502FFC7FC5CA25CA45CB3AC +B6D8F807B612C0A542367BB54B>I<913801FFE0021F13FE91B612C0010315F0010F9038 +807FFC903A1FFC000FFED97FF86D6C7E49486D7F48496D7F48496D7F4A147F48834890C8 +6C7EA24883A248486F7EA3007F1880A400FF18C0AC007F1880A3003F18006D5DA26C5FA2 +6C5F6E147F6C5F6C6D4A5A6C6D495B6C6D495B6D6C495BD93FFE011F90C7FC903A0FFF80 +7FFC6D90B55A010015C0023F91C8FC020113E03A387CB643>I<903A3FF001FFE0B5010F +13FE033FEBFFC092B612F002F301017F913AF7F8007FFE0003D9FFE0EB1FFFC602806D7F +92C76C7F4A824A6E7F4A6E7FA2717FA285187F85A4721380AC1A0060A36118FFA2615F61 +6E4A5BA26E4A5B6E4A5B6F495B6F4990C7FC03F0EBFFFC9126FBFE075B02F8B612E06F14 +80031F01FCC8FC030313C092CBFCB1B612F8A5414D7BB54B>I<90397FE003FEB590380F +FF80033F13E04B13F09238FE1FF89139E1F83FFC0003D9E3E013FEC6ECC07FECE78014EF +150014EE02FEEB3FFC5CEE1FF8EE0FF04A90C7FCA55CB3AAB612FCA52F367CB537>114 +D<903903FFF00F013FEBFE1F90B7FC120348EB003FD80FF81307D81FE0130148487F4980 +127F90C87EA24881A27FA27F01F091C7FC13FCEBFFC06C13FF15F86C14FF16C06C15F06C +816C816C81C681013F1580010F15C01300020714E0EC003F030713F015010078EC007F00 +F8153F161F7E160FA27E17E07E6D141F17C07F6DEC3F8001F8EC7F0001FEEB01FE9039FF +C00FFC6DB55AD8FC1F14E0D8F807148048C601F8C7FC2C387CB635>I<143EA6147EA414 +FEA21301A313031307A2130F131F133F13FF5A000F90B6FCB8FCA426003FFEC8FCB3A9EE +07C0AB011FEC0F8080A26DEC1F0015806DEBC03E6DEBF0FC6DEBFFF86D6C5B021F5B0203 +13802A4D7ECB34>I<D93FF8913801FFC0B50207B5FCA50003ED001FC61607B3AE5FA35F +A2017F5D173B177B6D6C14F3DC01E313F06D6CD907C3EBFFC0903A0FFFC03F836D90B512 +03010114FE6D6C13F8020701E091C7FC42377BB54B>I<B600F00107B5FCA5000101F8C8 +EA7FE06C6DED3F00A2017F163E6E157E013F167C6E15FC6D5E6F13016D5E8117036D5E6F +13076D5E6F130F6D5E6F131F6D93C7FC815F6E6C133E177E023F147C6F13FC6E5C16816E +5C16C3A26EEBE3E016E76E5C16FF6E5CA26E91C8FCA26F5AA36F5AA26F5AA26F5AA26F5A +6F5A40367DB447>I<B6D8E07FB5D8C003B512C0A5000101F0C701F0C7381FF8006E027F +ED07E06C715DA26E023F150F017F705DA26E181F013F4B6C92C7FC6E606D70143E94B5FC +6F177E6D4A6E137C03C001F315FC6D715B160303E001E114016D020702E05B03F013C06D +71485A160F03F8D9807F13076D05F85B93381F003F03FC160F027F4902FC5BDBFE3E011F +131F023F04FE90C8FC167EDBFF7C010F5B6E01FCECFF3E4C6D137E6E5FA24C7F6E5F4C7F +6E5FA24C7F6E5F4C147FA26E5F93C8123F6F5EA2033E6FC9FC5A367DB461>I<007FB500 +F090387FFFFEA5C66C48C7000F90C7FC6D6CEC07F86D6D5C6D6D495A6D4B5A6F495A6D6D +91C8FC6D6D137E6D6D5B91387FFE014C5A6E6C485A6EEB8FE06EEBCFC06EEBFF806E91C9 +FCA26E5B6E5B6F7E6F7EA26F7F834B7F4B7F92B5FCDA01FD7F03F87F4A486C7E4A486C7E +020F7FDA1FC0804A486C7F4A486C7F02FE6D7F4A6D7F495A49486D7F01076F7E49486E7E +49486E7FEBFFF0B500FE49B612C0A542357EB447>I<B600F00107B5FCA5C601F8C8EA7F +E06EED3F00A26D6C153E187E013F167C6E15FC6D5E6F13016D5E6F13036D5E8117076D6D +5C170F6D6D5C171F6D93C7FC6F5B027F143E6F137E023F147C6F13FCA26E6D5A16816EEB +C1F016C36E5C16E76E5C16FF6E5CA26E91C8FCA36F5AA26F5AA26F5AA26F5AA26F5AA35E +150F5E151F93C9FC5DD81FC0133E486C137E486C137C486C13FC5D14015D14034A5A6C48 +485A49485A263FC07FCAFCEB81FE6CB45A6C13F000035BC690CBFC404D7DB447>I +E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fn cmr10 10.95 84 +/Fn 84 125 df<4AB4EB0FE0021F9038E03FFC913A7F00F8FC1ED901FC90383FF03FD907 +F090397FE07F80494801FF13FF4948485BD93F805C137F0200ED7F00EF003E01FE6D91C7 +FC82ADB97EA3C648C76CC8FCB3AE486C4A7E007FD9FC3FEBFF80A339407FBF35>11 +D<4AB4FC021F13C091387F01F0903901FC0078D907F0131C4948133E494813FF49485A13 +7F1400A213FE6F5A163893C7FCAA167FB8FCA33900FE00018182B3AC486CECFF80007FD9 +FC3F13FEA32F407FBF33>I<4AB47E021F13F791387F00FFEB01F8903807F001EB0FE0EB +1FC0EB3F80137F14008101FE80AEB8FCA3C648C77EB3AE486CECFF80007FD9FC3F13FEA3 +2F407FBF33>I<4AB4ECFF80021FD9C00F13E0913B7F01F03F80F8903C01F80078FE003C +D907F0D93FF8130E49484948131F49484948EB7F804948484913FF137F02005CA201FE92 +C7FC6FED7F0070141C96C7FCAAF13F80BBFCA3C648C76CC7FC197F193FB3AC486C4A6CEB +7FC0007FD9FC3FD9FE1FB5FCA348407FBF4C>I<EA01FC127FA3120712031201B3AC487E +B512F0A314287DA71A>16 D<133E133F137F13FFA2EA01FEEA03FCEA07F813F0EA0FE0EA +1FC01380EA3E005A5A1270122010116EBE2D>19 D<006013060078131E00FC133F003F13 +FC381F81F8380FE7F03803FFC06C13806C1300133C1318180B76B92D>I<121EEA7F80EA +FFC0A9EA7F80ACEA3F00AC121EAB120CC7FCA8121EEA7F80A2EAFFC0A4EA7F80A2EA1E00 +0A4179C019>33 D<001E130F397F803FC000FF137F01C013E0A201E013F0A3007F133F39 +1E600F3000001300A401E01370491360A3000114E04913C0000313010100138048130300 +0EEB070048130E0018130C0038131C003013181C1C7DBE2D>I<14E0A4EB07FC90383FFF +8090B512E03901F8E3F03903E0E0FCD807C0133CD80F807FD81F007F003E80003C158000 +7C140316C00078141F00F8143F157FA47EED3F806CEC0E0092C7FC127F138013C0EA3FF0 +13FEEA1FFF6C13FC6C13FF6C14C06C806C6C13F8011F7F130301007FECE7FF14E102E013 +80157F153FED1FC0A2003E140F127FD8FF801307A5130000FC158000F0140F1270007815 +005D6C141E153E6C5C6C5C3907C0E1F03903F8EFE0C6B51280D93FFEC7FCEB0FF8EB00E0 +A422497BC32D>36 D<121EEA7F8012FF13C0A213E0A3127FEA1E601200A413E013C0A312 +011380120313005A120E5A1218123812300B1C79BE19>39 D<1430147014E0EB01C0EB03 +801307EB0F00131E133E133C5B13F85B12015B1203A2485AA2120F5BA2121F90C7FCA25A +A3123E127EA6127C12FCB2127C127EA6123E123FA37EA27F120FA27F1207A26C7EA21201 +7F12007F13787F133E131E7FEB07801303EB01C0EB00E014701430145A77C323>I<12C0 +7E12707E7E121E7E6C7E7F12036C7E7F12007F1378137CA27FA2133F7FA21480130FA214 +C0A3130714E0A6130314F0B214E01307A614C0130FA31480A2131F1400A25B133EA25BA2 +137813F85B12015B485A12075B48C7FC121E121C5A5A5A5A145A7BC323>I<EB03C0A280 +5CA600F0140F00FC143F00FE147F00FF14FF393FC3C3FC390FE187F03903F18FC03900FD +BF00EB3FFCEB0FF0EB03C0EB0FF0EB3FFCEBFDBF3903F18FC0390FE187F0393FC3C3FC39 +FF03C0FF00FE147F00FC143F00F0140F00001400A6805CA220277AC32D>I<121EEA7F80 +12FF13C0A213E0A3127FEA1E601200A413E013C0A312011380120313005A120E5A121812 +3812300B1C798919>44 D<B512FEA617067F961E>I<121EEA7F80A2EAFFC0A4EA7F80A2 +EA1E000A0A798919>I<ED0180ED03C01507A21680150FA216005DA2151E153EA2153C15 +7CA2157815F8A25D1401A25D1403A25D1407A25D140FA24AC7FCA2141E143EA2143C147C +A2147814F8A25C1301A25C1303A25C1307A25C130FA291C8FC5BA2131E133EA25BA21378 +13F8A25B1201A25B1203A25B1207A25B120FA290C9FC5AA2121E123EA2123C127CA21278 +12F8A25A1260225B7BC32D>I<EB01FE90380FFFC090383F03F090387C00F849137C4848 +7F48487F4848EB0F80A2000F15C04848EB07E0A3003F15F0A290C712034815F8A64815FC +B3A26C15F8A56C6CEB07F0A3001F15E0A36C6CEB0FC0A26C6CEB1F80000315006C6C133E +6C6C5B017C5B90383F03F090380FFFC0D901FEC7FC263F7DBC2D>I<EB01C01303130713 +1F137FEA07FFB5FC139FEAF81F1200B3B3ACEB7FF0B612F8A31D3D78BC2D>I<EB07FC90 +383FFF8090B512E03903F01FF83907C007FC390F0001FE001E6D7E001C1580003CEC7FC0 +5AED3FE01270B4FC6DEB1FF07FA56C5A6CC7FC120CC813E0153FA216C0157F168015FF16 +004A5A5D4A5A4A5A5D4A5A4A5A4AC7FC147E147C5C495A495A495A495A49C71270133E13 +3C5B4914E0485A485A485A48C7120148B6FCA25A4815C0B7FCA3243D7CBC2D>I<EB07FC +90383FFF809038F80FE03901E003F839078001FCD80F007F000E6D7E001E1580D81F8013 +7F486C14C07FA27F5BA2121F6C5AC8138015FF1600A24A5AA24A5A5DEC07E04A5A023FC7 +FCEB1FFCECFF809038000FE0EC07F86E7E6E7E6E7E1680ED7FC0A216E0153FA216F0A212 +0C123F487E487EA316E0A249137F6CC713C01278EDFF807E6C4913006C495A3907C007FC +3903F80FF0C6B55A013F1380D907F8C7FC243F7CBC2D>I<150E151E153EA2157EA215FE +1401A21403EC077E1406140E141CA214381470A214E0EB01C0A2EB0380EB0700A2130E5B +A25B5BA25B5B1201485A90C7FC5A120E120C121C5AA25A5AB8FCA3C8EAFE00AC4A7E49B6 +FCA3283E7EBD2D>I<00061403D80780131F01F813FE90B5FC5D5D5D15C092C7FC14FCEB +3FE090C9FCACEB01FE90380FFF8090383E03E090387001F8496C7E49137E497F90C71380 +0006141FC813C0A216E0150FA316F0A3120C127F7F12FFA416E090C7121F12FC007015C0 +12780038EC3F80123C6CEC7F00001F14FE6C6C485A6C6C485A3903F80FE0C6B55A013F90 +C7FCEB07F8243F7CBC2D>I<EC1FE0ECFFF8903803F03E90380FC00F90391F000780133E +017EEB1FC049133F4848137F12035B12074848EB3F80ED1F00001F91C7FC5BA2123FA348 +5AA214FE903887FF8039FF8F07E090389C01F09038B800FC01B0137E13F0497F16804914 +C0A2ED1FE0A34914F0A5127FA6123F6D14E0A2121FED3FC0A26C6C1480A20007EC7F006C +6C137E6C6C5B6C6C485A90387E07F06DB45A010F1380D903FCC7FC243F7CBC2D>I<1238 +123C123F90B612FCA316F85A16F016E00078C712010070EC03C0ED078016005D48141E15 +1C153C5DC8127015F04A5A5D14034A5A92C7FC5C141EA25CA2147C147814F8A213015C13 +03A31307A3130F5CA2131FA6133FAA6D5A0107C8FC26407BBD2D>I<EB03FC90381FFF80 +90387C07E09038F001F83901E0007C48487F48487F48C7FCED0F80121E16C0003E1407A4 +123FA26DEB0F807F6C6C131F6D140001FC133E6C6C5B9038FF80786C6D5A6CEBF3E06CEB +FF806C91C7FC133F6D13C06D7F013F13F801787F48486C7E3903E01FFF48486C1380260F +800313C048487E489038007FE0003E143F007E141F007CEC0FF01507481403A31501A46C +15E0007C1403A2007E15C06C14076CEC0F806DEB1F006C6C133ED807F05B3901FC03F86C +B512E0011F1380D903FCC7FC243F7CBC2D>I<EB03FCEB1FFF90387E07C09038FC03F048 +486C7E48486C7E4848137C000F147E4848137F81003F15805B007F15C0A2151F12FF16E0 +A516F0A5127F153FA36C7EA2001F147F120F6C6C13FF6D13DF000313013900F8039F9038 +7E0F1FD91FFE13E0EB07F090C7FCA2ED3FC0A41680157FD80F801400487E486C13FEA24A +5A5D49485AEB8007391E000FE0001F495A260FC07FC7FC3803FFFE6C13F838003FC0243F +7CBC2D>I<121EEA7F80A2EAFFC0A4EA7F80A2EA1E00C7FCB3121EEA7F80A2EAFFC0A4EA +7F80A2EA1E000A2779A619>I<007FB912E0BA12F0A26C18E0CDFCAE007FB912E0BA12F0 +A26C18E03C167BA147>61 D<EB1FF890B5FC3903E01FC0390F0007F0001EEB03F848EB01 +FC4814FE140000FE14FF7E7FA46CC7FC123EC7EA01FEA2EC03FCEC07F815F0EC0FC0EC1F +80EC3F00143E5C147814F85C13015CA2495AA25CAB91C7FC90C8FCA8EB0780EB1FE0A249 +7EA46D5AA2EB078020407BBF2B>63 D<15074B7EA34B7EA34B7EA34B7EA34B7E15E7A291 +3801C7FC15C3A291380381FEA34AC67EA3020E6D7EA34A6D7EA34A6D7EA34A6D7EA34A6D +7EA349486D7E91B6FCA249819138800001A249C87EA24982010E157FA2011E82011C153F +A2013C820138151FA2017882170F13FC00034C7ED80FFF4B7EB500F0010FB512F8A33D41 +7DC044>65 D<B712FCEEFF8017F00001903980000FF86C6CC7EA03FE707E701380EF7FC0 +EF3FE0A2EF1FF0A218F8A3170F171FA318F0A2EF3FE0177F18C0EFFF804C1300EE03FCEE +0FF8EE7FE091B6C7FC17E091C7EA07FCEE01FE933800FF80EF7FC0EF3FE0EF1FF018F817 +0F18FC1707A218FEA718FC170FA2EF1FF818F0173FEF7FE0EFFFC00403138048486C9038 +0FFE00B85A17E094C7FC373E7DBD40>I<DB3FF01306912603FFFE130E020F9038FF801E +913A3FF007E03E9139FF8000F8D903FEC7EA7C7ED907F8EC1EFE4948140FD93FE0140749 +481403495A91C812014848150012034848167E5B000F173EA24848161EA2123F5B180E12 +7FA349160012FFAC127F7F180EA2123FA27F001F171E181C6C7EA20007173C6D16386C6C +1678000117706C6C16F06EEC01E06D6C15C06D6C1403D90FF0EC07806D6CEC1F00D903FE +143E902600FF8013F891393FF007F0020FB512C0020391C7FC9138003FF037427BBF42> +I<B712FCEEFF8017E000019039C0001FF86C6C48EB03FEEE00FF717E717EEF0FE084717E +717E170184717EA21980187F19C0A3F03FE0A519F0AB19E0A5F07FC0A21980A218FF1900 +4D5AA24D5A6017074D5A4D5AEF7FC04DC7FCEE03FE48486CEB1FF8B85A178004FCC8FC3C +3E7DBD45>I<B912E0A300019038C000016C6C48EB001FEF0FF01703A217011700A31870 +A41838161CA41800A2163CA2167C16FC150391B5FCA3EC80031500167C163CA2161CA218 +07A3180E93C7FCA4181E181CA2183CA2187CA218F8170117031707171F48486CEB01FFB9 +12F0A3383E7DBD3E>I<B91280A300019038C000036C6C48EB007FEF1FC0170F1707A217 +03A31701A4EF00E0A21638A31800A31678A216F81501150791B5FCA3EC80071501150016 +78A21638A693C8FCAF3801FFE0B612F0A3333E7DBD3B>I<DB3FE0130C912603FFFE131C +021F9038FF803C913A7FF00FC07C9139FF0001F0D903FC90380078FC4948143DD91FE014 +1F4948140F4948140701FF15034890C8FC491501485A000716005B000F177C5B001F173C +A2485AA2181C127FA25B95C7FC12FFAB041FB512F0127FA26D9139000FFE00EF03FC123F +A27F121FA26C7EA212077F12036C7E7F6C7F6D6C14076D7E6D6C140FD907F8141ED903FE +EC3C7C902600FF80EBF83C913A7FF007F01C021FB5EAC00C020391C8FC9138003FF03C42 +7BBF47>I<B6D8C01FB512F8A3000101E0C7383FFC0026007F80EC0FF0B3A691B7FCA302 +80C7120FB3A92601FFE0EC3FFCB6D8C01FB512F8A33D3E7DBD44>I<B612F0A3C6EBF000 +EB3FC0B3B3B2EBFFF0B612F0A31C3E7EBD21>I<B600C090387FFFFCA3000101E0C7000F +138026007F80913807FE0018F818E0604D5A4DC7FC173E5F5F4C5A4C5A4C5A4C5A4CC8FC +163E5E5E4B5A4B5AED07804B7E151F4B7E4B7E15FF913881EFF8913883C7FCEC87879138 +8F03FE91389E01FF14BCDAF8007F4A6D7E5C4A6D7E4A6D7EA2707E707EA2707E707EA270 +7F717E84173F717E717EA2717E848419802601FFE04A13C0B600C090B6FCA3403E7DBD47 +>75 D<B612F8A3000101E0C9FC38007F80B3B0EF0380A517071800A45FA35FA25F5F5F4C +5A160748486C133FB8FCA3313E7DBD39>I<B500C093383FFFF0A300016D93387FF800D8 +007F18E0D977F016EFA3D973F8ED01CFA2D971FCED038FA3D970FEED070FA26E150E80A2 +6E6C141CA36E6C1438A26E6C1470A36E6C14E0A26E6CEB01C0A36E6CEB0380A36E6CEB07 +00A2037F130EA36F6C5AA26F6C5AA36F6C5AA25FED07F0A2923803F9C0A36FB45AA26F90 +C7FCA213F8486C147ED807FFEF3FF8B500F8013C011FB512F0A34C3E7DBD53>I<B56C91 +B512F88080D8007F030713006EEC01FC6E6E5A1870EB77FCEB73FEA2EB71FF01707FA26E +7E6E7EA26E7E6E7EA26E7E6E7EA26E7E6E7FA26F7E6F7EA26F7E6F7EA26F7E6F7EA26F7E +6F1380A2EE7FC0EE3FE0A2EE1FF0EE0FF8A2EE07FCEE03FEA2EE01FF7013F0A2177F173F +A2171F170FA2170701F81503487ED807FF1501B500F81400A218703D3E7DBD44>I<ED7F +E0913807FFFE91391FC03F8091397E0007E04948EB03F8D907F0EB00FE4948147F49486E +7E49486E7E49C86C7E01FE6F7E00018349150300038348486F7EA248486F7EA2001F1880 +49167F003F18C0A3007F18E049163FA300FF18F0AC007F18E06D167FA4003F18C0A26C6C +EEFF80A36C6C4B1300A26C6C4B5A00035F6D150700015F6C6C4B5A6D5E6D6C4A5A6D6C4A +5A6D6C4AC7FC6D6C14FED901FCEB03F8D9007FEB0FE091391FC03F80912607FFFEC8FC91 +38007FE03C427BBF47>I<B712F8EEFF8017E000019039C0003FF86C6C48EB07FCEE01FE +707EEF7F80EF3FC018E0A2EF1FF0A218F8A818F0A2EF3FE0A218C0EF7F80EFFF004C5AEE +07FCEE3FF091B612C04CC7FC0280C9FCB3A73801FFE0B612C0A3353E7DBD3E>I<B712C0 +16FCEEFF800001D9C00013E06C6C48EB1FF0EE07FCEE01FE707E84717EA2717EA284A760 +177F606017FF95C7FCEE01FCEE07F8EE1FE0EEFF8091B500FCC8FC16F091388001FCED00 +3FEE1FC0707E707E83160383160183A383A484A4F0C004190EA28218E0057F131E2601FF +E0161CB600C0EB3FF094381FF83805071370CA3801FFE09438003F803F407DBD43>82 +D<D907FC130C90391FFF801C017FEBF03C3901FC03F83A03F0007E7CD807C0EB1FFC4848 +130F001F140748C71203003E1401007E1400A2007C157C12FCA2163CA36C151CA27EA26C +6C14007F7FEA3FF8EBFF806C13F86CEBFF806C14F06C14FC6C14FF6C15C0013F14E00107 +14F0EB007F020713F89138007FFC150FED07FE15031501ED00FFA200E0157FA3163FA27E +A3163E7E167E6C157C6C15FC6C15F86D13016DEB03F06DEB07E0D8F9FCEB0FC03AF07F80 +3F8090391FFFFE00D8E00713F839C0007FC028427BBF33>I<003FB91280A3903AF0007F +E001018090393FC0003F48C7ED1FC0007E1707127C00781703A300701701A548EF00E0A5 +C81600B3B14B7E4B7E0107B612FEA33B3D7DBC42>I<B600C090B512F8A3000101E0C700 +07130026007F80EC01FC715A1870B3B3A4013F16F06E5DA21701011F5E80010F15036E4A +5A010793C7FC6D6C5C6D6C141E6D6C5C027F14F86E6C485A91390FF00FE00203B5128002 +0049C8FCED1FF03D407DBD44>I<B691380FFFFEA3000301E0020113E06C01809138007F +806CEF3F00017F163E181C6E153C013F1638A26E1578011F1670A26D6C5DA26E14010107 +5EA26E140301035EA26D6C4AC7FCA2806D150EA26F131E027F141CA26F133C023F1438A2 +6E6C5BA26F13F0020F5CA2EDF80102075CA26E6C485AA2EDFE07020191C8FCA26F5A6E13 +0EA2ED7F9CA216DCED3FF8A36F5AA36F5AA26F5AA36F5A3F407EBD44>I<B500FE017FB5 +D88007B5FCA3000301C0010101E0C713F86C90C849EC3FE07148EC0F807E7215006E143F +017F190E84A26D6C60A24D7E6D6C60A2EFE7F86D6C60A2933801C3FC6E18F00107610403 +7F6E0281140101036104077F17006D6C4D5AA2040EEB7F806D6C4DC7FCA24CEB3FC0DA7F +80160EA24CEB1FE003C0161E023F171C047814F0DBE070010F133C021F173804F014F84C +1307DA0FF05EA2DBF1C0EB03FCDA07F95EA2DBFB80EB01FEDA03FF6F5AA293C8FCA26E5F +A24B157F020094C8FCA24B81037C153EA20378151E0338151C58407EBD5D>I<007FB5D8 +C003B512E0A3C649C7EBFC00D93FF8EC3FE06D48EC1F806D6C92C7FC171E6D6C141C6D6C +143C5F6D6C14706D6D13F04C5ADA7FC05B023F13036F485ADA1FF090C8FC020F5BEDF81E +913807FC1C163C6E6C5A913801FF7016F06E5B6F5AA26F7E6F7EA28282153FED3BFEED71 +FF15F103E07F913801C07F0203804B6C7EEC07004A6D7E020E6D7E5C023C6D7E02386D7E +14784A6D7E4A6D7F130149486E7E4A6E7E130749C86C7E496F7E497ED9FFC04A7E00076D +EC7FFFB500FC0103B512FEA33F3E7EBD44>I<B66C0103B51280A3000101F0C8EBF8006C +6C48ED3FC0725A013F041EC7FC6D7E606D6C15386D6C1578606D6C5D6E14016D5E6D6D13 +03606E6C49C8FC6E6C5B170E6E6C131E171C6E6C5B6E6C137817706E6C13F06F5B6E1301 +6EEB83C05FED7FC7DB3FE7C9FC16EFED1FFE5E150F6F5AB3A4ED1FFC020FB512FCA3413E +7FBD44>I<EAFFFCA4EAF000B3B3B3B3ABEAFFFCA40E5B77C319>91 +D<486C13C00003130101001380481303000EEB070048130E0018130C0038131C00301318 +0070133800601330A300E01370481360A400CFEB678039FFC07FE001E013F0A3007F133F +A2003F131F01C013E0390F0007801C1C73BE2D>I<EAFFFCA4EA003CB3B3B3B3ABEAFFFC +A40E5B7FC319>I<EB0FF8EBFFFE3903F01F8039078007E0000F6D7E9038E001F8D81FF0 +7F6E7EA3157F6C5AEA0380C8FCA4EC1FFF0103B5FC90381FF87FEB7F803801FC00EA07F8 +EA0FE0485A485AA248C7FCEE038012FEA315FFA3007F5BEC03BF3B3F80071F8700261FC0 +0E13CF3A07F03C0FFE3A01FFF807FC3A003FC001F0292A7DA82D>97 +D<EA01FC12FFA3120712031201B1EC03FC91381FFF8091387C07E09039FDE001F09039FF +C000FC4A137E91C77E49158049141F17C0EE0FE0A217F0A2160717F8AA17F0A2160FA217 +E0161F17C06D1580EE3F006D5C6E13FE9039F3C001F89039F1E003F09039E0780FC09026 +C03FFFC7FCC7EA07F82D407EBE33>I<49B4FC010F13E090383F00F8017C131E4848131F +4848137F0007ECFF80485A5B121FA24848EB7F00151C007F91C7FCA290C9FC5AAB6C7EA3 +003FEC01C07F001F140316806C6C13076C6C14000003140E6C6C131E6C6C137890383F01 +F090380FFFC0D901FEC7FC222A7DA828>I<ED01FC15FFA3150715031501B114FF010713 +E190381F80F990387E003D49131FD803F81307485A49130348481301121F123F5B127FA2 +90C7FCA25AAA7E7FA2123FA26C7E000F14037F000714076C6C497E6C6C497ED8007C0179 +13F890383F01F190380FFFC1903A01FE01FC002D407DBE33>I<EB01FE90380FFFC09038 +3F03F09038FC01F848486C7E4848137E48487F000F158049131F001F15C04848130FA212 +7F16E090C7FCA25AA290B6FCA290C9FCA67EA27F123F16E06C7E1501000F15C06C6C1303 +6DEB07806C6C1400C66C131E017E5B90381F80F8903807FFE0010090C7FC232A7EA828> +I<EC1FC0EC7FF8903801F83C903807E07E90380FC0FFEB1FC1EB3F811401137FEC00FE01 +FE137C1500AEB6FCA3C648C7FCB3AE487E007F13FFA320407EBF1C>I<167C903903F801 +FF903A1FFF078F8090397E0FDE1F9038F803F83803F001A23B07E000FC0600000F6EC7FC +49137E001F147FA8000F147E6D13FE00075C6C6C485AA23901F803E03903FE0FC026071F +FFC8FCEB03F80006CAFC120EA3120FA27F7F6CB512E015FE6C6E7E6C15E06C810003813A +0FC0001FFC48C7EA01FE003E140048157E825A82A46C5D007C153E007E157E6C5D6C6C49 +5A6C6C495AD803F0EB0FC0D800FE017FC7FC90383FFFFC010313C0293D7EA82D>I<EA01 +FC12FFA3120712031201B1EC01FE913807FFC091381E07E091387803F09138E001F8D9FD +C07F148001FF6D7E91C7FCA25BA25BB3A6486C497EB5D8F87F13FCA32E3F7DBE33>I<EA +01E0EA07F8A2487EA46C5AA2EA01E0C8FCACEA01FC127FA3120712031201B3AC487EB512 +F0A3143E7DBD1A>I<1478EB01FEA2EB03FFA4EB01FEA2EB00781400AC147FEB7FFFA313 +017F147FB3B3A5123E127F38FF807E14FEA214FCEB81F8EA7F01387C03F0381E07C0380F +FF803801FC00185185BD1C>I<EA01FC12FFA3120712031201B292B51280A392383FFC00 +16E0168093C7FC153C5D5D4A5AEC07C04A5A4AC8FC143E147F4A7E13FD9038FFDFC0EC9F +E0140F496C7E01FC7F496C7E1401816E7E81826F7E151F826F7EA282486C14FEB539F07F +FFE0A32B3F7EBE30>I<EA01FC12FFA3120712031201B3B3B1487EB512F8A3153F7DBE1A> +I<2701F801FE14FF00FF902707FFC00313E0913B1E07E00F03F0913B7803F03C01F80007 +903BE001F87000FC2603F9C06D487F000101805C01FBD900FF147F91C75B13FF4992C7FC +A2495CB3A6486C496CECFF80B5D8F87FD9FC3F13FEA347287DA74C>I<3901F801FE00FF +903807FFC091381E07E091387803F000079038E001F82603F9C07F0001138001FB6D7E91 +C7FC13FF5BA25BB3A6486C497EB5D8F87F13FCA32E287DA733>I<14FF010713E090381F +81F890387E007E01F8131F4848EB0F804848EB07C04848EB03E0000F15F04848EB01F8A2 +003F15FCA248C812FEA44815FFA96C15FEA36C6CEB01FCA3001F15F86C6CEB03F0A26C6C +EB07E06C6CEB0FC06C6CEB1F80D8007EEB7E0090383F81FC90380FFFF0010090C7FC282A +7EA82D>I<3901FC03FC00FF90381FFF8091387C0FE09039FDE003F03A03FFC001FC6C49 +6C7E91C7127F49EC3F805BEE1FC017E0A2EE0FF0A3EE07F8AAEE0FF0A4EE1FE0A2EE3FC0 +6D1580EE7F007F6E13FE9138C001F89039FDE007F09039FC780FC0DA3FFFC7FCEC07F891 +C9FCAD487EB512F8A32D3A7EA733>I<02FF131C0107EBC03C90381F80F090397F00387C +01FC131CD803F8130E4848EB0FFC150748481303121F485A1501485AA448C7FCAA6C7EA3 +6C7EA2001F14036C7E15076C6C130F6C7E6C6C133DD8007E137990383F81F190380FFFC1 +903801FE0190C7FCAD4B7E92B512F8A32D3A7DA730>I<3901F807E000FFEB1FF8EC787C +ECE1FE3807F9C100031381EA01FB1401EC00FC01FF1330491300A35BB3A5487EB512FEA3 +1F287EA724>I<90383FC0603901FFF8E03807C03F381F000F003E1307003C1303127C00 +78130112F81400A27E7E7E6D1300EA7FF8EBFFC06C13F86C13FE6C7F6C1480000114C0D8 +003F13E0010313F0EB001FEC0FF800E01303A214017E1400A27E15F07E14016C14E06CEB +03C0903880078039F3E01F0038E0FFFC38C01FE01D2A7DA824>I<131CA6133CA4137CA2 +13FCA2120112031207001FB512C0B6FCA2D801FCC7FCB3A215E0A912009038FE01C0A2EB +7F03013F138090381F8700EB07FEEB01F81B397EB723>I<D801FC14FE00FF147FA30007 +14030003140100011400B3A51501A31503120015076DEB06FF017E010E13806D4913FC90 +381FC078903807FFE00100903880FE002E297DA733>I<B539E00FFFE0A32707FE000313 +006C48EB00FC5E00015D7F00005DA26D13016D5CA26D6C485AA2ECC007011F91C7FCA290 +380FE00EA2ECF01E0107131CA26D6C5AA2ECFC7801011370A2ECFEF001005BA2EC7FC0A3 +6E5AA26EC8FCA3140E2B287EA630>I<B53BC3FFFE03FFF8A3290FFE003FE00013C06C48 +6D48EB3F806C4817006D010F141E00016F131C15076D163C00004A6C1338A2017F5E4B7E +151DD93F805DED3DFC1538D91FC04A5AED78FE9238707E03D90FE0017F5BEDE03F02F014 +0701070387C7FC9138F1C01F02F9148F010315CE9138FB800F02FF14DE6D15FCED00076D +5DA24A1303027E5CA2027C1301023C5C023813003D287EA642>I<B539F01FFFE0A30003 +D9C00F1300C690388007F8D97F0013E002805BD93FC05B011F49C7FC90380FE00EECF01E +6D6C5A01035B6D6C5A6E5AEB00FF6E5A6E5A81141F814A7E81147BECF1FC903801E1FEEC +C0FF01037F49486C7ED90F007F011E6D7E013E130F496D7E01FC80486C80000F4A7EB539 +803FFFF8A32D277FA630>I<B539E00FFFE0A32707FE000313006C48EB01FC6F5A00015D +7F00005DA2017F495AA2EC8003013F5CA26D6C48C7FCA26E5A010F130EA26D6C5AA2ECF8 +3C01031338A26D6C5AA2ECFEF001005BA2EC7FC0A36E5AA36EC8FCA2140EA2141E141C14 +3C1438A2147800181370127EB45BA2495AA248485AD87E07C9FCEA780EEA3C3CEA1FF8EA +07E02B3A7EA630>I<001FB61280A2EBE0000180140049485A001E495A121C4A5A003C49 +5A141F00385C4A5A147F5D4AC7FCC6485AA2495A495A130F5C495A90393FC00380A2EB7F +80EBFF005A5B484813071207491400485A48485BA248485B4848137F00FF495A90B6FCA2 +21277EA628>I<BE12C0A25A0280985B>124 D E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fo cmbx12 20.736 15 +/Fo 15 122 df<C0FCA48BA4C7003F0280C8120FF3007F1C0F1C030A00801D3F89898989 +89A2898B1E7FA21E3FA31E1FA28BA21E0FF207F8A5787EA4080F92C8FCA31A1FA21A3FA2 +1A7FF101FF1907193F94B7FCA8943880003F19071901F1007F1A3FA21A1FA21A0FA2F71F +E01A07A2F73FC0A61F7F97CA1380A41FFFA3541300A366A266671E0FA21E1FA21E3F1E7F +545A65651D0F1D3F9AB5FC1C030A3F5C0907B6FCC0FCA567A373757AF47F>69 +D<922603FFF8150E037FD9FFC0143F0203B600FC5C021F03FF5C027FEEC00149B8EAF003 +49EFFC07010FDA000F13FE4901F09039007FFF8F4901C0020F13DF4990C8000390B5FC49 +4815004801F8163F48844A8248498248844A8248844A834885A291CB7E5A86A286B5FC86 +80A28680A280A26E8380806E187E6E95C7FC6C8015E015FCEDFFC06C15FCEEFFE06C16FF +18F06CEFFF8019F06C18FE737E6C856C19F06C19FC6D846D846D856D856D850101856D85 +023F846E841407020084031F18801500040F17C0EE007F050716E0EF003F1803DE007F14 +F0191F8585070114F8A28586007E85B4FC86A286A37F86A36D1AF0A37F1CE06D60A26D1A +C06D607F6D1A806E5F6E4D13006E606E17FF02FC4C5B02FF4C5B03E04B5B03FC031F5B01 +FBD9FF80027F5B01F102FE0107B55AD9E07F90B8C7FC6E17FCD9C00F5FD9800317E090C7 +6C168048020F4BC8FC48020015F00070030349C9FC557A75F76C>83 +D<001FC012F8A7481FFC03F0C76C91C7120F92C8EF007F02F81B1F02E01B0702801B0191 +C984491D7F491D3F491D1FA2491D0FA2491D07007F1FFEA2491D03A4491D01A700FF1FFF +90CA85A6CB1A00B3B3B3AD4ABC12C0A8787479F387>I<BA057FB71280A8C792CD000F01 +F0C7FC71070013806E5290C8FCA26E6E621F036E6E621F07836E525A836E651F1F6E6E62 +1F3F836E525A836E651FFF6F6E96C9FC666F6E601E03846F505AA26F6E601E0F6F6E601E +1F846F505AA26F6E601E7F6F6E601EFF85704E90CAFCA2706E5E1D03706E5E1D0785704E +5AA2706E5E1D1F706E5E1D3F85704E5A8570611DFF716E92CBFC6486714C5A86715F1C07 +716E5C1C0F86714C5A86714C5AA2716E5C1C7F716E5C1CFF8772028190CCFCA272ECC1FE +1BC372ECE3FC1BE71BF772ECFFF8A2725DA2725DA3725DA2725DA27391CDFCA3735BA273 +5BA2735BA3735BA2735BA2735BA2735B74CEFC89787CF592>86 D<001FB900F091B812FE +A8C7000F02FCCA003F01FCC8FC6E6E050113807196C9FC6E626E6F4C5A6E6F4C5AA26F6E +4C5A6F6E4C5A724C5A816F6E4C5A6F6E4B5B5290CAFC6F806F6F4A5A734A5A6F4E5A7080 +734A5A704D5A706E4A5A7080515B706E4990CBFC706E495A1A80704C5A706F485A716E48 +5AA2716E485A716E485A745B7114FD7191B5CCFC63715D83715D638484878472807280A2 +72807281888473808896B6FC4E814E8188604E81DE1FFB8119F9DE3FF0814E486C80F0FF +C074804D496C804D0100814E7F05076E804D486D804D5A74814D486D814D48834D488075 +804C49834C90C87E4C486F8075804C48844C48814C486F818B4C48814C4870804B497080 +A24B90CA6C804B4871804B4886884B4871804B48874B488376814B4872804A49874A90CC +7E7780027F01F887B800FE0303B912FEA887767BF592>88 D<93387FFF80030FB512FC03 +7FECFF804AB712E0020716F8021F16FE027FD9F8077F49B5D8C000804991C7003F13E049 +01FC020F7F49496E7F49498049496E7F49496E7F90B55A48727E92C914804884485B1BC0 +48841BE0485BA27313F05AA25C5AA21BF885A2B5FCA391BAFCA41BF002F8CCFCA67EA380 +7EA47E806CF103F0F207F86C7F1A0F6C6E17F06C191F6F17E06C6E163F6D6DEE7FC06D6D +16FF6D6D4B13806D6D4B13006D6D6CEC0FFE6D02E0EC3FFC6D02F8ECFFF86D9126FFC00F +5B023F91B65A020F178002034CC7FC020016F8031F15E0030392C8FCDB000F13E04D507B +CE58>101 D<F37F80922607FFFC913807FFE092B600E0011F13F8020703FC017F13FC02 +1FDBFF01B512FE027F16C349B800F7EBBFFF49DA803F9038FFF83F010F9026FC000714C0 +4901F00101EC007F49496D148049496E6D7E90B517E04B6E15FE48F1F01F4891C86C9038 +F80FFCF307F098C7FC48496F7FA34885AB6C61A36C6D4B5BA36C6E4A5B6C616F5C6D606D +6D91B55A6D6D4991C8FC6D01FC01075B9226FF803F13F893B65A4917C0D93F1F93C9FC02 +0715FCD97E0015E0030701FCCAFC01FE90CDFCA412017FA280A280808014FE6C90B812C0 +19FF1AF01AFC6DF0FF801BE06D851BFC6D856D856D1A806D1AC05B011F1AE0137F48BC12 +F0000701FCC9FC4801E0040314F84849EE007F4849171F91CB1207487313FC5B00FF855B +86A56D60007F1BF86D60A26C6D4D13F06E5F6C6D4D13E06C6D4D13C06C01FC94B512806C +01FF04031400C602C0030F13FC6D01F8037F5B011FD9FFE0011FB512E0010791B8128001 +014EC7FC6D6C17F8020F17C0DA007F03F8C8FC03014AC9FC58727BCE61>103 +D<EB01FCEB07FF011F13C0497F497F90B57EA24880A24880A76C5CA26C5CA26D5B6D5B6D +5B010790C8FCEB01FC90CAFCB2903801FFFC007FB5FCA8C67E131F7FB3B3B3A5B81280A8 +297979F835>105 D<902601FFF891260FFFE093383FFF80B692B500FE0303B512F80503 +6E6C020F14FE050F03E0023F6E7E053F03F891B712E04D6F4982932701FFF01F6D0107D9 +C07F7F4CD900076D90270FFC001F7FDC07FC6D9126801FF06D7FC66CDA0FF06D9126C03F +C06D7F011FDA1FC06D4BC77E6D4A48DCE0FE834CC8ECE1FC047E6FD9F1F86E804CEFF3F0 +DBF9F8EFF7E04C6003FB7001FF6F804C6015FF4C95C9FCA24C5FA293C95CA44B60B3B3A6 +B8D8E003B8D8800FB712FEA8974E79CDA2>109 D<902601FFF891380FFFE0B692B512FE +05036E7E050F15E0053F15F84D81932701FFF01F7F4CD900077FDC07FC6D80C66CDA0FF0 +6D80011FDA1FC07F6D4A48824CC8FC047E6F7F5EEDF9F85E03FB707F5E15FF5EA25EA293 +C9FCA45DB3B3A6B8D8E003B81280A8614E79CD6C>I<93381FFFE00303B6FC031F15E092 +B712FC020316FF020F17C0023FD9FC0014F091B500C0010F13FC4991C700037F4901FC02 +007F010F496F13C049496F7F49496F7F4B8149496F7F90B5C96C7F4886A24849707F481B +80A248497014C0A2481BE0A348497113F0A3481BF8A5B51AFCAE6C1BF8A46C1BF06E94B5 +FCA36C1BE0A26C6D4C14C0A26C1B806E5E6C1B006C6E4B5BA26C6E4B5B6D6D4B5B6D6D4B +5B6D6D4B5B6D6D92B55A6D01FF02035C6D02C0010F91C7FC010002FC90B512FC6E90B75A +021F17E00207178002014CC8FCDA003F15F0030392C9FCDB001F13E056507BCE61>I<90 +2601FFF8EB07FEB691383FFFC094B512F00403804C14FE4C8093261FFC3F138093263FE0 +7F13C0DC7F80B5FCC66C5D011FDAFE0114E06DEBF9FC16F815FB16F016E015FF16C07114 +C05E72138095381FFE0093C76C5AF001E095C8FCA25DA65DB3B3A2B812F8A8434E7ACD4F +>114 D<912603FFFCEB0780027F9039FFE00FC00103B6EAF83F010FEDFEFF013F92B5FC +49EB000F2601FFF01300480180143F4890C8120F4848814848814981123F83485A187FA2 +12FF6D163FA37F7F6DEE1F8002C092C7FC14F014FEECFFF06CECFF8016FEEEFFE06C16FC +6C16FF18C06C836C17F86C836C836C83013F17806D17C0010717E0010117F0EB003F0207 +16F8EC001F030015FC1607EE007F051F13FE1707007E82B482836D167FA2183F7F181FA2 +7F19FC7FA26D163F6D17F86D167F19F06D16FF6E4A13E002E04A13C06E4A138002FE023F +1300913AFFC003FFFE01E790B65A01C316F0018016C026FE003F92C7FC48010714F80070 +D9007F90C8FC3F507ACE4C>I<15FFA75CA55CA45CA25CA25CA25CA25C91B5FCA25B5B5B +131F5B90B9FC120FBAFCA6D8000791C9FCB3B3A3F01FE0AE183F7014C07F187F7014806D +16FF826D4B13006E6D485AEEFE0F6E90B55A020F5D6E5D020115C06E6C5C031F49C7FC03 +0113F03B6E7CEC4B>I<B892B612F8A8D8001F49C90003EBF0006D6D04001380A26D6E94 +C7FC626D6E5E1A03A26D6E4B5AA26D6E4B5AA26E6D5E1A1F6E6D5E1A3F6E6070157FA26E +6D4B5AA26E6E4990C8FCA26E6E5C19036E6E5C1907A26E6E495AA26F6D495AA26F6D5C19 +3F6F6D5C197F6F5E7113FFA26F028190C9FCA26FECC3FEA26FECE3FC18E76FECF7F818FF +A2705CA2705CA2705CA2705CA37091CAFCA2705BA2705BA2705BA2715AA3715AA24D5AA2 +6017FF95CBFC5EA24C5AEA03F8D80FFE4A5A487E486D495A487F5FB56C131F5F163F4C5A +A24C5A4B90CCFC6C49485A4B5AEC800F6C9038003FF849EBFFF0261FFC0713C06CB65A6C +92CDFC6C14FCC614F0013F13C0D907FCCEFC5D6F7CCC66>121 D +E +%EndDVIPSBitmapFont +end +%%EndProlog +%%BeginSetup +%%Feature: *Resolution 600dpi +TeXDict begin +%%BeginPaperSize: a4 +a4 +%%EndPaperSize + +%%EndSetup +%%Page: 1 1 +1 0 bop 94 1385 a Fo(T)197 1423 y(E)300 1385 y(X)65 b(V)-16 +b(ersioning)66 b(System)p 94 1490 3780 34 v 1424 1586 +a Fn(Soft)m(w)m(are)31 b(for)g(storing)e(complete)i(source)g(co)s(des)f +(of)h(T)3301 1605 y(E)3351 1586 y(X)f(do)s(cumen)m(ts)94 +5373 y Fm(b)l(y)45 b(Da)l(vid)h(An)l(to)-7 b(\024)-60 +b(s)p 94 5446 3780 17 v eop +%%Page: 2 2 +2 1 bop 94 4756 a Fn(Cop)m(yrigh)m(t)547 4753 y(c)522 +4756 y Fl(\015)30 b Fn(2000)i(Da)m(vid)e(An)m(to)-5 b(\024)-41 +b(s)94 4881 y(P)m(ermission)26 b(is)h(gran)m(ted)h(to)g(mak)m(e)h(and)e +(distribute)e(v)m(erbatim)i(copies)h(of)g(this)e(man)m(ual)h(pro)m +(vided)f(the)i(cop)m(y-)94 4980 y(righ)m(t)i(notice)h(and)f(this)f(p)s +(ermission)e(notice)k(are)g(preserv)m(ed)f(on)g(all)f(copies.)94 +5105 y(P)m(ermission)h(is)g(gran)m(ted)h(to)h(cop)m(y)g(and)e +(distribute)f(mo)s(di\014ed)f(v)m(ersions)j(of)g(this)f(man)m(ual)g +(under)f(the)j(condi-)94 5204 y(tions)e(for)f(v)m(erbatim)h(cop)m +(ying,)g(pro)m(vided)e(that)j(the)f(en)m(tire)f(resulting)f(deriv)m(ed) +h(w)m(ork)h(is)f(distributed)d(under)94 5304 y(the)31 +b(terms)f(of)h(a)g(p)s(ermission)c(notice)k(iden)m(tical)e(to)i(this)e +(one.)94 5429 y(P)m(ermission)g(is)f(gran)m(ted)j(to)g(cop)m(y)f(and)f +(distribute)f(translations)g(of)i(this)f(man)m(ual)g(in)m(to)h(another) +g(language,)94 5528 y(under)38 b(the)i(ab)s(o)m(v)m(e)h(conditions)d +(for)h(mo)s(di\014ed)f(v)m(ersions,)j(except)g(that)f(this)e(p)s +(ermission)f(notice)i(ma)m(y)i(b)s(e)94 5628 y(stated)32 +b(in)d(a)i(translation)e(appro)m(v)m(ed)i(b)m(y)f(the)g(F)-8 +b(ree)32 b(Soft)m(w)m(are)f(F)-8 b(oundation.)p eop +%%Page: 1 3 +1 2 bop 94 -116 a Fn(Chapter)30 b(1:)41 b(In)m(tro)s(duction)2771 +b(1)94 365 y Fk(1)81 b(In)l(tro)t(duction)219 686 y Fn(This)26 +b(is)h(do)s(cumen)m(tation)g(of)h(T)1283 705 y(E)1333 +686 y(X)g(V)-8 b(ersioning)26 b(System,)i(soft)m(w)m(are)h(for)f +(storing)f(complete)h(source)g(co)s(des)94 785 y(of)j(T)249 +805 y(E)299 785 y(X)g(do)s(cumen)m(ts.)219 942 y(V)-8 +b(ersion)30 b(1.0)219 1098 y(\(Do)s(cumen)m(tation)i(CVS)d(v)m(er.)41 +b($Id:)g(tvs.texi,v)31 b(1.23)h(2000/08/16)i(17:00:24)g(an)m(tos)d(Exp) +f($\))94 1436 y Fm(1.1)69 b(Wh)l(y)44 b(do)h(y)l(ou)g(need)g +Fj(TVS)p Fm(?)219 1651 y Fn(It)27 b(m)m(ust)g(ha)m(v)m(e)h(happ)s(ened) +d(to)i(y)m(ou.)40 b(Y)-8 b(ou)28 b(use)e(T)1851 1670 +y(E)1901 1651 y(X)h(at)h(w)m(ork.)39 b(Y)-8 b(ou)28 b(run)d(another)i +(distribution)c(at)28 b(home.)94 1750 y(Y)-8 b(ou)39 +b(wrote)g(a)g(b)s(eautiful)d(do)s(cumen)m(t)i(at)h(home,)i(y)m(ou)e +(came)g(to)g(w)m(ork)f(and)g(got)i(error)e(message)h +Fi(I)30 b(can't)94 1850 y(find)g(file)f(`foo.tex')p Fn(.)38 +b(There)30 b(is)f(a)i(pac)m(k)-5 b(age)33 b(missing)28 +b(in)h(y)m(our)h(w)m(ork)h(installation.)219 2006 y(Or:)42 +b(Y)-8 b(ou)32 b(wrote)g(a)g(b)s(eautifully)c(t)m(yp)s(eset)33 +b(b)s(o)s(ok)e(sev)m(eral)g(y)m(ears)i(ago.)45 b(Y)-8 +b(ou)32 b(used)f(em-T)3247 2026 y(E)3297 2006 y(X)h(on)f(M$-DOS)94 +2106 y(mac)m(hine.)56 b(The)36 b(b)s(o)s(ok)e(should)g(b)s(e)h(t)m(yp)s +(eset)h(again.)57 b(Y)-8 b(ou)36 b(ha)m(v)m(e)h(only)d(m)m(y)p +2698 2106 28 4 v 33 w(b)s(o)s(ok.tex)i(and)f(no)h(macros)g(y)m(ou)94 +2206 y(used.)k(What)31 b(to)h(do?)219 2362 y(T)-8 b(o)38 +b(b)s(e)f(serious,)i(there)f(is)f(nothing)g(to)h(b)s(e)f(done)h(no)m +(w.)63 b(But)38 b(if)f(y)m(ou)h(stored)g(the)g Fh(c)-5 +b(omplete)46 b Fn(source)38 b(of)94 2462 y(the)e(do)s(cumen)m(ts,)g(it) +f(didn't)f(ha)m(v)m(e)j(to)f(happ)s(en)d(to)j(y)m(ou.)56 +b(And)35 b(ho)m(w)g(to)h(store)g(the)g(complete)f(source?)56 +b(It's)94 2561 y(simple|use)28 b Fi(TVS)p Fn(.)94 2639 +y Fg(\013)p 144 2639 3734 4 v 3733 w(\010)p 94 2956 4 +270 v 247 2775 a Fn(Please!)39 b(Please!)f(P)m(ac)m(king)24 +b(complete)g(T)1635 2795 y(E)1685 2775 y(X)f(do)s(cumen)m(t)g(sources)g +(is)f(a)i(delicate)f(and)f(sensitiv)m(e)g(op)s(eration.)123 +2858 y(Read)34 b(the)g(en)m(tire)g(man)m(ual)f(b)s(efore)g(y)m(ou)h +(use)g Fi(TVS)f Fn(to)h(do)g(something)f(imp)s(ortan)m(t.)51 +b(This)32 b(kind)g(of)i(soft)m(w)m(are)123 2939 y(can)c(b)s(e)g(useful) +f(for)h(y)m(ou)h(if)e(and)h(only)f(if)h(y)m(ou)g(use)g(it)g(correctly) +-8 b(.)42 b(I'm)30 b(sorry)g(for)g(this)f(but)h(it's)g(the)g(fact.)p +3927 2956 V 94 3008 a Fg(\012)p 144 3008 3734 4 v 3733 +w(\011)94 3346 y Fm(1.2)69 b(What)45 b Fj(TVS)e Fm(can)i(do?)219 +3560 y Fi(TVS)29 b Fn(can)g(store)h(complete)g(source)g(co)s(des)g(of)f +(T)1838 3580 y(E)1888 3560 y(X)h(do)s(cumen)m(ts.)40 +b(It)30 b(parses)f(logs)g(of)h(T)3182 3580 y(E)3232 3560 +y(X)f(and)g(\014nds)f(\014les)94 3660 y(whic)m(h)i(w)m(ere)g(used)g(to) +h(t)m(yp)s(eset)g(the)g(do)s(cumen)m(t.)40 b Fi(TVS)30 +b Fn(can)h(w)m(ork)f(in)f(three)i(lev)m(els:)169 3817 +y Fl(\017)60 b Fn(Only)32 b(do)s(cumen)m(t)g(log)h(is)f(examined.)47 +b(It)33 b(stores)g(all)f(macros,)i(st)m(yles,)g(included)c(do)s(cumen)m +(ts)j(etc.)49 b(y)m(ou)274 3916 y(need.)169 4057 y Fl(\017)60 +b Fn(Do)s(cumen)m(t)31 b(log)f(and)f(format)h(log)f(is)g(examined.)40 +b(It)29 b(also)h(stores)g(all)e(source)i(\014les)f(needed)g(to)h(build) +d(up)274 4156 y(format)k(\014le.)169 4297 y Fl(\017)60 +b Fn(\(exp)s(erimen)m(tal\))27 b(Moreo)m(v)m(er)i(dvips)c(log)i(is)e +(parsed)h(and)h(used)f(fon)m(ts)h(are)g(stored.)40 b(This)25 +b(is)h(not)h(so)g(useful)274 4397 y(as)k(only)f Fi(.pk)f +Fn(\014les)g(ma)m(y)i(b)s(e)f(obtained)g(this)f(w)m(a)m(y)-8 +b(.)219 4594 y(Files)39 b(collected)h(b)m(y)g Fi(TVS)f +Fn(can)h(b)s(e)g(used)f(on)g(an)m(y)i(T)2042 4614 y(E)2092 +4594 y(X)f(installation)d(to)k(build)c(up)i(exactly)h(the)h(same)94 +4694 y(do)s(cumen)m(t.)g(Next,)32 b(let)e(us)f(call)h(the)h(pro)s(duct) +e(of)h Fi(TVS)g Fn(a)h Fh(c)-5 b(omplete)34 b(sour)-5 +b(c)g(e)p Fn(.)219 4850 y(There)30 b(are)h(sev)m(eral)f(imp)s(ortan)m +(t)g(features)h(of)f Fi(TVS)p Fn(:)169 5007 y Fl(\017)60 +b Fi(TVS)30 b Fn(is)f(a)i(P)m(erl)f(script,)g(it)f(runs)g(wherev)m(er)i +(P)m(erl)f(is)f(a)m(v)-5 b(ailable)30 b(\(it)g(means)g(nearly)g(ev)m +(erywhere\).)169 5147 y Fl(\017)60 b Fn(There)30 b(is)g(no)g +(di\013erence)g(in)f(using)g(of)h Fi(TVS)g Fn(when)f(running)f(LaT)2512 +5167 y(E)2562 5147 y(X,)j(plain,)d(or)j(whatev)m(er)g(y)m(ou)g(w)m(an)m +(t.)169 5288 y Fl(\017)60 b Fn(On)25 b(the)h(destination)e(\(the)i +(place)f(y)m(ou)h(t)m(yp)s(eset)g(the)f(complete)h(source\),)h(there)f +(is)e(no)h(need)h(to)g(run)e Fi(TVS)p Fn(.)274 5388 y(Y)-8 +b(ou)31 b(only)f(need)g(to)h(sa)m(y)g(T)1192 5407 y(E)1242 +5388 y(X)g(to)g(\014nd)e(\014les)g(in)g(w)m(orking)h(directory)g +(\014rst.)169 5528 y Fl(\017)60 b Fi(TVS)34 b Fn(is)f +Fh(not)44 b Fn(a)35 b(v)m(ersion)f(con)m(trol)h(system.)53 +b(It)34 b(cannot)h(handle)e(v)m(ersions)h(of)h(y)m(our)f(do)s(cumen)m +(ts.)52 b(There)274 5628 y(are)31 b(other)g(systems,)g(e.g.,)g +Fi(RCS)f Fn(or)g Fi(CVS)p Fn(,)g(designed)f(to)i(do)g(this.)p +eop +%%Page: 2 4 +2 3 bop 94 -116 a Fn(Chapter)30 b(1:)41 b(In)m(tro)s(duction)2771 +b(2)94 365 y Fm(1.3)69 b(What)45 b(do)g(y)l(ou)g(need)g(to)g(run)f +Fj(TVS)p Fm(?)219 548 y Fn(Hardw)m(are)32 b(and)e(OS)h(requiremen)m(ts) +f(are)i(simple.)41 b Fi(TVS)30 b Fn(is)h(a)g(P)m(erl)g(script)f(so)i +(it)f(runs)e(wherev)m(er)j(P)m(erl)e(5.x)94 648 y(is)k(a)m(v)-5 +b(ailable.)51 b(It)34 b(uses)f(pac)m(k)-5 b(ages)36 b(Getopt::Long,)h +(File::Basename,)f(File::Cop)m(y)-8 b(,)36 b(and)d(File::P)m(ath.)52 +b(These)94 747 y(pac)m(k)-5 b(ages)33 b(should)28 b(b)s(e)i(nev)m +(ertheless)g(in)f(standard)h(P)m(erl)g(distribution.)219 +872 y(F)-8 b(or)45 b(information)e(on)h(P)m(erl)g(for)g(y)m(our)g(OS)g +(c)m(hec)m(k)i Fi(http://www.perl.com)p Fn(.)77 b(There)44 +b(should)e(b)s(e)i(no)94 971 y(problem)29 b(on)i(most)f(Unices,)g(in)f +(Lin)m(ux,)h(P)m(erl)f(is)h(usually)e(a)j(part)f(of)h(standard)e +(distribution.)219 1096 y(Ma)m(yb)s(e)j(y)m(ou)g(\014nd)e(useful)g(ha)m +(ving)h(also)g Fi(make)f Fn(and)h Fi(Texinfo)f Fn(utilities)f +(installed)g(on)i(y)m(our)h(system,)g(but)94 1196 y Fi(Texinfo)e +Fn(is)g(only)h(needed)g(to)h(pro)s(duce)f(do)s(cumen)m(tation)g(in)f(D) +m(VI,)j(P)m(ostScript,)e(Info,)h(or)f(HTML)h(formats)94 +1295 y(whic)m(h)e(are)g(pregenerated)h(in)e Fi(TVS)h +Fn(distribution.)37 b(And)29 b Fi(make)h Fn(is)f(only)g(to)j(generate)f +(them)g(comfortably)-8 b(.)219 1420 y(There)21 b(are)h(some)f +(requiremen)m(ts)g(for)g(y)m(our)g(T)1746 1439 y(E)1796 +1420 y(X)h(source)f(co)s(des)g(to)h(b)s(e)f(able)g(to)h(handle)e(them)h +(successfully)-8 b(.)94 1519 y(There)32 b(is)e(a)i(problem)e(with)g +(including)f(\014les)h(in)m(to)i(y)m(our)f(source.)45 +b(The)31 b(usual)f(and)h(b)s(est)g(w)m(a)m(y)i(to)f(do)f(it)h(is)e(to) +94 1619 y(ha)m(v)m(e)c(the)f(main)e(source)h(at)i(the)e(top)h(of)f(the) +h(source)f(tree)h(and)f(use)g(relativ)m(e)h(paths)f(in)f(all)g(v)-5 +b(arian)m(ts)24 b(of)h Fi(\\input)94 1719 y Fn(command.)39 +b(Av)m(oid)25 b(pathological)g(inputs)e(lik)m(e)h Fi(\\includegraphics) +i(../../pictures/pict1.ps)p Fn(.)33 b(This)94 1818 y(should)c(not)h(b)s +(other)g(y)m(ou)h(as)f(nearly)g(ev)m(eryb)s(o)s(dy)g(do)s(es)g(it.)219 +1943 y(Usually)25 b Fi(TVS)g Fn(is)g(able)h(to)h(pac)m(k)g(\014les)e +(referenced)h(b)m(y)g(\\up-going")h(relativ)m(e)f(path)g(\(if)f(it)h +(mak)m(es)h(a)g(con\015ict,)94 2042 y Fi(TVS)f Fn(recognizes)h(it\),)h +(but)d(y)m(ou)i(run)e(in)m(to)i(di\016culties)d(when)h(re-t)m(yp)s +(esetting)i(the)g(complete)g(source)g(and)f(y)m(ou)94 +2142 y(ha)m(v)m(e)32 b(to)f(correct)h(all)d(the)i(things)e(b)m(y)h +(hand.)p eop +%%Page: 3 5 +3 4 bop 94 -116 a Fn(Chapter)30 b(2:)41 b(Installation)2816 +b(3)94 365 y Fk(2)81 b(Installation)219 589 y Fn(The)28 +b(program)h Fi(TVS)f Fn(and)g(its)g(do)s(cumen)m(tation)h(is)e(written) +h(and)g(main)m(tained)g(b)m(y)h(Da)m(vid)g(An)m(to)-5 +b(\024)-41 b(s,)31 b Fi(xantos)94 689 y(\(at\))f(fi.muni.cz)p +Fn(.)37 b(\(Of)30 b(course)g(substitute)f(\(at\))j(with)c +Fi(@)p Fn(.\))41 b(Con)m(tact)31 b(him)e(when)g(in)g(trouble,)g(but)g +(please)94 789 y(read)i(the)f(do)s(cumen)m(tation)h(\014rst.)219 +913 y(The)38 b(follo)m(wing)f(instructions)g(assume)h(that)h(P)m(erl)g +(v)m(ersion)f Fi(>)p Fn(=5)g(is)g(installed)e(on)j(y)m(our)f(system.)66 +b(F)-8 b(or)94 1013 y(information)29 b(on)h(P)m(erl)g(consult)g +Fi(http://www.perl.org)p Fn(.)219 1137 y(The)23 b(homepage)h(of)g +Fi(TVS)f Fn(is)f Fi(http://www.fi.muni.cz/~xa)o(ntos)o(/tv)o(s)p +Fn(.)33 b(Here)24 b(y)m(ou)f(can)h(get)h Fi(TVS)d Fn(either)94 +1237 y(\014le-b)m(y-\014le)30 b(or)g(as)h Fi(tvs.tar.gz)c +Fn(\014le.)40 b Fi(TVS)30 b Fn(can)g(also)h(b)s(e)e(obtained)h(on)g(CT) +-8 b(AN)31 b(in)e Fi(support/TVS)p Fn(.)219 1362 y(Because)j(of)e +(platform)g(indep)s(endence)e(w)m(e)j(decided)e(not)i(to)g(prepare)f +(an)m(y)g(\\instan)m(t")h(pac)m(k)-5 b(ages.)219 1486 +y(If)24 b(y)m(ou)i(do)m(wnloaded)e Fi(tvs.tar.gz)p Fn(,)f(gunzip)g(and) +i(un-tar)f(it)h(somewhere.)38 b(If)25 b(y)m(ou)g(do)m(wnloaded)f +(separate)94 1586 y(\014les,)30 b(reconstruct)h(the)f(original)f +(\014le)g(structure)h(an)m(ywhere)h(y)m(ou)f(w)m(an)m(t.)219 +1710 y(On)67 b(UNIX,)h(mak)m(e)g(a)g(link)d(to)j Fi(tvs.pl)e +Fn(from)h(a)h(directory)f(whic)m(h)f(is)g(in)g(y)m(our)i +Fi(PATH)p Fn(,)76 b(e.g.)94 1810 y Fi(/usr/local/bin)p +Fn(,)29 b(if)i(y)m(our)h(system)g(deco)s(des)g(\014rst)f(lines)f(of)i +(scripts)e(to)j(run)d(them.)46 b(In)31 b(this)f(case,)k(it)d(ma)m(y)94 +1910 y(b)s(e)c(needed)f(to)i(correct)g(the)f(v)m(ery)h(\014rst)e(line)f +(of)i Fi(tvs.pl)f Fn(and)g(put)g(the)h(righ)m(t)g(path)f(to)i(y)m(our)f +(P)m(erl)g(in)m(terpreter)94 2009 y(there.)69 b(Otherwise)39 +b(y)m(ou)h(ma)m(y)g(still)e(run)g Fi(TVS)h Fn(running)e +Fi(perl)29 b(tvs.pl)p Fn(.)67 b(Install)38 b(the)i(do)s(cumen)m(tation) +f(in)94 2109 y(y)m(our)34 b(fa)m(v)m(orite)h(format,)g(where)f(y)m(our) +f(do)s(cs-reader)h(can)g(\014nd)e(it.)51 b(A)m(t)34 b(least,)i +Fi(/usr/doc/tvs)30 b Fn(w)m(ouldn't)j(b)s(e)94 2208 y(a)e(bad)f(c)m +(hoice)h(to)g(store)g(P)m(ost)h(Script)d(or)h(HTML)g(do)s(cumen)m +(tation.)219 2333 y(Generally)23 b(sp)s(eaking,)i(there)g(is)e(no)h +(need)g(to)h(install)e Fi(TVS)g Fn(to)i(global)f(directories)f(if)g(y)m +(ou)i(are)g(the)f(only-one)94 2433 y(who)30 b(runs)f(it)h(or)g(y)m(ou)h +(are)g(not)g(ro)s(ot.)219 2557 y(T)-8 b(ry)30 b Fi(tvs)f(--help)p +Fn(.)39 b(If)30 b(a)h(TVS)f(header)g(and)g(help)f(message)i(written,)f +(ev)m(erything)g(is)g(OK.)219 2682 y(If)i(y)m(our)h(standard)e(P)m(erl) +h(distribution)d(do)s(es)j(not)h(con)m(tain)g(pac)m(k)-5 +b(ages)34 b(Getopt::Long,)i(File::Basename,)94 2781 y(File::Cop)m(y)-8 +b(,)31 b(and)f(File::P)m(ath,)h(get)h(them)e(from)g Fi +(http://www.perl.org)p Fn(.)219 2906 y(On)i(M$)i(DOS/Windo)m(w$)f +(platforms)f(the)h Fi(.pl)f Fn(su\016x)h(should)e(b)s(e)h(enough)h(for) +g(P)m(erl)f(script)g(to)i(run,)f(of)94 3005 y(course)38 +b(if)f(P)m(erl)h(is)e(correctly)j(installed.)60 b(Please)38 +b(do)g(not)g(exp)s(ect)g(me)g(to)h(mak)m(e)g(b)s(etter)f(supp)s(ort)e +(for)h(M$)94 3105 y(platforms)30 b(as)g(I)h(do)f(not)g(run)f(them.)219 +3230 y(On)37 b(other)g(platforms,)i(if)d(there)i(are)f(di\016culties)e +(in)h(installing)f(or)i(running)e Fi(TVS)p Fn(,)j(please)g(drop)e(me)i +(a)94 3329 y(line.)p eop +%%Page: 4 6 +4 5 bop 94 -116 a Fn(Chapter)30 b(3:)41 b(Using)30 b +Fi(TVS)f Fn(step)i(b)m(y)f(step)2360 b(4)94 365 y Fk(3)81 +b(Using)54 b Ff(TVS)f Fk(step)f(b)l(y)i(step)219 681 +y Fn(This)26 b(c)m(hapter)j(sho)m(ws)f(the)g(usage)h(of)f +Fi(TVS)f Fn(and)g(v)-5 b(arious)27 b(examples.)40 b(It)28 +b(also)g(p)s(oin)m(ts)f(out)h(the)g(limitations)94 781 +y(of)k(this)d(system,)j(in)d(other)j(w)m(ords)e(what)h(it)f +Fh(c)-5 b(an)39 b Fn(do)31 b(for)f(y)m(ou)h(\(and)g(it's)g(quite)f(a)h +(lot\))h(and)e(what)h(it)f(cannot.)94 880 y(Y)-8 b(es,)32 +b(there)e(are)h(some)g(unpleasan)m(t)f(things)f(y)m(ou)i(m)m(ust)f(do)g +(man)m(ually)-8 b(.)94 1214 y Fm(3.1)69 b(Useful)45 b(commands)219 +1427 y Fn(T)-8 b(o)31 b(mak)m(e)g(sure)f(that)h Fi(TVS)e +Fn(is)g(correctly)i(installed)d(on)i(y)m(our)g(system,)h(run)e +Fi(tvs)g(-h)p Fn(.)40 b(Y)-8 b(ou)31 b(should)d(obtain)94 +1527 y(a)j(short)f(help)f(on)i(using)d Fi(TVS)p Fn(.)219 +1682 y(There)34 b(are)h(t)m(w)m(o)g(useful)e(switc)m(hes)h(y)m(ou)h +(should)d(kno)m(w)j(b)s(efore)f(starting)g(exp)s(erimen)m(ts)f(with)h +Fi(TVS)p Fn(.)51 b(Y)-8 b(ou)94 1781 y(ma)m(y)41 b(increase)e(v)m(erb)s +(osit)m(y)g(lev)m(el)g(using)f Fi(-v)h Fn(or)g(ev)m(en)h +Fi(-vv)f Fn(switc)m(h.)67 b(See)40 b(Section)f(4.2)i([Global)e(switc)m +(hes],)94 1881 y(page)32 b(8,)f(for)f(detailed)f(information)g(on)h(v)m +(erb)s(osit)m(y)g(lev)m(els.)219 2036 y(In)36 b(follo)m(wing)e +(examples)i(y)m(ou)h(ma)m(y)g(also)f(sp)s(ecify)f Fi(--dummy)g +Fn(command.)58 b(It)37 b(means)f(that)h(no)f(\014les)g(are)94 +2136 y(really)26 b(copied)g(and)g(no)h(real)f(output)g(is)g(pro)s +(duced.)38 b(But)26 b(ev)m(erything)h(else)f(lo)s(oks)g(lik)m(e)g(real) +h(op)s(erations)e(w)m(ere)94 2235 y(p)s(erformed.)94 +2569 y Fm(3.2)69 b(Basic)45 b(running)f Fj(TVS)219 2782 +y Fn(No)m(w)32 b(it's)f(time)h(to)g(lo)s(ok)f(to)h(the)g +Fi(examples)d Fn(directory)i(in)g(y)m(our)g(distribution.)41 +b(It)31 b(con)m(tains)h(source)g(\014le)94 2882 y Fi(sample.tex)c +Fn(w)m(e)j(will)d(use)i(to)h(demonstrate)g(the)f(usage)h(of)g +Fi(TVS)p Fn(.)219 3037 y(The)j(\014rst)f(step)h(y)m(ou)h(m)m(ust)f(not) +h(forget)g(is)e(to)i(T)1893 3056 y(E)1943 3037 y(X)f(y)m(our)g(source)h +(correctly)-8 b(.)53 b(Do)s(cumen)m(t)35 b Fi(sample.tex)94 +3136 y Fn(uses)30 b Fi(\\tableofcontents)p Fn(,)d(so)j(y)m(ou)h(m)m +(ust)f(run)334 3296 y Fi(latex)47 b(sample.tex)94 3451 +y Fn(t)m(wice.)42 b(Mak)m(e)32 b(sure)d(y)m(our)i(do)s(cumen)m(t)f(is)f +(T)1571 3470 y(E)1621 3451 y(Xed)i(correctly)-8 b(.)41 +b(It)31 b(is)e Fh(very)k(very)38 b Fn(imp)s(ortan)m(t.)219 +3606 y(Let's)31 b(try)f(what)h Fi(TVS)e Fn(can)i(do)f(no)m(w.)41 +b(First)29 b(try)i(to)g(run)334 3765 y Fi(tvs)47 b(sample.log)94 +3920 y Fn(The)28 b(most)h(imp)s(ortan)m(t)e(for)h Fi(TVS)f +Fn(is)g(log)i(\014le)e Fi(sample.log)p Fn(.)37 b(Y)-8 +b(ou)29 b(do)f(not)g(ha)m(v)m(e)h(to)g(sp)s(ecify)e(name)h(with)f +Fi(.log)94 4019 y Fn(extension)40 b(as)g(it)f(is)g(tried)f(to)j(add)e +(automatically)-8 b(.)69 b(What)40 b Fi(TVS)f Fn(no)m(w)h(do)s(es?)68 +b(It)40 b(go)s(es)g(through)f(the)h(\014le)94 4119 y +Fi(sample.log)28 b Fn(and)i(\014nds)f(all)g(the)h(\014les)g(whic)m(h)f +(are)i(needed)f(to)h(build)c(up)i(the)i(\014nal)e(do)s(cumen)m(t.)219 +4274 y Fi(TVS)d Fn(created)i(an)g(output)e(directory)h(named)g +Fi(TVS-OUT)p Fn(.)37 b(Chec)m(k)28 b(its)e(con)m(ten)m(ts.)42 +b(In)26 b(fact,)j(on)e(M$-DOS)h(or)94 4374 y(M$-Windo)m(ws)j(mac)m +(hines)f(this)f(didn't)g(w)m(ork.)1702 4341 y Fe(1)1780 +4374 y Fn(On)h(UN*X)h(mac)m(hines,)g(there)f(is)g(stupidly)d(deep)j +(directory)94 4473 y(structure)g(con)m(taining)g(only)g(one)g +(directory)g(in)f(another.)219 4628 y(There)37 b(is)f(a)h(w)m(a)m(y)i +(to)e(a)m(v)m(oid)h(this.)60 b(Please)37 b(cop)m(y)h(\014le)f +Fi(pathcuts.tvs)c Fn(in)m(to)38 b(the)f Fi(examples)e +Fn(directory)-8 b(.)94 4728 y(Edit)30 b Fi(pathcuts.tvs)p +Fn(,)d(replace)j(path)h Fi(/usr/TeX/texmf)26 b Fn(with)j(the)i(path)f +(to)h(y)m(our)f(T)3090 4748 y(E)3140 4728 y(X)h(main)e(directory)-8 +b(.)219 4883 y(Delete)32 b(the)e Fi(TVS-OUT)f Fn(directory)g(and)h(run) +334 5042 y Fi(tvs)47 b(-v)h(-p)f(pathcuts.tvs)d(sample)94 +5197 y Fn(See)32 b(what)g Fi(TVS)e Fn(do)s(es)h(no)m(w.)44 +b(Y)-8 b(ou)32 b(ma)m(y)g(also)g(c)m(hec)m(k)h(what)e(is)g(in)f(the)h +Fi(TVS-OUT)f Fn(directory)-8 b(.)44 b(By)31 b Fi(-p)f(file)g +Fn(w)m(e)94 5297 y(sa)m(y)h(that)g Fi(file)e Fn(con)m(tains)h(paths)g +(w)m(e)h(w)m(an)m(t)g(to)g(shorten.)40 b(On)29 b(M$)i(\014le)e(system,) +i(there)f(is)f(in)g(fact)i(needed)f(to)94 5397 y(use)h(this)e(to)i(cut) +g(things)e(lik)m(e)g Fi(c:\\)h Fn(to)h(b)s(e)f(able)g(to)h(construct)g +(\014le)e(names)h(used)g(in)f(the)h(output)g(directory)-8 +b(.)p 94 5553 1200 4 v 143 5614 a Fe(1)219 5645 y Fd(Do)26 +b(not)f(install)i(Lin)n(ux)e(immediately)-6 b(,)24 b(w)n(e)i(will)h +(correct)f(it)g(in)g(the)f(next)g(paragraph.)35 b Fc(;-\))p +eop +%%Page: 5 7 +5 6 bop 94 -116 a Fn(Chapter)30 b(3:)41 b(Using)30 b +Fi(TVS)f Fn(step)i(b)m(y)f(step)2360 b(5)94 365 y Fm(3.3)69 +b(Ignoring)45 b(\014les)219 546 y Fn(As)37 b(y)m(ou)g(can)g(see,)i +(there)e(is)f Fi(sample.toc)e Fn(in)i(the)h(output)f(directory)-8 +b(.)60 b(W)-8 b(e)38 b(do)f(not)g(really)f(need)g(it)h(as)94 +645 y(it)42 b(can)g(b)s(e)f(alw)m(a)m(ys)h(generated.)76 +b(No)m(w)42 b(let)g(us)f(sho)m(w)g(the)h(w)m(a)m(y)h(ho)m(w)e(to)i +(ignore)e(\014les.)74 b(Please)41 b(cop)m(y)i(\014le)94 +745 y Fi(ignpats.tvs)29 b Fn(to)j(the)f(w)m(orking)g(directory)-8 +b(.)43 b(This)30 b(\014le)g(con)m(tains)h(patterns)h(whic)m(h)e(are)h +(compared)h(to)g(ends)94 844 y(of)f(\014les.)40 b(Matc)m(hing)31 +b(\014les)e(are)i(not)f(copied)g(to)h(the)g(output)f(directory)-8 +b(.)219 967 y(If)30 b(y)m(ou)h(w)m(an)m(t)g(to)g(try)f(it,)g(delete)h +(the)g(output)f(directory)f(and)h(run)334 1093 y Fi(tvs)47 +b(-v)h(-p)f(pathcuts.tvs)d(-i)j(ignpats.tvs)e(sample)94 +1215 y Fn(No)m(w)32 b(\014les)d(ending)g(with)g Fi(toc)g +Fn(are)i(missing.)219 1337 y Fh(Warning:)45 b Fn(use)28 +b(this)g(feature)h(with)e(care)i(and)f(only)f(if)h(y)m(ou)h(kno)m(w)f +(what)g(y)m(ou)h(are)g(doing.)39 b(Alw)m(a)m(ys)29 b(mak)m(e)94 +1437 y(sure)h(that)h(\014les)e(y)m(ou)i(w)m(an)m(t)g(to)h(ignore)d(ma)m +(y)i(b)s(e)f(rebuilt)e(up)i(from)g(the)g(rest)h(of)f(the)h(source.)94 +1687 y Fm(3.4)69 b(F)-11 b(ormat)45 b(\014le)g(sources)219 +1867 y Fn(In)29 b(fact,)i(storing)e(the)h(complete)g(do)s(cumen)m(t)g +(source)f(ma)m(y)i(not)f(b)s(e)f(enough)g(to)i(b)s(e)e(able)g(to)h(pro) +s(duce)f(the)94 1967 y(same)j(output.)43 b(W)-8 b(e)33 +b(m)m(ust)e(also)g(store)h(format)f(source)h(\014les.)42 +b(Storing)30 b(only)h(the)g(format)h(\014le)e(itself)g(do)s(esn't)94 +2066 y(help)f(as)i(this)e(\014le)h(is)f(not)i(binary)d(compatible)i(in) +f(general.)219 2188 y(The)40 b(main)f(thing)g(y)m(ou)h(need)g(is)f(to)i +(kno)m(w)f(where)f(log)i(\014les)e(of)h(generated)h(formats)f(are)h +(stored.)69 b(T)-8 b(o)94 2288 y(obtain)20 b(this)g(information)e +(consult)i(y)m(our)h(lo)s(cal)e(do)s(cumen)m(tation,)k(or)d(y)m(ou)h +(ma)m(y)g(try)f(to)h(\014nd)e(\014les)h Fi(latex.log,)94 +2388 y(tex.log,)29 b(pdftex.log)p Fn(,)20 b(or)g(ask)h(y)m(our)f(T)1531 +2407 y(E)1581 2388 y(X)h(administrator.)36 b(It)20 b(is)g(also)g(p)s +(ossible)e(that)j(y)m(our)g(administrator)94 2487 y(deleted)37 +b(log)g(\014les)f(after)h(generating)h(formats.)60 b(In)36 +b(this)g(case)i(ask)f(him)e(to)j(regenerate)g(format)g(\014les)e(and)94 +2587 y(lea)m(v)m(e)30 b(the)e(logs)h(un)m(touc)m(hed.)40 +b(This)26 b(is)h(not)i(a)f(go)s(o)s(d)g(manner)g(to)g(delete)h(log)f +(\014les)f(of)i(this)e(imp)s(ortance.)39 b(Y)-8 b(our)94 +2686 y(administrator)31 b(ma)m(y)h(ha)m(v)m(e)i(ev)m(en)e(delete)g +(format)h(\014le)e(sources.)45 b(In)31 b(this)g(case,)j(ask)e(him)e(to) +j(reinstall)d(them)94 2786 y(and)g(b)s(etter)h(\014nd)e(a)h(new)g(T) +1037 2806 y(E)1087 2786 y(X)h(administrator.)219 2908 +y(Y)-8 b(ou)22 b(should)e(mak)m(e)j(sure)e(that)i(formats)f(w)m(ere)g +(really)f(generated)i(on)e(y)m(our)h(lo)s(cal)f(installation.)36 +b(They)21 b(ma)m(y)94 3008 y(ha)m(v)m(e)27 b(b)s(een)d(generated)i(on)f +(a)g(binary)e(compatible)h(mac)m(hine)h(with)e(other)j(organization)f +(of)g(T)3296 3027 y(E)3346 3008 y(X)g(directories.)94 +3107 y(If)34 b(so,)i(y)m(ou)f(m)m(ust)f(re-generate)i(them.)53 +b(If)34 b(y)m(ou)g(run)f(a)i(distribution)c(whic)m(h)i(allo)m(ws)h(y)m +(ou)g(to)h(set)g(lo)s(cal)f(T)3756 3127 y(E)3806 3107 +y(X)94 3207 y(installation)c(ro)s(ot)h(directory)-8 b(,)32 +b(this)e(is)h(quite)f(p)s(ossible.)42 b(F)-8 b(or)32 +b(example,)f(on)g(m)m(y)h(texliv)m(e-4)g(I)f(had)g(to)h(correct)94 +3307 y(this.)219 3429 y(In)g(emergency)-8 b(,)34 b(if)d(y)m(ou)i(do)f +(not)g(ha)m(v)m(e)i(ro)s(ot)f(privilegies)c(and)j(y)m(ou)g(cannot)h +(globally)e(mak)m(e)i(format)g(logs)94 3528 y(correct,)26 +b(y)m(ou)c(still)e(can)j(generate)g(formats)g(in)d(y)m(our)i(o)m(wn)h +(directory)e(and)h(use)g(them)g(o)m(v)m(erriding)f(y)m(our)h(system)94 +3628 y(defaults.)40 b(In)30 b(this)f(case,)j(giv)m(e)f(y)m(our)f(ro)s +(ot)h(m)m(y)f(regards.)219 3750 y(T)-8 b(o)33 b(store)h(format)f +(sources,)h(y)m(ou)f(need)g(to)h(tell)e Fi(TVS)g Fn(where)g(logs)h +(are.)49 b(It)33 b(is)f(done)h(b)m(y)g Fi(-f)c(path)j +Fn(switc)m(h.)94 3850 y(Let's)f(try)g(to)g(call)334 3976 +y Fi(tvs)47 b(-v)h(-p)f(pathcuts.tvs)d(-f)j(where_your_logs_are)c +(sample)94 4098 y Fn(Y)-8 b(ou)31 b(should)e(obtain)h(output)g +(directory)g(similar)e(to)j(previous)e(one)h(but)g(con)m(taining)g(sub) +s(directory)e(named)94 4198 y Fi(FORMAT)p Fn(,)h(where)h(complete)h +(source)g(for)f(format)h(generating)f(is)g(stored.)219 +4320 y(If)d Fi(TVS)g Fn(is)g(not)g(able)h(to)g(determine)f(format)h +(name)f(correctly)-8 b(,)30 b(y)m(ou)e(ma)m(y)g(force)g(format)g(name)g +(b)m(y)f(adding)94 4420 y Fi(--fmtname)h(name)i Fn(in)m(to)g(command)g +(line)f(similar)e(to)32 b(previous)c(example.)41 b(Y)-8 +b(ou)31 b(ma)m(y)g(try)334 4546 y Fi(tvs)47 b(-v)h(-p)f(pathcuts.tvs)d +(-f)j(where_your_logs_are)c(--fmtname)i(latex)i(sample)94 +4796 y Fm(3.5)69 b(Con\014guration)45 b(\014le)219 4976 +y Fn(The)d(command)g(lines)e(w)m(e)j(use)f(are)h(getting)g(to)s(o)g +(long.)76 b(If)42 b(\014le)f Fi(tvsrc)g Fn(is)h(lo)s(cated)g(in)f(the)i +(w)m(orking)94 5076 y(directory)-8 b(,)29 b(it)f(is)g(used)f(as)i +(con\014g)f(\014le.)39 b(Y)-8 b(ou)29 b(ma)m(y)g(also)f(sp)s(ecify)f +(the)h(con\014g)h(\014le)e(explicitly)f(b)m(y)i Fi(-c)i(filename)94 +5175 y Fn(or)h Fi(--config)d(filename)g Fn(switc)m(h.)219 +5297 y(Please)j(cop)m(y)g(\014le)e Fi(tvsrc)g Fn(to)i(the)g +Fi(examples)d Fn(directory)-8 b(.)41 b(Con\014g)29 b(\014le)h(has)g +(simple)e(structure)334 5424 y Fi(<variable>)45 b(<value>)219 +5546 y Fn(V)-8 b(alues)35 b(set)h(here)e(ma)m(y)i(b)s(e)e(alw)m(a)m(ys) +i(o)m(v)m(erridden)e(b)m(y)h(the)g(command)g(line.)52 +b(Setting)35 b(v)-5 b(alues)34 b(for)h(ignore,)94 5645 +y(pathcuts)g(and)f(format)h(do)s(esn't)f(mean)h(that)g(\014les)e(are)i +(ignored,)g(paths)g(cut)f(and)g(format)h(sources)g(stored)p +eop +%%Page: 6 8 +6 7 bop 94 -116 a Fn(Chapter)30 b(3:)41 b(Using)30 b +Fi(TVS)f Fn(step)i(b)m(y)f(step)2360 b(6)94 365 y(b)m(y)27 +b(default.)38 b(Y)-8 b(ou)27 b(m)m(ust)g(use)f(switc)m(hes)g +Fi(-i,)j(-p)d Fn(and)g Fi(-f)p Fn(,)h(but)e(there)i(is)e(no)i(need)f +(to)h(follo)m(w)f(them)g(b)m(y)g(v)-5 b(alues.)94 465 +y(It)30 b(ma)m(y)g(seem)f(a)h(bit)e(strange)i(but)e(it)h(is)f(done)h +(this)f(w)m(a)m(y)j(in)c(order)i(to)h(prev)m(en)m(t)g(y)m(ou)f(from)g +(doing)f(something)94 565 y(y)m(ou)j(do)f(not)h(w)m(an)m(t)g(to.)42 +b(It)30 b(do)s(esn't)g(sa)m(v)m(e)i(y)m(our)f(k)m(eystrok)m(es)h(but|w) +m(e)e(hop)s(e|y)m(our)g(nerv)m(es.)219 698 y(If)f(y)m(ou)h(edit)g(the)g +Fi(format)e Fn(en)m(try)i(in)e Fi(tvsrc)h Fn(to)h(the)g(path)g(to)g(y)m +(our)g(format)g(logs,)g(y)m(ou)g(ma)m(y)h(for)e(example)94 +798 y(use)334 935 y Fi(tvs)47 b(-i)h(-p)f(-f)g(-v)g(sample)94 +1068 y Fn(to)36 b(store)f(the)g(source)g(with)f(format)h(with)f +(ignoring)f(\014les)h(and)g(cutting)g(paths)h(instead)f(of)h(the)g +(long)f(form)94 1168 y(without)c(con\014g)g(\014le)g(whic)m(h)f(go)s +(es)334 1306 y Fi(tvs)47 b(-i)h(ignpats.tvs)c(-p)j(pathcuts.tvs)e(-f)i +(/usr/TeX/texmf/web2c)42 b(-v)48 b(sample)219 1439 y +Fn(But)31 b(if)e(y)m(ou)i(use)f(only)334 1577 y Fi(tvs)47 +b(-p)h(sample)94 1710 y Fn(then)31 b(no)f(format)h(\014le)e(is)g +(examined)h(and)g(no)g(\014les)f(are)i(ignored,)f(no)g(matter)h(that)g +(the)g(con\014g)f(\014le)g(exists.)219 1843 y(In)g(the)h(con\014g)f +(\014le)g(y)m(ou)h(ma)m(y)g(also)g(sp)s(ecify)e(the)i(default)f(output) +g(directory)g(name)h(with)e Fi(output)g Fn(en)m(try)94 +1943 y(and)c(the)h(default)e(v)m(erb)s(osit)m(y)h(lev)m(el)g(using)f +Fi(verbose)f Fn(with)h(v)-5 b(alue)25 b(0,)i(1,)g(or)e(2.)40 +b(These)25 b(v)-5 b(alues)24 b(are)i(used)e(alw)m(a)m(ys)94 +2043 y(and)30 b(ma)m(y)h(b)s(e)f(o)m(v)m(erridden)f(with)h +Fi(-o)f Fn(and)h Fi(-v)p Fn(.)94 2322 y Fm(3.6)69 b(Limitations)46 +b(of)g Fj(TVS)219 2513 y Fn(W)-8 b(ork)28 b(of)g Fi(TVS)f +Fn(is)f(limited)g(b)m(y)h(the)h(\014les)e(whic)m(h)h(are)g(noticed)h +(in)e(log)i(\014les.)38 b(If)28 b(y)m(ou)f(use)h(an)m(ything)f(whic)m +(h)f(is)94 2613 y(done)k(b)m(y)g(external)g(program,)h(y)m(ou)f(m)m +(ust)g(tak)m(e)i(sp)s(ecial)d(care)h(on)g(\014les)g(y)m(ou)g(w)m(an)m +(t)h(to)g(store.)41 b(If)30 b(y)m(ou)g(include)94 2713 +y(graphics)c(in)f(P)m(ost)j(Script,)e(it)g(ma)m(y)h(b)s(e)f(included)e +(only)i(b)m(y)g Fi(\\special)f Fn(command)h(and)g(ma)m(y)h(not)g(b)s(e) +f(noticed)94 2812 y(in)k(log.)219 2946 y(Y)-8 b(ou)36 +b(m)m(ust)g(alw)m(a)m(ys)g(ask)g(y)m(ourself)f(the)g(main)g(imp)s +(ortan)m(t)g(question:)50 b Fh(Which)38 b(\014les|not)h(use)-5 +b(d)37 b(in)h(T)3757 2965 y(E)3806 2946 y(X)94 3045 y(last)c(run|I)f +(want)h(to)f(stor)-5 b(e?)219 3179 y Fn(F)d(or)26 b(example)e(if)g(y)m +(ou)h(use)f(a)h(bibliograph)m(y)-8 b(,)24 b(y)m(our)h(source)f(is)g(a)h +Fi(.bib)f Fn(\014le.)38 b(But)25 b(in)e(the)i(last)g(T)3401 +3198 y(E)3451 3179 y(X)g(run)e(only)94 3278 y(sorted)33 +b(part)g(of)g(it,)g Fi(.bbl)f Fn(\014le)g(is)g(included.)45 +b(If)33 b(the)g Fi(.bbl)e Fn(\014le)h(is)g(enough)h(for)f(y)m(ou,)i +(it's)f(go)s(o)s(d.)48 b(But)33 b(if)f(y)m(ou)94 3378 +y(w)m(an)m(t)i(to)f(store)h(sources)f(for)f(bibliograph)m(y)e +(completely)-8 b(,)33 b(y)m(ou)h(need)e(also)h Fi(.bib)e +Fn(\014le)h(and)g Fi(.bst)g Fn(\014le,)g(whic)m(h)94 +3478 y(con)m(tains)j(bibliograph)m(y)c(st)m(yle.)53 b(And)33 +b(there)i(is)e(no)h(w)m(a)m(y)h(for)f Fi(TVS)g Fn(to)h(kno)m(w)f(it)g +(as)g(BibT)3176 3497 y(E)3225 3478 y(X)h(is)e(an)h(external)94 +3577 y(utilit)m(y)-8 b(.)40 b(That's)30 b(wh)m(y)g(y)m(ou)h(m)m(ust)f +(cop)m(y)h(them)g(to)g Fi(TVS-OUT)d Fn(b)m(y)i(hand.)219 +3711 y(If)g(y)m(ou)h(don't)g(do)f(so,)h(y)m(ou)g(are)g(still)e(able)h +(to)h(obtain)f(exactly)i(the)e(same)h(do)s(cumen)m(t,)g(but)f(y)m(ou)h +(run)e(in)m(to)94 3810 y(di\016culties)f(trying)i(to)h(do)f(an)m(y)h +(mo)s(di\014cations.)219 3944 y(It)22 b(is)g(alw)m(a)m(ys)g(b)s(etter)h +(store)f(more)h(than)f(y)m(ou)g(need.)38 b(If)22 b(y)m(ou)g(are)h(a)g +(T)2493 3963 y(E)2543 3944 y(X)f(b)s(eginner)e(and)i(y)m(ou)g(are)h +(absolutely)94 4043 y(not)41 b(sure,)h(it)e(ma)m(y)h(b)s(e)f +(reasonable)g(for)g(y)m(ou)h(to)g(preserv)m(e)f(all)f(the)i(\014les)e +(from)h(y)m(our)g(w)m(orking)g(directory)-8 b(.)94 4143 +y(Includes)29 b(from)h(T)717 4162 y(E)767 4143 y(X)g(directory)g +(\(e.g.,)j Fi(c:\\tex\\texmf)p Fn(\))27 b(are)k(handled)d(correctly)-8 +b(.)94 4422 y Fm(3.7)69 b(F)-11 b(on)l(ts)219 4614 y +Fn(This)29 b(is)g(exp)s(erimen)m(tal!)219 4747 y(Usually)34 +b(there)i(is)e(no)i(reason)g(to)g(store)g(also)g(fon)m(t)g(source)g +(\014les.)55 b(The)35 b(exception)h(is)f(if)f(y)m(our)i(national)94 +4847 y(mo)s(di\014cation)29 b(of)i(fon)m(ts)f(c)m(hanged)h(its)f(enco)s +(ding)g(or)g(y)m(ou)h(use)f(un)m(usual)e(fon)m(ts.)219 +4980 y(If)k(y)m(ou)h(w)m(an)m(t)h(to,)h(y)m(ou)e(ma)m(y)g(run)e +Fi(dvips)h Fn(with)f Fi(-d)h Fn(switc)m(h)h(to)g(pro)s(duce)f(a)h(log)g +(\014le)f(with)f(list)h(of)h(op)s(ened)94 5080 y(\014les.)76 +b(Consult)41 b(y)m(our)h Fi(dvips)f Fn(do)s(cumen)m(tation)h(ho)m(w)g +(to)h(do)g(it.)76 b(This)40 b(switc)m(h)i(is)f(follo)m(w)m(ed)h(b)m(y)g +(n)m(um)m(b)s(er)94 5179 y(indicating)29 b(what)h(should)e(b)s(e)i +(logged.)219 5313 y(If)g(y)m(ou)h(use)f Fi(tvs)g(-d)g(dvips.log)p +Fn(,)e(a)j(sub)s(directory)d(F)m(ONTS)j(is)f(created)h(in)e(the)i +(output)f(directory)h(and)94 5412 y(all)k(\014les)h(used)f(b)m(y)h +(dvips)e(are)j(stored)f(there.)58 b(Only)34 b(fon)m(t)j(bitmaps)e(ma)m +(y)i(b)s(e)e(obtained)g(this)g(w)m(a)m(y)-8 b(,)40 b(so)c(this)94 +5512 y(feature)31 b(is)f(not)g(v)m(ery)h(useful.)39 b(If)30 +b(y)m(ou)h(w)m(an)m(t)g(to)g(store)g(Metafon)m(t)h(sources,)f(y)m(ou)g +(m)m(ust)f(do)g(it)g(b)m(y)g(hand.)219 5645 y(There)g(is)f(no)i(guaran) +m(tee)g(of)g(correct)h(w)m(ork)e(of)h Fi(-d)e Fn(switc)m(h)h(as)h +Fi(dvips)e Fn(log)h(c)m(hanged.)p eop +%%Page: 7 9 +7 8 bop 94 -116 a Fn(Chapter)30 b(3:)41 b(Using)30 b +Fi(TVS)f Fn(step)i(b)m(y)f(step)2360 b(7)94 365 y Fm(3.8)69 +b(What)45 b(to)g(do)g(with)g(collected)h(output)219 548 +y Fn(Curren)m(tly)31 b Fi(TVS)g Fn(implemen)m(ts)g(no)h(w)m(a)m(y)h(of) +g(pac)m(king)f(nor)g(extracting)h(collected)f(complete)h(source.)47 +b(Use)94 648 y(an)m(y)d(w)m(a)m(y)g(of)f(pac)m(king)g(this)e(directory) +i(y)m(ou)g(lik)m(e)f(dep)s(ending)f(of)i(the)g(platform)f(y)m(ou)h(run) +e Fi(TVS)h Fn(and)h(the)94 747 y(platform)30 b(y)m(ou)h(will)c(w)m(an)m +(t)32 b(to)f(re-t)m(yp)s(eset)g(y)m(our)g(w)m(ork)f(in)f(the)i(future.) +219 872 y(There)f(is)f(no)i(w)m(a)m(y)g(to)g(run)e(TVS)h(on)g(the)g +(destination.)40 b(Y)-8 b(ou)31 b(m)m(ust)f(only)g(tell)f(T)2984 +891 y(E)3034 872 y(X)169 996 y Fl(\017)60 b Fn(to)32 +b(generate)f(the)g(format)g(\014le)e(if)h(format)g(sources)h(w)m(ere)g +(stored,)169 1121 y Fl(\017)60 b Fn(to)32 b(generate)f(fon)m(ts)g(if)f +(fon)m(ts)g(w)m(ere)h(stored,)169 1245 y Fl(\017)60 b +Fn(to)32 b(\014nd)c(\014les)i(in)f(w)m(orking)g(directory)h(and)g(its)g +(sub)s(directories)e(at)j(\014rst.)219 1395 y(T)-8 b(o)31 +b(do)f(this,)g(consult)f(the)i(lo)s(cal)e(do)s(cumen)m(tation.)p +eop +%%Page: 8 10 +8 9 bop 94 -116 a Fn(Chapter)30 b(4:)41 b(Reference)32 +b(guide)d(to)i Fi(TVS)f Fn(commands)1909 b(8)94 365 y +Fk(4)81 b(Reference)52 b(guide)i(to)f Ff(TVS)g Fk(commands)219 +595 y Fn(This)30 b(c)m(hapter)j(describ)s(es)d(o)m(v)m(erall)i +(structure)f(of)h Fi(TVS)f Fn(commands)h(and)f(describ)s(es)f(the)i +(function)f(of)h(the)94 694 y(commands)e(in)g(detail.)94 +956 y Fm(4.1)69 b(In)l(v)l(oking)45 b Fj(TVS)219 1141 +y Fn(General)30 b(structure)g(of)h(calling)e Fi(TVS)g +Fn(is)334 1271 y Fi(tvs)47 b([switches])e(filename)94 +1397 y Fn(where)36 b Fi(filename)d Fn(is)i(a)h(name)g(of)g(the)g(main)f +(T)1761 1417 y(E)1811 1397 y(X)h(log)g(\014le.)56 b Fi(TVS)35 +b Fn(m)m(ust)g(b)s(e)g(run)g(in)f(the)i(directory)f(where)94 +1497 y(main)30 b(T)373 1516 y(E)423 1497 y(X)g(log)h(\014le)e(is)h(lo)s +(cated.)219 1623 y(Alw)m(a)m(ys)k(mak)m(e)g(sure)f(that)h(y)m(our)g(do) +s(cumen)m(t)f(is)g(T)1951 1643 y(E)2001 1623 y(X-ed)h(correctly)g +(\(index)e(is)h(sorted,)h(bibliograph)m(y)d(is)94 1723 +y(presen)m(t,)k(pictures)d(are)i(included)d(etc.\)!)51 +b(Usually)32 b(y)m(ou)i(ha)m(v)m(e)h(to)f(run)e(T)2615 +1742 y(E)2665 1723 y(X)i(sev)m(eral)f(times)g(to)i(t)m(yp)s(eset)f(the) +94 1822 y(do)s(cumen)m(t)d(\(but)f(w)m(e)h(hop)s(e)e(this)h(do)s(esn't) +g(surprise)e(y)m(ou\).)94 2084 y Fm(4.2)69 b(Global)45 +b(switc)l(hes)219 2269 y Fn(These)30 b(switc)m(hes)g(ma)m(y)h(b)s(e)f +(used)g(to)h(c)m(hange)g(globally)e(b)s(eha)m(vior)g(of)i +Fi(TVS)p Fn(.)94 2421 y Fi(-h,)f(--help)574 2520 y Fn(Prin)m(ts)47 +b(short)g(usage)h(and)e(v)m(ersion)h(information)f(and)h(exits)g +(successfully)-8 b(.)90 b(This)46 b(switc)m(h)574 2620 +y(do)s(esn't)31 b(need)f(a)h(\014lename)e(as)i(a)f(parameter.)94 +2771 y Fi(-v,)g(--verbose)574 2871 y Fn(Sets)h(v)m(erb)s(osit)m(y)f +(lev)m(el.)41 b(Ma)m(y)31 b(used)f(sev)m(eral)g(times.)41 +b(There)30 b(are)g(three)h(v)m(erb)s(osit)m(y)f(lev)m(els:)649 +2996 y Fl(\017)60 b Fn(Lev)m(el)31 b(0|only)f(examined)g(\014les)f(and) +h(errors)f(are)i(written.)40 b(This)29 b(is)g(the)i(default.)649 +3122 y Fl(\017)60 b Fn(Lev)m(el)31 b(1|found)f(\014les,)f(cop)m(ying)h +(info)g(and)g(errors)f(are)i(written.)649 3247 y Fl(\017)60 +b Fn(Lev)m(el)31 b(2|extra)h(talk)-5 b(ativ)m(e,)31 b(writes)e(all)h +(it)g(do)s(es.)574 3398 y(F)-8 b(or)28 b(lev)m(el)e(1,)i(use)e +Fi(-v)g Fn(or)h Fi(--verbose)d Fn(once,)k(for)e(lev)m(el)g(2,)i(use)f +(it)f(t)m(wice.)40 b(Y)-8 b(ou)27 b(ma)m(y)g(also)f(sp)s(ecify)574 +3498 y Fi(-vv)p Fn(,)k(whic)m(h)f(is)h(the)g(most)h(comfortable)g(w)m +(a)m(y)g(to)g(do)f(it.)94 3649 y Fi(-c)g(file,)f(--config)f(file)574 +3749 y Fn(Sp)s(eci\014es)22 b(the)g(con\014guration)h(\014le)e(name.)39 +b(See)23 b(Section)f(5.1)i([Con\014g)f(\014le],)h(page)f(10,)i(for)e +(details)574 3848 y(ab)s(out)31 b(con\014guration)e(\014le.)574 +3974 y(If)24 b Fi(--config)d Fn(switc)m(h)i(is)g(not)h(sp)s(eci\014ed,) +f(\014le)g Fi(tvsrc)f Fn(in)g(w)m(orking)h(directory)g(is)g(used)g(as)h +(a)g(con\014g)574 4073 y(\014le)29 b(if)g(it)h(exists.)40 +b(There)29 b(is)g(no)h(need)f(of)h(ha)m(ving)g(con\014g)g(\014le)f(as)h +(all)e(options)h(ma)m(y)i(b)s(e)e(set)h(from)574 4173 +y(command)h(line.)94 4324 y Fi(--dummy)144 b Fn(Sets)30 +b Fi(TVS)f Fn(to)h(dumm)m(y)e(mo)s(de.)40 b(No)30 b(\014les)f(are)h(c)m +(hanged,)g(no)g(\014les)e(are)i(really)e(copied)h(to)h(output)574 +4424 y(directory)-8 b(,)41 b(it)d(is)f(only)h(sho)m(wn)f(what)i(has)f +(to)h(b)s(e)f(done.)64 b(Useful)37 b(if)h(used)f(with)g +Fi(--verbose)p Fn(.)574 4523 y(\(Inspired)29 b(b)m(y)h(similar)e(switc) +m(h)h(in)g(cdrecord.\))94 4785 y Fm(4.3)69 b(Ignoring)45 +b(\014les)g(and)g(cutting)g(\014lenames)219 4970 y Fn(Using)31 +b(follo)m(wing)g(settings)h(w)m(e)g(ma)m(y)h(set)f(\014les)f(whic)m(h)g +(shouldn't)f(b)s(e)i(copied)f(to)i(output)e(and)h(set)g(usual)94 +5069 y(paths)e(w)m(e)h(don't)g(w)m(an)m(t)g(to)g(store)g(completely)-8 +b(.)94 5221 y Fi(-i)30 b([file],)f(--ignore)f([file])574 +5321 y Fn(Sets)f(\014le)f(with)g(patterns)h(of)g(\014lenames)f(whic)m +(h)f(w)m(e)i(don't)g(w)m(an)m(t)h(to)f(b)s(e)g(copied)f(to)i(output.)39 +b(See)574 5420 y(Section)31 b(5.2.2)h([Ignore)f(pattern)f(\014le],)g +(page)h(11,)h(for)e(details)f(ab)s(out)h(ignore)g(pattern)h(\014le.)574 +5546 y(If)h Fi(file)f Fn(name)i(is)e(omitted,)i(v)-5 +b(alue)31 b(from)h(con\014g)h(\014le)e(is)g(used.)46 +b(If)31 b Fi(ignore)g Fn(parameter)h(is)g(not)574 5645 +y(set)f(in)e(con\014g)i(\014le,)f Fi(TVS)f Fn(terminates)i(with)e(an)h +(error.)p eop +%%Page: 9 11 +9 10 bop 94 -116 a Fn(Chapter)30 b(4:)41 b(Reference)32 +b(guide)d(to)i Fi(TVS)f Fn(commands)1909 b(9)94 365 y +Fi(-p)30 b([file],)f(--pathcuts)e([file])574 465 y Fn(Sets)e(\014le)f +(with)f(path)i(patterns)f(to)i(cut.)39 b(See)25 b(Section)f(5.2.1)j([P) +m(athcuts)e(pattern)g(\014le],)g(page)h(11,)574 565 y(for)31 +b(information)d(ab)s(out)i(\014le)g(path)g(names)g(handling.)574 +689 y(If)g Fi(file)f Fn(name)i(is)e(not)i(sp)s(eci\014ed,)e(v)-5 +b(alue)29 b(from)h(con\014g)h(\014le)e(is)h(used.)40 +b(If)29 b Fi(pathcuts)f Fn(parameter)574 789 y(in)f(con\014g)g(\014le)g +(is)g(not)g(sp)s(eci\014ed,)g Fi(--pathcuts)e Fn(parameter)j(is)e +(silen)m(tly)g(ignored.)39 b(It)28 b(mak)m(es)g(no)574 +888 y(harm)i(to)h(function)e(of)i Fi(TVS)e Fn(and)h(if)f(it)h(causes)h +(\014lename)f(con\015ict,)g Fi(TVS)g Fn(stops)g(with)f(an)h(error.)94 +1146 y Fm(4.4)69 b(Output)44 b(directory)i(setting)94 +1353 y Fi(-o)30 b(dirname,)e(--output)g(dirname)574 1453 +y Fn(Sets)i(the)g(name)g(of)g(output)g(directory)f(to)i +Fi(dirname)p Fn(.)38 b(This)28 b(ma)m(y)j(b)s(e)e(only)g(useful)f(to)j +(o)m(v)m(erride)574 1553 y(setting)h(in)f(con\014g)h(\014le.)44 +b(If)32 b(con\014g)g(\014le)f(do)s(esn't)g(set)i(output)e(directory)g +(name,)i(default)e(name)574 1652 y Fi(TVS-OUT)e Fn(is)g(used)h(and)g +(this)f(is)g(created)j(in)d(w)m(orking)h(directory)-8 +b(.)94 1910 y Fm(4.5)69 b(Storing)45 b(format)h(source)f(\014les)g(and) +g(fon)l(ts)94 2117 y Fi(-f)30 b([dirname],)e(--format)g([dirname])574 +2217 y Fn(Sp)s(eci\014es)46 b(directory)g(where)g(format)h(log)g +(\014les)f(are)h(and)f(pac)m(ks)h(format)h(\014le)d(sources.)90 +b(If)574 2316 y Fi(dirname)41 b Fn(is)g(omitted,)46 b(v)-5 +b(alue)41 b(from)h(con\014g)h(\014le)e(is)h(tak)m(en.)77 +b(If)42 b Fi(format)f Fn(parameter)h(is)g(not)574 2416 +y(sp)s(eci\014ed)29 b(in)f(con\014g)i(\014le,)f Fi(TVS)g +Fn(dies)g(with)g(an)g(error.)41 b(See)30 b(Section)f(3.4)i([F)-8 +b(ormat)32 b(\014le)c(sources],)574 2516 y(page)35 b(5,)h(for)e +(details)f(ab)s(out)h(format)h(source)f(\014les)f(extracting.)53 +b(F)-8 b(ormat)35 b(\014le)e(name)i(is)e(tak)m(en)574 +2615 y(from)d(the)h(main)e(do)s(cumen)m(t)h(log)h(from)f(the)g(\014rst) +g(line)f(whic)m(h)g(con)m(tains)h Fi(format=name)p Fn(.)94 +2765 y Fi(--fmtname)e([name])574 2864 y Fn(Sp)s(eci\014es)44 +b(format)h(name,)j(e.g.)85 b Fi(plain)p Fn(,)47 b Fi(latex)p +Fn(,)g(etc.)85 b(Useful,)48 b(if)43 b(format)j(name)e(cannot)574 +2964 y(b)s(e)34 b(found)g(in)f(log)i(of)g(do)s(cumen)m(t)f(in)f(form)h +Fi(format=name)p Fn(.)51 b(Sp)s(ecifying)32 b Fi(--fmtname)c([name])574 +3064 y Fn(do)s(esn't)d(imply)d(pac)m(king)i(format)h(sources.)39 +b(Y)-8 b(ou)25 b(m)m(ust)f(sp)s(ecify)g Fi(--format)p +Fn(,)f(to)s(o.)40 b(This)22 b(option)574 3163 y(cannot)31 +b(b)s(e)f(sp)s(eci\014ed)f(in)g Fi(TVS)p Fn('s)h(con\014g)g(\014le.)94 +3313 y Fi(-d)g(file,)f(--dvips)g(file)574 3412 y Fn(Sets)39 +b(name)f(of)g Fi(dvips)f Fn(log)i(\014le.)63 b(This)36 +b(cannot)j(b)s(e)f(sp)s(eci\014ed)e(in)h(con\014g)i(\014le.)63 +b(This)37 b(is)g(only)574 3512 y(exp)s(erimen)m(tal.)81 +b(See)44 b(Section)g(3.7)h([F)-8 b(on)m(ts],)50 b(page)45 +b(6,)j(for)43 b(information)g(on)h(dvips)e(log)i(\014le)574 +3611 y(examining)37 b(and)g(fon)m(t)i(storing.)63 b(Y)-8 +b(ou)38 b(w)m(ould)f(b)s(etter)h(not)h(to)f(use)g(this)f(feature)h +(unless)f(y)m(ou)574 3711 y(kno)m(w)31 b(what)f(y)m(ou)h(are)g(doing.)p +eop +%%Page: 10 12 +10 11 bop 94 -116 a Fn(Chapter)30 b(5:)41 b(Con\014g)30 +b(\014le)g(and)f(pattern)i(\014les)2136 b(10)94 365 y +Fk(5)81 b(Con\014g)52 b(\014le)i(and)f(pattern)g(\014les)219 +594 y Fn(In)33 b(this)g(c)m(hapter)i(w)m(e)f(discuss)e(con\014g)i +(\014le)f(setting)h(and)g(structure)f(and)h(usage)g(of)g(\014les)f +(with)g(patterns.)94 693 y(These)c(are)f(used)g(to)h(shorten)f(\(cut\)) +h(\014lenames)e(to)i(use)f(reasonable)g(short)g(paths)g(in)f(output)h +(directory)g(and)94 793 y(to)k(set)f(\014les)e(whic)m(h)g(w)m(e)i(do)f +(not)h(w)m(an)m(t)g(to)g(store)g(at)g(all.)94 1054 y +Fm(5.1)69 b(Con\014g)44 b(\014le)219 1238 y Fn(W)-8 b(e)26 +b(ma)m(y)f(set)g(v)-5 b(alues)23 b(for)h Fi(verbose,)k(format,)h +(ignore,)f(pathcuts,)22 b Fn(and)i Fi(output)f Fn(v)-5 +b(ariables)23 b(in)g(con\014g)94 1338 y(\014le.)219 1464 +y(If)31 b Fi(TVS)f Fn(is)g(run)g(with)f Fi(--config)g +Fn(switc)m(h,)i(it)g(sets)g(used)g(con\014g)g(\014le)f(name.)43 +b(If)31 b(this)f(is)g(not)h(used,)g(default)94 1563 y(con\014g)f +(\014le)e(named)g Fi(tvsrc)f Fn(in)h(w)m(orking)g(directory)h(is)e +(tried.)40 b(If)28 b(it)h(do)s(esn't)f(exist,)h(no)g(con\014g)g(\014le) +f(is)g(used)g(at)94 1663 y(all.)51 b(There)34 b(is)f(no)h(default)f +(con\014g)i(\014le)e(lo)s(cation)h(\(e.g.)53 b Fi(/etc/tvsrc)31 +b Fn(or)j(something)g(similar\))e(b)s(ecause)i(of)94 +1763 y(the)d(platform)f(indep)s(endence)e(of)i Fi(TVS)p +Fn(.)219 1889 y(The)k(structure)g(of)g(con\014g)h(\014le)e(is)g(quite)h +(simple.)50 b(Ev)m(erything)34 b(after)h Fi(#)f Fn(and)g +Fi(\045)g Fn(c)m(haracters)h(is)f(ignored.)94 1988 y(Lines)c(with)f +(structure)334 2119 y Fi(<variable>)45 b(<value>)94 2245 +y Fn(set)37 b(v)-5 b(alues)35 b(of)h(v)-5 b(ariables.)55 +b(There)36 b(m)m(ust)f(b)s(e)h(just)f(one)h(white)f(c)m(haracter)i(b)s +(et)m(w)m(een)g(the)f Fi(<variable>)d Fn(and)94 2344 +y(the)k Fi(<value>)p Fn(.)56 b(There)36 b(ma)m(y)g(b)s(e)g(an)m(y)g +(coun)m(t)h(of)f(white)g(spaces)g(b)s(efore)g(and)f(after)i(this)e +(structure)h(on)g(the)94 2444 y(line.)k(Lines)29 b(with)g(other)h +(structure)g(or)h(sp)s(ecifying)d(v)-5 b(ariables)29 +b(not)i(listed)d(b)s(elo)m(w)i(are)h(silen)m(tly)d(ignored.)219 +2570 y(F)-8 b(or)31 b(example)f(of)h(con\014g)f(\014le,)g(see)h(\014le) +f Fi(tvsrc)e Fn(enclosed)j(with)e(the)h(distribution.)219 +2696 y(V)-8 b(ariables)30 b(ha)m(v)m(e)h(meanings)f(as)g(follo)m(ws:)94 +2847 y Fi(verbose)144 b Fn(Sets)31 b(the)f(default)g(v)m(erb)s(osit)m +(y)g(lev)m(el.)41 b(Reasonable)30 b(v)-5 b(alues)30 b(are)574 +2998 y Fi(0)432 b Fn(This)29 b(is)g(the)i(default.)574 +3149 y Fi(1,)f(2)306 b Fn(Set)32 b(v)m(erb)s(osit)m(y)g(lev)m(el)f(to)h +(1)g(or)g(2.)45 b(See)32 b(Section)f(4.2)i([Global)e(switc)m(hes],)h +(page)g(8,)1054 3249 y(for)f(description)d(of)j(v)m(erb)s(osit)m(y)f +(lev)m(els.)94 3400 y Fi(format)192 b Fn(Sets)33 b(the)g(name)g(of)f +(the)h(directory)f(where)g(format)h(log)g(\014les)e(are)i(stored.)48 +b(This)30 b(is)i(used)g(only)574 3499 y(of)f Fi(--format)d +Fn(or)j Fi(-f)f Fn(switc)m(h)g(is)f(set)j(and)d(ma)m(y)j(b)s(e)e(o)m(v) +m(erridden)f(b)m(y)i(this.)40 b(Y)-8 b(ou)31 b(should)d(sp)s(ecify)574 +3599 y Fi(format)d Fn(parameter)i(in)e(con\014g)i(\014le)e(if)h(y)m(ou) +g(w)m(an)m(t)h(to)h(store)f(format)f(sources.)40 b(And)25 +b(y)m(ou)i(should)574 3699 y(store)k(format)g(sources.)41 +b(Simply|use)27 b(it.)94 3850 y Fi(ignore)192 b Fn(Sets)38 +b(the)f(name)h(of)f(\014le)f(with)g(patterns)h(used)g(to)h(ignore)f +(\014les.)60 b(See)37 b(Section)g(5.2.2)j([Ignore)574 +3949 y(pattern)k(\014le],)i(page)e(11,)j(for)c(information)e(ab)s(out)i +(ignoring)f(\014les.)78 b(This)41 b(is)h(used)h(only)f(if)574 +4049 y Fi(--ignore)29 b Fn(or)h Fi(-i)g Fn(switc)m(h)g(is)f(set)i(and)f +(ma)m(y)h(b)s(e)e(o)m(v)m(erridden)h(b)m(y)g(this.)94 +4200 y Fi(pathcuts)96 b Fn(Sets)31 b(the)f(name)g(of)g(\014le)f(with)g +(patterns)h(used)f(to)h(shorten)g(the)g(stored)g(\014lenames.)40 +b(Used)30 b(only)574 4299 y(if)g Fi(--pathcuts)d Fn(or)k +Fi(-p)f Fn(switc)m(h)f(is)h(set)h(and)e(ma)m(y)i(b)s(e)f(o)m(v)m +(erridden)g(b)m(y)g(these.)94 4450 y Fi(output)192 b +Fn(Sets)42 b(the)h(default)e(output)g(directory)h(name.)75 +b(Ma)m(y)43 b(b)s(e)e(o)m(v)m(erridden)g(b)m(y)h Fi(--output)e +Fn(or)i Fi(-o)574 4550 y Fn(switc)m(h.)f(If)30 b(not)g(set,)h(default)f +(v)-5 b(alue)30 b Fi(TVS-OUT)e Fn(is)i(used.)94 4811 +y Fm(5.2)69 b(P)l(attern)46 b(\014le)f(structure)219 +4995 y Fn(The)20 b(structure)g(of)h(\014les)e(whic)m(h)g(con)m(tain)i +(patterns)g(is)e(quite)h(simple.)36 b(Ev)m(erything)20 +b(after)h Fi(#)f Fn(or)g Fi(\045)g Fn(c)m(haracters)94 +5095 y(is)33 b(ignored.)47 b(A)34 b(line)d(of)i(the)g(\014le)f(ma)m(y)i +(start)g(and)e(end)h(with)e(white)h(c)m(haracters.)51 +b(These)32 b(white)g(c)m(haracters)94 5194 y(are)f(ignored.)40 +b(The)30 b(remaining)e(part)j(of)f(the)h(line)d(\(if)i(it)g(is)g +(nonempt)m(y\))g(is)g(considered)f(to)i(b)s(e)f(a)g(pattern.)219 +5320 y(A)i(pattern)g(is)f(treated)i(as)f(a)h(P)m(erl)e(regular)g +(expression.)44 b(It)32 b(do)s(esn't)g(matter)h(if)e(y)m(ou)h(don't)g +(kno)m(w)g(what)94 5420 y(it)f(is,)g(all)e(y)m(ou)j(need)f(to)g(kno)m +(w)g(is)f(seen)i(from)e(the)h(examples.)43 b(Nev)m(ertheless)31 +b(y)m(ou)h(ma)m(y)f(try)g Fi(man)f(perlre)f Fn(or)94 +5519 y(equiv)-5 b(alen)m(t)30 b(for)g(reading)g(do)s(cumen)m(tation)g +(on)g(y)m(ou)h(system.)219 5645 y(Next,)g(w)m(e'll)f(discuss)f(the)h +(usage)h(of)g(pattern)f(\014les.)p eop +%%Page: 11 13 +11 12 bop 94 -116 a Fn(Chapter)30 b(5:)41 b(Con\014g)30 +b(\014le)g(and)f(pattern)i(\014les)2136 b(11)94 365 y +Fb(5.2.1)63 b(P)m(athcuts)40 b(pattern)g(\014le)219 548 +y Fn(This)35 b(\014le)g(is)h(used)g(if)f Fi(--pathcuts)f +Fn(or)i Fi(-p)g Fn(switc)m(h)g(is)g(sp)s(eci\014ed.)57 +b(An)36 b(example)h(is)e(enclosed)i(with)e(the)94 648 +y(distribution)27 b(and)j(named)g Fi(pathcuts.tvs)p Fn(.)219 +772 y(The)e(\014le)g(sp)s(eci\014es)g(list)f(of)i(patterns)g(whic)m(h)e +(are)i(compared)g(to)h(the)f Fh(b)-5 b(e)g(ginnings)36 +b Fn(of)29 b(\014lenames.)39 b(On)28 b Fh(\014rst)94 +872 y(match)44 b Fn(the)35 b(matc)m(hing)g(part)f(is)g(cut)h(and)g(the) +g(rest)g(of)g(pattern)g(list)e(is)h(not)h(used.)54 b(So)35 +b(it)f(has)h(no)f(sense)h(to)94 971 y(ha)m(v)m(e)d(a)f(pattern)f(list) +334 1100 y Fi(/usr/TeX)334 1204 y(/usr/TeX/texmf)94 1328 +y Fn(as)h(the)g(second)f(en)m(try)h(will)c(b)s(e)j(nev)m(er)h(used.)40 +b(But)30 b(sequence)334 1457 y Fi(/usr/TeX/texmf)334 +1561 y(/usr/TeX)94 1685 y Fn(ma)m(y)h(b)s(e)f(reasonable.)41 +b(\(It's)31 b(an)f(exercise)h(wh)m(y)e(and)h(when)g Fi(:-\))p +Fn(.\))219 1810 y(An)g(example:)40 b(Let)31 b(us)f(ha)m(v)m(e)i +(pattern)e(list)f(con)m(taining)h Fi(/usr/TeX/texmf)p +Fn(.)37 b(If)30 b(\014lename)f(is)334 1939 y Fi +(/usr/TeX/texmf/tex/latex/a)o(lgor)o(ith)o(/alg)o(orit)o(hm.)o(sty)94 +2063 y Fn(it)h(matc)m(hes)i(and)e(is)f(cut)i(to)334 2192 +y Fi(tex/latex/algorith/algorit)o(hm.s)o(ty)94 2316 y +Fn(File)f Fi(inputs/my_macro.tex)25 b Fn(do)s(esn't)30 +b(matc)m(h)i(the)e(pattern)h(and)e(is)h(left)g(un)m(touc)m(hed.)94 +2540 y Fb(5.2.2)63 b(Ignore)42 b(pattern)e(\014le)219 +2723 y Fn(This)30 b(\014le)g(is)h(used)g(when)f Fi(--ignore)f +Fn(or)j Fi(-i)f Fn(switc)m(h)g(is)f(sp)s(eci\014ed.)43 +b(An)31 b(example)g(named)g Fi(ignpats.tvs)94 2823 y +Fn(is)f(enclosed.)219 2947 y(This)j(\014le)g(sp)s(eci\014es)g(list)g +(of)i(patterns)f(whic)m(h)f(are)i(compared)f(to)i Fh(ends)42 +b Fn(of)35 b(\014lenames.)51 b(If)34 b Fh(any)43 b Fn(of)35 +b(them)94 3047 y(matc)m(hes,)41 b(\014le)36 b(is)g(ignored)g(and)h(is)f +(not)h(copied)g(to)h(output.)60 b(Usually)-8 b(,)38 b(su\016ces)f(of)g +(\014les)f(\(e.g.)62 b Fi(toc,)29 b(bbl)p Fn(\))94 3147 +y(are)40 b(used)e(here.)67 b(If)39 b(y)m(ou)g(w)m(an)m(t)h(mak)m(e)g +(sure)f(that)g(there)h(is)e(a)h(dot)g(b)s(efore)g Fi(toc)f +Fn(or)h Fi(bbl)p Fn(,)i(use)e Fi(\\.toc)f Fn(and)94 3246 +y Fi(\\.bbl)31 b Fn(en)m(tries)h(in)e(pattern)j(\014le)e(as)h(en)m +(tries)g(are)g(PERL)f(regular)h(expressions.)44 b(F)-8 +b(or)33 b(detailed)e(information)94 3346 y(see)g Fi(perlre\(1\))p +Fn(.)219 3470 y(Use)h(this)e(feature)i(with)e(care,)j(it)e(is)f +(usually)f(b)s(etter)j(to)g(ha)m(v)m(e)g(a)g(sup)s(erset)e(of)i(needed) +f(complete)h(source)94 3570 y(then)25 b(ha)m(v)m(e)h +Fh(inc)-5 b(omplete)33 b Fn(source.)39 b(There)25 b(ma)m(y)g(b)s(e)g +(\014les)e(whic)m(h)h(loaded)g(\(and)h(y)m(ou)g(don't)g(kno)m(w)g(ab)s +(out)g(them\))94 3670 y(with)f(su\016ces)h(y)m(ou)g(don't)g(exp)s(ect.) +40 b(Use)25 b(it)g(only)f(if)g(y)m(ou)h(kno)m(w)g(what)g(y)m(ou)h(are)f +(doing.)38 b(Y)-8 b(ou'v)m(e)27 b(b)s(een)d(w)m(arned.)p +eop +%%Page: 12 14 +12 13 bop 94 -116 a Fn(App)s(endix)28 b(A:)j(Credits)2858 +b(12)94 365 y Fk(App)t(endix)54 b(A)81 b(Credits)219 +589 y Fn(I)30 b(w)m(ould)f(lik)m(e)h(to)h(thank)f(to:)169 +714 y Fl(\017)60 b Fn(P)m(etr)31 b(So)5 b(jk)-5 b(a,)30 +b(who)f(made)g(me)h(to)g(write)f Fi(TVS)g Fn(and)g(help)s(ed)e(me)j(v)m +(ery)g(m)m(uc)m(h)g(with)e(all)g(the)i(troubles)f(and)274 +814 y(decisions)g(w)m(e)i(ha)m(v)m(e)h(had)d(to)j(mak)m(e,)169 +938 y Fl(\017)60 b Fn(Ric)m(hard)30 b(Bot)-10 b(\023)-35 +b(\020k,)31 b(who)f(len)m(t)g(me)h(the)f(\\P)m(erl)h(Camel)e(Bo)s(ok")j +(for)e(a)h(fortnigh)m(t,)169 1063 y Fl(\017)60 b Fn(man)m(y)31 +b(others,)169 1187 y Fl(\017)60 b Fn(Bub)s(o,)41 b(m)m(y)f(home)f +(computer,)i(as)f(it)e(surprisingly)d(didn't)i(get)k(o)m(v)m(erheated)g +(to)s(o)f(m)m(uc)m(h)f(during)e(the)274 1287 y(terribly)29 +b(hot)h(spring)f(of)h(y)m(ear)i(2000)g(in)d(middle)f(Europ)s(e.)p +eop +%%Page: 13 15 +13 14 bop 94 -116 a Fn(App)s(endix)28 b(B:)j(Dealing)f(with)f(bugs)h +(in)f Fi(TVS)2150 b Fn(13)94 365 y Fk(App)t(endix)54 +b(B)80 b(Dealing)55 b(with)f(bugs)e(in)i Ff(TVS)219 589 +y Fn(Please)25 b(send)f(bug-rep)s(orts)h(to)g Fi(xantos)k(\(at\))g +(fi.muni.cz)22 b Fn(with)i(sub)5 b(ject)25 b Fi(TVS)k(bug)p +Fn(.)38 b(Add)25 b(information)94 689 y(on)g(platform,)f(T)657 +709 y(E)707 689 y(X)g(installation)f(and)g(include)f(log)i(\014les)f +(whic)m(h)g(w)m(ere)i(parsed.)38 b(Also)23 b(please)h(note)h(v)m +(ersion)f(of)94 789 y(TVS,)31 b(b)s(oth)g(v)m(ersion)g(n)m(um)m(b)s(er) +f(and)g(CVS)h(v)m(ersion)g(co)s(de)g(\(it's)g(the)h(line)d(con)m +(taining)i Fi($Id:)e(tvs.pl,v...)p Fn(\).)94 888 y(Y)-8 +b(ou)31 b(can)g(get)h(this)d(information)f(b)m(y)j(running)c +Fi(tvs)j(--help)p Fn(.)219 1013 y(If)41 b(y)m(ou)h(tried)f(to)h +(compare)h Fi(.dvi)d Fn(\014les)h(obtained)g(running)e(T)2443 +1032 y(E)2493 1013 y(X)j(on)f(v)-5 b(arious)41 b(platforms)g(using)f +Fi(TVS)94 1112 y Fn(complete)35 b(source,)h(please)f(k)m(eep)g(in)e +(mind)f(they)j(ma)m(y)g(di\013er)e(if)h(something)g(dep)s(ending)e(on)i +(\\the)h(state)h(of)94 1212 y(the)31 b(computer")g(\(esp)s(ecially)e +(date\))i(w)m(as)g(included.)p eop +%%Page: -1 16 +-1 15 bop 3849 -116 a Fn(i)94 365 y Fk(T)-13 b(able)55 +b(of)e(Con)l(ten)l(ts)94 697 y Fm(1)135 b(In)l(tro)t(duction)11 +b Fa(.)20 b(.)g(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h +(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.) +56 b Fm(1)393 822 y Fn(1.1)92 b(Wh)m(y)31 b(do)f(y)m(ou)h(need)f +Fi(TVS)p Fn(?)10 b Fh(.)k(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)40 b Fn(1)393 922 +y(1.2)92 b(What)31 b Fi(TVS)f Fn(can)h(do?)15 b Fh(.)f(.)h(.)g(.)g(.)g +(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)h(.)44 b Fn(1)393 1021 y(1.3)92 b(What)31 b(do)g(y)m(ou)f(need)h +(to)g(run)e Fi(TVS)p Fn(?)24 b Fh(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)55 b Fn(2)94 1254 y Fm(2)135 b(Installation)17 +b Fa(.)22 b(.)d(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.) +h(.)61 b Fm(3)94 1511 y(3)135 b(Using)46 b Fj(TVS)d Fm(step)i(b)l(y)g +(step)32 b Fa(.)20 b(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.) +f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)76 b Fm(4)393 +1636 y Fn(3.1)92 b(Useful)30 b(commands)11 b Fh(.)k(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)41 b Fn(4)393 1735 y(3.2)92 b(Basic)31 b(running)d +Fi(TVS)20 b Fh(.)14 b(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)50 b +Fn(4)393 1835 y(3.3)92 b(Ignoring)30 b(\014les)18 b Fh(.)13 +b(.)i(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)47 b +Fn(5)393 1934 y(3.4)92 b(F)-8 b(ormat)32 b(\014le)e(sources)e +Fh(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)58 b Fn(5)393 2034 y(3.5)92 +b(Con\014guration)29 b(\014le)14 b Fh(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.) +f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)44 b Fn(5)393 2134 y(3.6)92 b(Limitations)29 b(of)i +Fi(TVS)15 b Fh(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)45 b Fn(6)393 +2233 y(3.7)92 b(F)-8 b(on)m(ts)15 b Fh(.)i(.)e(.)g(.)g(.)g(.)g(.)g(.)g +(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h +(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)45 b Fn(6)393 +2333 y(3.8)92 b(What)31 b(to)h(do)e(with)f(collected)i(output)13 +b Fh(.)h(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)42 b +Fn(7)94 2565 y Fm(4)135 b(Reference)46 b(guide)g(to)f +Fj(TVS)e Fm(commands)d Fa(.)20 b(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.) +f(.)h(.)84 b Fm(8)393 2690 y Fn(4.1)92 b(In)m(v)m(oking)31 +b Fi(TVS)17 b Fh(.)d(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)47 +b Fn(8)393 2790 y(4.2)92 b(Global)30 b(switc)m(hes)e +Fh(.)15 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)58 b Fn(8)393 +2889 y(4.3)92 b(Ignoring)30 b(\014les)f(and)h(cutting)g(\014lenames)c +Fh(.)15 b(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)57 b Fn(8)393 +2989 y(4.4)92 b(Output)30 b(directory)g(setting)22 b +Fh(.)14 b(.)i(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)h(.)51 b Fn(9)393 3088 y(4.5)92 b(Storing)30 +b(format)h(source)f(\014les)f(and)h(fon)m(ts)c Fh(.)15 +b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)55 b Fn(9)94 3321 y Fm(5)135 +b(Con\014g)45 b(\014le)g(and)g(pattern)h(\014les)11 b +Fa(.)19 b(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h +(.)f(.)h(.)55 b Fm(10)393 3445 y Fn(5.1)92 b(Con\014g)30 +b(\014le)d Fh(.)15 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +57 b Fn(10)393 3545 y(5.2)92 b(P)m(attern)32 b(\014le)d(structure)d +Fh(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)55 b Fn(10)692 3645 y(5.2.1)93 b(P)m(athcuts)31 +b(pattern)g(\014le)21 b Fh(.)14 b(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) +g(.)g(.)g(.)50 b Fn(11)692 3744 y(5.2.2)93 b(Ignore)31 +b(pattern)f(\014le)f Fh(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)59 b Fn(11)94 3977 y Fm(App)t(endix)44 +b(A)134 b(Credits)24 b Fa(.)d(.)e(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f +(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)69 +b Fm(12)94 4234 y(App)t(endix)44 b(B)134 b(Dealing)47 +b(with)e(bugs)g(in)g Fj(TVS)15 b Fa(.)j(.)h(.)h(.)f(.)h(.)f(.)h(.)f(.)g +(.)h(.)60 b Fm(13)p eop +%%Trailer +end +userdict /end-hook known{end-hook}if +%%EOF diff --git a/support/TVS/TVS/docs/tvs.texi b/support/TVS/TVS/docs/tvs.texi new file mode 100644 index 0000000000..06084a36c9 --- /dev/null +++ b/support/TVS/TVS/docs/tvs.texi @@ -0,0 +1,913 @@ +\input texinfo @c -*-texinfo-*- +@c %**start of header +@setfilename tvs.info +@settitle @TeX{} Versioning System +@afourpaper +@c %**end of header + +@c This is TeX Versioning System documentation +@c $Id: tvs.texi,v 1.23 2000/08/16 17:00:24 antos Exp $ + +@titlepage +@title @TeX{} Versioning System +@subtitle Software for storing complete source codes of @TeX{} documents +@author by David Anto@v{s} + +@page +@vskip 0pt plus 1filll +Copyright @copyright{} 2000 David Anto@v{s} + +Permission is granted to make and distribute verbatim copies of +this manual provided the copyright notice and this permission notice +are preserved on all copies. + +@ignore +Permission is granted to process this file through TeX and print the +results, provided the printed document carries copying permission +notice identical to this one except for the removal of this paragraph +(this paragraph not being relevant to the printed manual). +@end ignore + +Permission is granted to copy and distribute modified versions of this +manual under the conditions for verbatim copying, provided that the +entire resulting derived work is distributed under the terms of a +permission notice identical to this one. + +Permission is granted to copy and distribute translations of this manual +into another language, under the above conditions for modified versions, +except that this permission notice may be stated in a translation approved +by the Free Software Foundation. + +@end titlepage + +@dircategory TeX +@direntry +* TVS: (tvs) TeX Versioning System +@end direntry + +@c --------------------------------------------------------------------- +@node Top, Copying, (dir), (dir) +@ifnottex +@chapter @TeX{} Versioning System +This is documentation of @TeX{} Versioning System, software for storing +complete source codes of @TeX{} documents. + +@menu +* Copying:: +* Introduction:: +* Installation:: +* Using @code{TVS} step by step:: +* Reference guide to @code{TVS} commands:: +* Config file and pattern files:: +* Credits:: +* Dealing with bugs in @code{TVS}:: + +@detailmenu + --- The Detailed Node Listing --- + +Introduction + +* Why do you need @code{TVS}?:: +* What @code{TVS} can do?:: +* What do you need to run @code{TVS}?:: + +Using @code{TVS} step by step + +* Useful commands:: +* Basic running @code{TVS}:: +* Ignoring files:: +* Format file sources:: +* Configuration file:: +* Limitations of @code{TVS}:: +* Fonts:: +* What to do with collected output:: + +Reference guide to @code{TVS} commands + +* Invoking @code{TVS}:: +* Global switches:: +* Ignoring files and cutting filenames:: +* Output directory setting:: +* Storing format source files and fonts:: + +Config file and pattern files + +* Config file:: +* Pattern file structure:: + +Pattern file structure + +* Pathcuts pattern file:: +* Ignore pattern file:: + +@end detailmenu +@end menu + +@c -------------------------------------------------------------------- +@node Copying, Introduction, Top, Top +@chapter Copying + +The program @code{TVS} and its documentation is written and +maintained by David Anto@v{s}, @email{xantos +(at) fi.muni.cz}. (Of course substitute (at) with @@.) +Contact him when in trouble, but please read the documentation first. + +Copyright @copyright{} 2000 David Anto@v{s} + +Permission is granted to make and distribute verbatim copies of +this manual provided the copyright notice and this permission notice +are preserved on all copies. + +@ignore +Permission is granted to process this file through TeX and print the +results, provided the printed document carries copying permission +notice identical to this one except for the removal of this paragraph +(this paragraph not being relevant to the printed manual). +@end ignore + +Permission is granted to copy and distribute modified versions of this +manual under the conditions for verbatim copying, provided that the +entire resulting derived work is distributed under the terms of a +permission notice identical to this one. + +Permission is granted to copy and distribute translations of this manual +into another language, under the above conditions for modified versions, +except that this permission notice may be stated in a translation approved +by the Free Software Foundation. + +@end ifnottex + +@c ------------------------------------------------------------------- +@node Introduction, Installation, Copying, Top +@chapter Introduction + +This is documentation of @TeX{} Versioning System, software for storing +complete source codes of @TeX{} documents. + +Version 1.0 + +(Documentation CVS ver. $Id: tvs.texi,v 1.23 2000/08/16 17:00:24 antos Exp $) + +@menu +* Why do you need @code{TVS}?:: +* What @code{TVS} can do?:: +* What do you need to run @code{TVS}?:: +@end menu + +@node Why do you need @code{TVS}?, What @code{TVS} can do?, Introduction, Introduction +@section Why do you need @code{TVS}? + +It must have happened to you. You use @TeX{} at work. You run another +distribution at home. You wrote a beautiful document at home, you came to +work and got error message @code{I can't find file `foo.tex'}. There is a +package missing in your work installation. + +Or: You wrote a beautifully typeset book several years ago. +You used em-@TeX{} on M$-DOS machine. The book should be typeset again. You +have only my_book.tex and no macros you used. What to do? + +To be serious, there is nothing to be done now. But if you stored the +@emph{complete} source of the documents, it didn't have to happen to you. +And how to store the complete source? It's simple---use @code{TVS}. + +@cartouche +Please! Please! Packing complete @TeX{} document sources is a delicate +and sensitive operation. Read the entire manual before you use +@code{TVS} to do something important. This kind of software can be +useful for you if and only if you use it correctly. I'm sorry for this +but it's the fact. +@end cartouche + +@node What @code{TVS} can do?, What do you need to run @code{TVS}?, Why do you need @code{TVS}?, Introduction +@section What @code{TVS} can do? + +@code{TVS} can store complete source codes of @TeX{} documents. It parses +logs of @TeX{} and finds files which were used to typeset the document. +@code{TVS} can work in three levels: + +@itemize @bullet +@item Only document log is examined. It stores all macros, styles, +included documents etc. you need. +@item Document log and format log is examined. It also stores all +source files needed to build up format file. +@item (experimental) Moreover dvips log is parsed and used fonts are +stored. This is not so useful as only @code{.pk} +files may be obtained this way. +@end itemize + +Files collected by @code{TVS} can be used on any @TeX{} installation to +build up exactly the same document. +Next, let us call the product of @code{TVS} a @emph{complete source}. + +There are several important features of @code{TVS}: + +@itemize @bullet +@item @code{TVS} is a Perl script, it runs wherever Perl is available (it +means nearly everywhere). +@item There is no difference in using of @code{TVS} when running La@TeX{}, +plain, or whatever you want. +@item On the destination (the place you typeset the complete source), there is +no need to run @code{TVS}. You only need to say @TeX{} to find files +in working directory first. +@item @code{TVS} is @emph{not} a version control system. It cannot handle +versions of your documents. There are other systems, e.g., @code{RCS} or +@code{CVS}, designed to do this. +@end itemize + +@node What do you need to run @code{TVS}?, , What @code{TVS} can do?, Introduction +@section What do you need to run @code{TVS}? + +Hardware and OS requirements are simple. @code{TVS} is a Perl script so it +runs wherever Perl 5.x is available. +It uses packages Getopt::Long, File::Basename, File::Copy, and +File::Path. These packages should be nevertheless in standard Perl +distribution. + +For information on Perl for your OS check +@url{http://www.perl.com}. There should be no problem on most Unices, in +Linux, Perl is usually a part of standard distribution. + +Maybe you find useful having also @code{make} and @code{Texinfo} +utilities installed on your system, but @code{Texinfo} is only needed to +produce documentation in DVI, PostScript, Info, or HTML formats which +are pregenerated in @code{TVS} distribution. And @code{make} is only to +generate them comfortably. + +There are some requirements for your @TeX{} source codes to be able to +handle them successfully. There is a problem with including files into your +source. The usual and best way to do it is to have the main source at the +top of the source tree and use relative paths in all variants of +@code{\input} command. +Avoid pathological inputs like +@code{\includegraphics ../../pictures/pict1.ps}. +This should not bother you as nearly everybody does it. + +Usually @code{TVS} is able to pack files referenced by ``up-going'' +relative path (if it makes a conflict, @code{TVS} +recognizes it), but you run into difficulties when re-typesetting the +complete source and you have to correct all the things by hand. + +@c ------------------------------------------------------------------------ +@node Installation, Using @code{TVS} step by step, Introduction, Top +@chapter Installation + +The program @code{TVS} and its documentation is written and +maintained by David Anto@v{s}, @email{xantos +(at) fi.muni.cz}. (Of course substitute (at) with @@.) +Contact him when in trouble, but please read the documentation first. + +The following instructions assume that Perl version >=5 is installed on +your system. For information on Perl consult @url{http://www.perl.org}. + +The homepage of @code{TVS} is @url{http://www.fi.muni.cz/~xantos/tvs}. +Here you can get @code{TVS} either file-by-file or as @code{tvs.tar.gz} +file. @code{TVS} can also be obtained on CTAN in @code{support/TVS}. + +Because of platform independence we decided not to prepare any +``instant'' packages. + +If you downloaded @code{tvs.tar.gz}, gunzip and un-tar it somewhere. If +you downloaded separate files, reconstruct the original file structure +anywhere you want. + +On UNIX, make a link to @code{tvs.pl} from a directory which is in your +@code{PATH}, e.g. @code{/usr/local/bin}, if your system decodes first +lines of scripts to run them. In this case, it may be needed to correct +the very first line of @code{tvs.pl} and put the right path to your Perl +interpreter there. Otherwise you may still run @code{TVS} +running @code{perl tvs.pl}. Install the documentation in your favorite +format, where your docs-reader can find it. At least, +@code{/usr/doc/tvs} wouldn't be a bad choice to store Post Script or +HTML documentation. + +Generally speaking, there is no need to install @code{TVS} to global +directories if you are the only-one who runs it or you are not root. + +Try @code{tvs --help}. If a TVS header and help message written, +everything is OK. + +If your standard Perl distribution does not contain packages +Getopt::Long, File::Basename, File::Copy, and File::Path, get them from +@url{http://www.perl.org}. + +On M$ DOS/Window$ platforms the @code{.pl} suffix should be enough for +Perl script to run, of course if Perl is correctly installed. Please do +not expect me to make better support for M$ platforms as I do not run +them. + +On other platforms, if there are difficulties in installing or running +@code{TVS}, please drop me a line. + +@c ------------------------------------------------------------------------ +@node Using @code{TVS} step by step, Reference guide to @code{TVS} commands, Installation, Top +@chapter Using @code{TVS} step by step + +This chapter shows the usage of @code{TVS} and various examples. It also +points out the limitations of this system, in other words what it +@emph{can} do for you (and it's quite a lot) and what it cannot. Yes, there +are some unpleasant things you must do manually. + +@menu +* Useful commands:: +* Basic running @code{TVS}:: +* Ignoring files:: +* Format file sources:: +* Configuration file:: +* Limitations of @code{TVS}:: +* Fonts:: +* What to do with collected output:: +@end menu + +@node Useful commands, Basic running @code{TVS}, Using @code{TVS} step by step, Using @code{TVS} step by step +@section Useful commands + +To make sure that @code{TVS} is correctly installed on your system, run +@code{tvs -h}. +You should obtain a short help on using @code{TVS}. + +There are two useful switches you should know before starting experiments +with @code{TVS}. You may increase verbosity level using @code{-v} or even +@code{-vv} switch. @xref{Global switches}, for detailed information +on verbosity levels. + +In following examples you may also specify @code{--dummy} command. It means +that no files are really copied and no real output is produced. But +everything else looks like real operations were performed. + +@node Basic running @code{TVS}, Ignoring files, Useful commands, Using @code{TVS} step by step +@section Basic running @code{TVS} + +Now it's time to look to the @code{examples} directory in your +distribution. It contains source file @code{sample.tex} we will use to +demonstrate the usage of @code{TVS}. + +The first step you must not forget is to @TeX{} your source correctly. +Document @code{sample.tex} uses @code{\tableofcontents}, so you must run +@example +latex sample.tex +@end example +@noindent +twice. Make sure your document is @TeX{}ed correctly. It is @emph{very +very} important. + +Let's try what @code{TVS} can do now. First try to run +@example +tvs sample.log +@end example +@noindent +The most important for @code{TVS} is log file @code{sample.log}. You do not +have to specify name with @code{.log} extension as it is tried to add +automatically. +What @code{TVS} now does? It goes through the file @code{sample.log} +and finds +all the files which are needed to build up the final document. + +@code{TVS} created an output directory named @code{TVS-OUT}. Check its +contents. In fact, on M$-DOS or M$-Windows machines this didn't work. +@footnote{Do not install Linux immediately, we will correct it in the +next paragraph. @code{;-)}} +On UN*X machines, there is stupidly deep directory structure containing +only one directory in another. + +There is a way to avoid this. +Please copy file @code{pathcuts.tvs} into the @code{examples} directory. +Edit @code{pathcuts.tvs}, replace path @code{/usr/TeX/texmf} with the path +to your @TeX{} main directory. + +Delete the @code{TVS-OUT} directory and run +@example +tvs -v -p pathcuts.tvs sample +@end example +@noindent +See what @code{TVS} does now. +You may also check what is in the @code{TVS-OUT} directory. +By @code{-p file} we say that @code{file} contains paths we want to shorten. +On M$ file system, there is in fact needed to use this to +cut things like @code{c:\} to be able to construct file names used in the +output directory. + +@node Ignoring files, Format file sources, Basic running @code{TVS}, Using @code{TVS} step by step +@section Ignoring files + +As you can see, there is @code{sample.toc} in the output directory. We do +not really need it as it can be always generated. Now let us show the way +how to ignore files. Please copy file @code{ignpats.tvs} to the working +directory. This file contains patterns which are compared to ends of +files. Matching files are not copied to the output directory. + +If you want to try it, delete the output directory and run +@example +tvs -v -p pathcuts.tvs -i ignpats.tvs sample +@end example +@noindent +Now files ending with @code{toc} are missing. + +@emph{Warning:} use this feature with care and only if you know what you +are doing. Always make sure that files you want to ignore may be rebuilt up +from the rest of the source. + +@node Format file sources, Configuration file, Ignoring files, Using @code{TVS} step by step +@section Format file sources + +In fact, storing the complete document source may not be enough to be able +to produce the same output. We must also store format source files. Storing +only the format file itself doesn't help as this file is not +binary compatible in general. + +The main thing you need is to know where log files of generated formats +are stored. To obtain this information consult your local documentation, or +you may try to find files @code{latex.log, tex.log, pdftex.log}, or ask +your @TeX{} administrator. It is also possible that your administrator +deleted log files after generating formats. In this case ask him to +regenerate format files and leave the logs untouched. +This is not a good manner to delete log files of this importance. +Your administrator may have even delete format file sources. In this case, +ask him to reinstall them and better find a new @TeX{} administrator. + +You should make sure that formats were really generated on your local +installation. They may have been generated on a binary compatible +machine with other organization of @TeX{} directories. If so, you must +re-generate them. If you run a distribution which allows you to set +local @TeX{} installation root directory, this is quite possible. For +example, on my texlive-4 I had to correct this. + +In emergency, if you do not have root privilegies and you cannot +globally make format logs correct, you still can generate formats in +your own directory and use them overriding your system defaults. +In this case, give your root my regards. + +To store format sources, you need to tell @code{TVS} where logs are. +It is done by @code{-f path} switch. Let's try to call +@example +tvs -v -p pathcuts.tvs -f where_your_logs_are sample +@end example +@noindent +You should obtain output directory similar to previous one but containing +subdirectory named @code{FORMAT}, where complete source for format +generating is stored. + +If @code{TVS} is not able to determine format name correctly, you may +force format name by adding @code{--fmtname name} into command line +similar to previous example. You may try +@example +tvs -v -p pathcuts.tvs -f where_your_logs_are --fmtname latex sample +@end example + +@node Configuration file, Limitations of @code{TVS}, Format file sources, Using @code{TVS} step by step +@section Configuration file + +The command lines we use are getting too long. If file @code{tvsrc} is +located in the working directory, it is used as config file. You may +also specify the config file explicitly by @code{-c filename} or +@code{--config filename} switch. + +Please copy file @code{tvsrc} to the @code{examples} directory. Config file +has simple structure +@example +<variable> <value> +@end example +Values set here may be always overridden by the command line. Setting +values for ignore, pathcuts and format doesn't mean that files are +ignored, paths cut and format sources stored by default. You must use +switches @code{-i, -p} and @code{-f}, but there is no need to follow +them by values. +It may seem a bit strange but it is done this way in order to prevent +you from doing something you do not want to. It doesn't save your +keystrokes but---we hope---your nerves. + +If you edit the @code{format} entry in @code{tvsrc} to the path to your +format logs, you may for example use +@example +tvs -i -p -f -v sample +@end example +@noindent +to store the source with format with ignoring files and cutting paths +instead of the long form without config file which goes +@example +tvs -i ignpats.tvs -p pathcuts.tvs -f /usr/TeX/texmf/web2c -v sample +@end example + +But if you use only +@example +tvs -p sample +@end example +@noindent +then no format file is examined and no files are ignored, no matter that +the config file exists. + +In the config file you may also specify the default output +directory name with +@code{output} entry and the default verbosity level using +@code{verbose} with value 0, 1, or 2. These values are used always +and may be overridden with +@code{-o} and @code{-v}. + +@node Limitations of @code{TVS}, Fonts, Configuration file, Using @code{TVS} step by step +@section Limitations of @code{TVS} + +Work of @code{TVS} is limited by the files which are noticed in log files. +If you use anything which is done by external program, you must take +special care on files you want to store. If you include graphics in +Post Script, it may be included only by @code{\special} command and may not +be noticed in log. + +You must always ask yourself the main important question: @emph{Which +files---not used in @TeX{} last run---I want to store?} + +For example if you use a bibliography, your source is a @code{.bib} +file. But +in the last @TeX{} run only sorted part of it, @code{.bbl} file is included. +If the @code{.bbl} file is enough for you, it's good. +But if you want to store +sources for bibliography completely, you need also @code{.bib} file and +@code{.bst} file, which contains bibliography style. And there is no way +for @code{TVS} to know it as Bib@TeX{} is an external utility. +That's why you must copy them to @code{TVS-OUT} by hand. + +If you don't do so, you are still able to obtain exactly the same document, +but you run into difficulties trying to do any modifications. + +It is always better store more than you need. If you are a @TeX{} beginner +and you are absolutely not +sure, it may be reasonable for you to preserve all the files from your +working directory. Includes from @TeX{} directory (e.g., +@code{c:\tex\texmf}) are handled correctly. + +@node Fonts, What to do with collected output, Limitations of @code{TVS}, Using @code{TVS} step by step +@section Fonts + +This is experimental! + +Usually there is no reason to store also font source files. The exception +is if your national modification of fonts changed its encoding or you use +unusual fonts. + +If you want to, +you may run @code{dvips} with @code{-d} switch to produce a log file with +list of opened files. +Consult your @code{dvips} documentation how to do it. +This switch is followed by number indicating what should be logged. + +If you use @code{tvs -d dvips.log}, a subdirectory FONTS is created +in the output +directory and all files used by dvips are stored there. +Only font bitmaps may +be obtained this way, so this feature is not very useful. If you want to +store Metafont sources, you must do it by hand. + +There is no guarantee of correct work of @code{-d} switch as @code{dvips} +log changed. + +@node What to do with collected output, , Fonts, Using @code{TVS} step by step +@section What to do with collected output + +Currently @code{TVS} implements no way of packing nor extracting collected +complete source. Use any way of packing this directory you like depending +of the platform you run @code{TVS} and the platform you will want to +re-typeset your work in the future. + +There is no way to run TVS on the destination. You must only tell @TeX{} +@itemize @bullet +@item to generate the format file if format sources were stored, +@item to generate fonts if fonts were stored, +@item to find files in working directory and its subdirectories at first. +@end itemize +To do this, consult the local documentation. + +@c ----------------------------------------------------------------------- +@node Reference guide to @code{TVS} commands, Config file and pattern files, Using @code{TVS} step by step, Top +@chapter Reference guide to @code{TVS} commands + +This chapter describes overall structure of @code{TVS} commands and +describes the function of the commands in detail. + +@menu +* Invoking @code{TVS}:: +* Global switches:: +* Ignoring files and cutting filenames:: +* Output directory setting:: +* Storing format source files and fonts:: +@end menu + +@node Invoking @code{TVS}, Global switches, Reference guide to @code{TVS} commands, Reference guide to @code{TVS} commands +@section Invoking @code{TVS} + +General structure of calling @code{TVS} is +@example +tvs [switches] filename +@end example +@noindent +where @code{filename} is a name of the main @TeX{} log file. +@code{TVS} must be run in the directory where main @TeX{} log file is +located. + +Always make sure +that your document is @TeX{}-ed correctly (index is sorted, bibliography is +present, pictures are included etc.)! Usually you have to run @TeX{} +several times to typeset the document (but we hope this doesn't +surprise you). + +@node Global switches, Ignoring files and cutting filenames, Invoking @code{TVS}, Reference guide to @code{TVS} commands +@section Global switches + +These switches may be used to change globally behavior of @code{TVS}. + +@table @code + +@item -h, --help +Prints short usage and version information and exits successfully. +This switch doesn't need a filename as a parameter. + +@item -v, --verbose +Sets verbosity level. May used several times. There are three verbosity +levels: +@itemize @bullet +@item Level 0---only examined files and errors are written. +This is the default. +@item Level 1---found files, copying info and errors are written. +@item Level 2---extra talkative, writes all it does. +@end itemize +For level 1, use @code{-v} or @code{--verbose} once, for level 2, use it +twice. You may also specify @code{-vv}, which is the most comfortable way +to do it. + +@item -c file, --config file +Specifies the configuration file name. @xref{Config file}, for +details about configuration file. + +If @code{--config} switch is not specified, file @code{tvsrc} in working +directory is used as a config file if it exists. There is no need of having +config file as all options may be set from command line. + +@item --dummy +Sets @code{TVS} to dummy mode. No files are changed, no files are really +copied to output directory, it is only shown what has to be done. Useful if +used with @code{--verbose}. (Inspired by similar switch in cdrecord.) +@end table + +@node Ignoring files and cutting filenames, Output directory setting, Global switches, Reference guide to @code{TVS} commands +@section Ignoring files and cutting filenames + +Using following settings we may set files which shouldn't be copied to +output and set usual paths we don't want to store completely. + +@table @code + +@item -i [file], --ignore [file] +Sets file with patterns of filenames which we don't want to be copied to +output. @xref{Ignore pattern file}, for details about ignore pattern file. + +If @code{file} name is omitted, value from config file is used. If +@code{ignore} parameter is not set in config file, @code{TVS} terminates +with an error. + +@item -p [file], --pathcuts [file] +Sets file with path patterns to cut. @xref{Pathcuts pattern file}, +for information about file +path names handling. + +If @code{file} name is not specified, value from config file is used. If +@code{pathcuts} parameter in config file is not specified, +@code{--pathcuts} parameter is silently ignored. It makes no harm to +function of @code{TVS} and if it causes filename conflict, @code{TVS} stops +with an error. +@end table + +@node Output directory setting, Storing format source files and fonts, Ignoring files and cutting filenames, Reference guide to @code{TVS} commands +@section Output directory setting + +@table @code + +@item -o dirname, --output dirname +Sets the name of output directory to @code{dirname}. This may be only +useful to override setting in config file. If config file doesn't set +output directory name, default name @code{TVS-OUT} is used and this is +created in working directory. +@end table + +@node Storing format source files and fonts, , Output directory setting, Reference guide to @code{TVS} commands +@section Storing format source files and fonts + +@table @code + +@item -f [dirname], --format [dirname] +Specifies directory where format log files are and packs format file +sources. If @code{dirname} is +omitted, value from config file is taken. If @code{format} parameter is not +specified in config file, @code{TVS} dies with an error. @xref{Format +file sources}, for +details about format source files extracting. +Format file name is taken from the main document log from the first line +which contains @code{format=name}. + +@item --fmtname [name] +Specifies format name, e.g. @code{plain}, @code{latex}, etc. Useful, if +format name cannot be found in log of document in form +@code{format=name}. +Specifying @code{--fmtname [name]} doesn't imply packing format sources. +You must specify @code{--format}, too. +This option cannot be specified in @code{TVS}'s +config file. + +@item -d file, --dvips file +Sets name of @code{dvips} log file. This cannot be specified in config +file. This is only experimental. @xref{Fonts}, for information on dvips +log file +examining and font storing. You would better not to use this feature unless +you know what you are doing. +@end table + +@c -------------------------------------------------------------------- +@node Config file and pattern files, Credits, Reference guide to @code{TVS} commands, Top +@chapter Config file and pattern files + +In this chapter we discuss config file setting and structure and usage of +files with patterns. These are used to shorten (cut) filenames to use +reasonable short paths in output directory and to set files which we do not +want to store at all. + +@menu +* Config file:: +* Pattern file structure:: +@end menu + +@node Config file, Pattern file structure, Config file and pattern files, Config file and pattern files +@section Config file + +We may set values for @code{verbose, format, ignore, pathcuts,} and +@code{output} variables in config file. + +If @code{TVS} is run with @code{--config} switch, it sets used config file +name. If this is not used, default config file named @code{tvsrc} in +working directory is tried. +If it doesn't exist, no config file is used at all. +There is no default config file location (e.g. +@code{/etc/tvsrc} or something similar) because of the platform independence +of @code{TVS}. + +The structure of config file is quite simple. Everything after @code{#} and +@code{%} characters is ignored. Lines with structure +@example +<variable> <value> +@end example +@noindent +set values of variables. There must be just one white character between +the @code{<variable>} and the @code{<value>}. There may be any count of +white spaces before and after this structure on the line. Lines with +other structure or specifying variables not listed below are silently +ignored. + +For example of config file, see file @code{tvsrc} enclosed with the +distribution. + +Variables have meanings as follows: + +@table @code + +@item verbose +Sets the default verbosity level. Reasonable values are +@table @code +@item 0 +This is the default. +@item 1, 2 +Set verbosity level to 1 or 2. @xref{Global switches}, for description +of verbosity levels. +@end table + +@item format +Sets the name of the directory where format log files are stored. This is +used only of @code{--format} or @code{-f} switch is set and may be +overridden by this. You should specify @code{format} parameter in config +file if you want to store format sources. And you should store format +sources. Simply---use it. + +@item ignore +Sets the name of file with patterns used to ignore files. @xref{Ignore +pattern file}, for +information about ignoring files. +This is used only if @code{--ignore} or @code{-i} switch is set and may be +overridden by this. + +@item pathcuts +Sets the name of file with patterns used to shorten the stored filenames. +Used only if @code{--pathcuts} or @code{-p} switch is set and may be +overridden by these. + +@item output +Sets the default output directory name. May be overridden by @code{--output} +or @code{-o} switch. If not set, default value @code{TVS-OUT} is used. +@end table + +@node Pattern file structure, , Config file, Config file and pattern files +@section Pattern file structure +The structure of files which contain patterns is quite simple. Everything +after @code{#} or @code{%} characters is ignored. A line of the file may +start and end with white characters. These white characters are ignored. +The remaining part of the line (if it is nonempty) is considered to be a +pattern. + +A pattern is treated as a Perl regular expression. +It doesn't matter if you don't know what it is, all you need to know is +seen from the examples. Nevertheless you may try @code{man perlre} or +equivalent for reading documentation on you system. + +Next, we'll discuss the usage of pattern files. + +@menu +* Pathcuts pattern file:: +* Ignore pattern file:: +@end menu + +@node Pathcuts pattern file, Ignore pattern file, Pattern file structure, Pattern file structure +@subsection Pathcuts pattern file + +This file is used if @code{--pathcuts} or @code{-p} switch is specified. +An example is enclosed with the distribution and named @code{pathcuts.tvs}. + +The file specifies list of patterns which are compared to the +@emph{beginnings} of +filenames. On @emph{first match} the matching part is cut +and the rest of pattern +list is not used. So it has no sense to have a pattern list +@example +/usr/TeX +/usr/TeX/texmf +@end example +@noindent +as the second entry will be never used. +But sequence +@example +/usr/TeX/texmf +/usr/TeX +@end example +@noindent +may be reasonable. (It's an exercise why and when @code{:-)}.) + +An example: Let us have pattern list containing @code{/usr/TeX/texmf}. If +filename is +@example /usr/TeX/texmf/tex/latex/algorith/algorithm.sty +@end example +@noindent +it matches and is cut to +@example +tex/latex/algorith/algorithm.sty +@end example +@noindent +File @code{inputs/my_macro.tex} doesn't match the pattern and is +left untouched. + +@node Ignore pattern file, , Pathcuts pattern file, Pattern file structure +@subsection Ignore pattern file + +This file is used when @code{--ignore} or @code{-i} switch is specified. An +example named @code{ignpats.tvs} is enclosed. + +This file specifies list of patterns which are compared to @emph{ends} +of filenames. If @emph{any} of them matches, file is ignored and is not +copied to output. Usually, suffices of files (e.g. @code{toc, bbl}) are +used here. If you want make sure that there is a dot before @code{toc} +or @code{bbl}, use @code{\.toc} and @code{\.bbl} entries in pattern file +as entries are PERL regular expressions. For detailed information see +@code{perlre(1)}. + +Use this feature with care, it is usually better to have a superset of +needed complete source then have @emph{incomplete} source. There may be +files which loaded (and you don't know about them) with suffices you +don't expect. Use it only if you know what you are doing. You've been +warned. + +@node Credits, Dealing with bugs in @code{TVS}, Config file and pattern files, Top +@appendix Credits + +I would like to thank to: +@itemize @bullet +@item +Petr Sojka, who made me to write @code{TVS} and helped me very much with +all the troubles and decisions we have had to make, +@item +Richard Bot@'{@dotless{i}}k, who lent me the +``Perl Camel Book'' for a fortnight, +@item +many others, +@item +Bubo, my home computer, as it surprisingly didn't get overheated too much +during the terribly hot spring of year 2000 in middle Europe. +@end itemize + +@node Dealing with bugs in @code{TVS}, , Credits, Top +@appendix Dealing with bugs in @code{TVS} + +Please send bug-reports to @email{xantos (at) fi.muni.cz} with subject +@code{TVS bug}. Add information on platform, @TeX{} installation and +include log files which were parsed. Also please note version of TVS, +both version number and CVS version code (it's the line containing +@code{$Id: tvs.pl,v...}). You can get this information by running +@code{tvs --help}. + +If you tried to compare @code{.dvi} files obtained running @TeX{} on +various platforms using @code{TVS} complete source, please keep in mind +they may differ if something depending on ``the state of the computer'' +(especially date) was included. + +@contents +@bye diff --git a/support/TVS/TVS/docs/tvs.toc b/support/TVS/TVS/docs/tvs.toc new file mode 100644 index 0000000000..6ebf3cbff5 --- /dev/null +++ b/support/TVS/TVS/docs/tvs.toc @@ -0,0 +1,27 @@ +\chapentry{Introduction}{1}{1} +\secentry{Why do you need \code {TVS}?}{1}{1}{1} +\secentry{What \code {TVS} can do?}{1}{2}{1} +\secentry{What do you need to run \code {TVS}?}{1}{3}{2} +\chapentry{Installation}{2}{3} +\chapentry{Using \code {TVS} step by step}{3}{4} +\secentry{Useful commands}{3}{1}{4} +\secentry{Basic running \code {TVS}}{3}{2}{4} +\secentry{Ignoring files}{3}{3}{5} +\secentry{Format file sources}{3}{4}{5} +\secentry{Configuration file}{3}{5}{5} +\secentry{Limitations of \code {TVS}}{3}{6}{6} +\secentry{Fonts}{3}{7}{6} +\secentry{What to do with collected output}{3}{8}{7} +\chapentry{Reference guide to \code {TVS} commands}{4}{8} +\secentry{Invoking \code {TVS}}{4}{1}{8} +\secentry{Global switches}{4}{2}{8} +\secentry{Ignoring files and cutting filenames}{4}{3}{8} +\secentry{Output directory setting}{4}{4}{9} +\secentry{Storing format source files and fonts}{4}{5}{9} +\chapentry{Config file and pattern files}{5}{10} +\secentry{Config file}{5}{1}{10} +\secentry{Pattern file structure}{5}{2}{10} +\subsecentry{Pathcuts pattern file}{5}{2}{1}{11} +\subsecentry{Ignore pattern file}{5}{2}{2}{11} +\chapentry{Credits}{Appendix{} A}{12} +\chapentry{Dealing with bugs in \code {TVS}}{Appendix{} B}{13} diff --git a/support/TVS/TVS/examples/sample.tex b/support/TVS/TVS/examples/sample.tex new file mode 100644 index 0000000000..e364ab5acf --- /dev/null +++ b/support/TVS/TVS/examples/sample.tex @@ -0,0 +1,20 @@ +\documentclass[11pt,a4paper,titlepage]{book} +% $Id: sample.tex,v 1.3 2000/08/16 16:59:45 antos Exp $ +\usepackage{a4wide} + +\begin{document} + +\chapter{First chapter} +This sample document is to demonstrate the usage of \texttt{TVS}, system +for storing complete source codes of \TeX{} documents. + +There is nothing important there. + +\chapter{Second chapter} +Still nothing.\footnote{What do you expect?} +\newpage +Isn't it beautiful? Twenty lines of source and you get five pages! I +wish my diploma work could be done like this\ldots + +\tableofcontents +\end{document} diff --git a/support/TVS/TVS/ignpats.tvs b/support/TVS/TVS/ignpats.tvs new file mode 100644 index 0000000000..0d27d1e877 --- /dev/null +++ b/support/TVS/TVS/ignpats.tvs @@ -0,0 +1,21 @@ +# $Author: antos $ +# $Id: ignpats.tvs,v 1.1 2000/05/07 12:35:47 antos Exp $ +# +# TVS --- TeX Versioning System ignore patterns +# +# This file contains patterns which are matched (with -i option) +# to the end of the filenames. If filename matches any of these it is +# simply ignored and it is not added to output. +# File suffices are usually put here. +# This is useful to omit files which are created automatically +# e.g. sorted index, sorted bibliography etc. +# +# Feel free to set up it to whatever you need. But be careful, +# it is always better to pack more files. If you ignore something +# important, ... so you've been warned. + +# These are in fact PERL regular expression, in suffix of file, do not +# write "." here, use "\." instead. + +# Useful (most LaTeX users want it, I think): +toc # table of contents diff --git a/support/TVS/TVS/pathcuts.tvs b/support/TVS/TVS/pathcuts.tvs new file mode 100644 index 0000000000..c210542d2c --- /dev/null +++ b/support/TVS/TVS/pathcuts.tvs @@ -0,0 +1,15 @@ +# $Author: antos $ +# $Id: pathcuts.tvs,v 1.1 2000/04/13 20:04:13 antos Exp $ +# +# TVS --- TeX Versioning System pathcuts +# +# This file contains starts of filenames which are cut +# to make output directory structure not so deep. +# Feel free to set up it to whatever you need. + +# I use this for my TeXLive installation on Linux, the best OS ;-) +/usr/TeX/texmf/ + +# On M$ platforms, it is highly recomended to use +\w:\\ +# which cuts c:\, C:\, d:\, etc. diff --git a/support/TVS/TVS/tvs.pl b/support/TVS/TVS/tvs.pl new file mode 100644 index 0000000000..925b480a0d --- /dev/null +++ b/support/TVS/TVS/tvs.pl @@ -0,0 +1,454 @@ +#! /usr/bin/perl -w +# -*- cperl -*- + +# use diagnostics; + +# This is TVS, system for storing complete source codes for TeX documents +# Written and maintained by David Antos, xantos (at) fi.muni.cz +# Distributed free od charge but without ANY WARRANTY in hope you find +# it useful. See enclosed General Public License for details. + +# Copyright (c) 2000 David Antos +# $Author: antos $ +# $Id: tvs.pl,v 1.28 2000/08/16 16:56:41 antos Exp $ + +use strict; +use locale; +use Getopt::Long; +use Cwd qw(cwd abs_path); +use File::Basename; +use File::Copy; +use File::Path; + +sub build_patterns { +# Builds patterns from specified file +# Input: Filename --- pattern file +# Pattern list reference +# Output: Destroys second parameter and fills it up. + + my ($pattern_file, $patts) = @_; + + if (not defined($pattern_file) or $pattern_file eq "") { + @$patts = (); + return; + } + if (open(PATTERNS, $pattern_file)) { + print "\nOpened file \"$pattern_file\"\n" if ($::verbose); + print "Building pattern list\n" if ($::verbose); + + my ($pat); + while ($pat = <PATTERNS>) { + chomp($pat); + ($pat) = split(/[%#]/, $pat); # Erase comments --- they start with # or % + next unless (defined($pat)); # Nothing to do + # Delete white characters before and after non-white characters + $pat =~ s/\s*(.*\S)\s*/$1/; + next if ($pat eq ""); # Nothing to do + push(@$patts, $pat); + print "Found pattern \"$pat\"\n" if ($::verbose >= 2); + } + close(PATTERNS); + } + else { + @$patts = (); + warn "\nWARNING: File \"$pattern_file\" can't be opened.\n"; + } +} # build_patterns + +sub parse_tex_log { +# Finds possible filenames in TeX log file, tests if they are real files. +# Omits files matching RE in @$ign_patts. +# Input: Name of TeX logfile (with .log) +# List of patterns to ignore (reference) +# Hash to add matching names (ref.) +# Output: Adds names to %$filenms, keys are filenames, +# values are filenames too + + my ($logname, $ign_patts, $filenms) = @_; + + open(TEXLOG,$logname) or die "\nCan't open logfile \"$logname\"\n"; + print "\nOpened logfile \"$logname\"\n"; + + my($line, $filename, $oldfn, $pat); + while ($line = <TEXLOG>) { + chomp($line); + # In log, anything between "(" or "<" and end-of-line may be a filename. + # Parsing of it is quite stupid because there may be spaces + # in filenames. I decided to use real brutal force. + # So we go to the first ( or < in line, test the rest, cut the rightmost + # character, test, and so on. + # Even names ended with ),_,', etc. are tested to be files, but + # --- who knows --- what if someone uses them [:-O]? + # It's slow but it doesn't need much memory, which can be useful + # for DOS/emTeX users. (Sorry, users of _real_ operating systems...) + BRACKET: + while ($line =~ /[\(\<]/) { # left "(" or "<" in line + $line =~ s#^.*?[\(\<]+(.*)$#$1#; # cut to the first left bracket (incl.) + $filename = $line; + do { + print "Testing name: \"$filename\"\n" if ($::verbose >= 2); + if (-f $filename) { # it's a real file + print "> Found file: \"$filename\"\n" if ($::verbose); + $$filenms{$filename} = $filename; + # If $filename matches any pattern, then delete it + foreach $pat (@$ign_patts) { + if ($filename =~ m#$pat$#) { + print " ... ignored\n" if ($::verbose); + print " ... matches pattern \"$pat\"\n" if ($::verbose>=2); + delete($$filenms{$filename}); + } + } + # If there is only -, \w, _, \, /, : or ., + # it won't be a filename anymore + if ($filename =~ /^[-\w_\\\/\.:]*$/) { next BRACKET; } + # (This optimalization may be omitted if you think it is unsafe.) + } + $oldfn = $filename; # remember last + $filename =~ s#^(.+).$#$1#; # cut the rightmost character + } while($oldfn ne $filename); # while it changes + } # while "(" or "<" + } + close TEXLOG; +} # parse_tex_log + +sub get_format_name { +# Gets format name from log, parses first format=this_is_result in file +# If opt_fmtname was given, returns opt_fmtname +# Input: Filename (with .log) +# Output: Format name (returns string) or "" if failed + + my ($filenm) = @_; + my ($line); + + if ($::opt_fmtname ne "") { + print "\nForced format \"$::opt_fmtname\". Make sure this is correct!\n"; + return $::opt_fmtname; + } + else { + if (not open(TEXLOG, $filenm)) { + print "\nCan't open logfile \"$filenm\" to get format name\n"; + } + else { + while ($line = <TEXLOG>) { + chomp($line); + if ($line =~ s#.*format=(\w*).*#$1#) { return $line; }; + # Success + }; + }; + }; + return ""; # Failure +} # get_format_name + +sub determine_storing_names { +# Reads keys from hash --- filenames to store. +# Checks for name conflicts and solves them. +# Input: Ref. to hash, it's keys are filenames, values equal to keys +# Ref. to list containing patterns to cut from paths +# Output: Hash, keys are keeping new names, values original ones + + my($filenms, $cuts) = @_; + + my (%storing_names); # New names => orig. (real) names + my ($fn); + + foreach $fn (keys %$filenms) { + my ($newfn) = $fn; + print "Preparing name for file \"$fn\"\n" if ($::verbose); + # Determine new storing name + my ($pat); + foreach $pat (@$cuts) { + $pat =~ s#^(.*[^\\\/])[\\\/]?#$1#; # cut the rightmost / or \ + print " Checking pattern \"$pat\"\n" if ($::verbose >= 2); + # cut filename if starts with $pat, only first pattern is used + if ( $newfn =~ m#^$pat[\\\/](.*)# ) { + $newfn = $1; + print " Pattern matches.\n" if ($::verbose >= 2); + last; # exit cycle + }; + }; # foreach $pat + # if new name doesn't conflict, add it + if (not exists($storing_names{$newfn})) { + print "Name \"$newfn\" will be used.\n" if ($::verbose); + $storing_names{$newfn} = $fn; + } + else { # error, name conflicts + print "\nError, name \"$newfn\" conflicts.\n"; + print "Cannot save files \"$fn\"\n"; + print "and \"$storing_names{$newfn}\"\n"; + print "with the same name \"$newfn\".\n"; + print "Please check setting of paths to cut. Shortenning of belonging\n"; + print "prefix should help. Consult the documentation when in trouble.\n"; + die "*** Name conflict detected, gave up ***\n"; + }; + }; + return %storing_names; +} # determine_storing_names + +sub copy_files { +# Takes keys from hash and copies all files from it to working_dir/prefix +# Input: Prefix, hash --- keys are filenames +# Output: None + + my($prefix, %filenms) = @_; + my ($name, $prefname); + + foreach $name (keys %filenms) { + $prefname = $name; + # cut leading / or \ + $prefname =~ s#[\\\/]?(.*)#$1#; + $prefname = $prefix.'/'.$prefname; + # Prepare directories, umask may be switch in the future + mkpath(dirname($prefname), $::verbose, 0700) unless ($::opt_dummy); + copy($filenms{$name}, $prefname) unless ($::opt_dummy); + print "Copying \"$filenms{$name}\"\n to \"$prefname\"\n" if ($::verbose); + }; +} #copy_files + +sub main_pack { +# Main procedure for packing files +# Creates tree of source files +# Input: Filename of TeX source, extension .log is tried +# Output: None +# Uses: Variables $main::opt_... + + my ($source) = @_; + my (%filenames); # Keys are filenames to store --- source + my (@ignore_patterns); # Patterns to be ignored + my (@path_cuts); # Paths to cut + + if ($::opt_ignore ne "") { + print "\nBuilding ignore pattern list\n" if ($::verbose); + &build_patterns($::opt_ignore, \@ignore_patterns); + } + else { + @ignore_patterns = (); + }; + + if ($::opt_pathcuts ne "") { + print "\nBuilding list of paths to cut\n" if ($::verbose); + &build_patterns($::opt_pathcuts, \@path_cuts); + } + else { + @path_cuts = (); + }; + + # If file $source doesn't exist try dtto.log + if (not -f $source) { + print "\nFile \"$source\" does not exist, trying \"${source}.log\"\n"; + $source = "${source}.log"; + if (not -f $source) { die "File \"$source\" does not exist\n"; } + } + + %filenames=(); + # Get list of needed files from TeX log + &parse_tex_log($source, \@ignore_patterns, \%filenames); + %filenames = &determine_storing_names(\%filenames, \@path_cuts); + ©_files("$::opt_output",%filenames); + + # If format needed, get name + if ($::opt_format ne "") { + %filenames = (); # Delete all, it is done and copied + my ($format_name) = &get_format_name($source); + print "\nGot format name \"$format_name\"\n"; + # Delete last / or \ + $::opt_format =~ s/^(.*[^\\\/])[\\\/]?/$1/; + &parse_tex_log($::opt_format."/".$format_name.'.log', + \@ignore_patterns, \%filenames); + %filenames = &determine_storing_names(\%filenames, \@path_cuts); + ©_files("$::opt_output"."/FORMAT", %filenames); + }; # if format wanted + + # If font sources needed, get them + if ($::opt_dvips ne "") { + %filenames = (); # Delete all + print "\nGetting font source files from dvips log \"$::opt_dvips\"\n"; + &parse_tex_log($::opt_dvips, \@ignore_patterns, \%filenames); + %filenames = &determine_storing_names(\%filenames, \@path_cuts); + ©_files("$::opt_output"."/FONTS", %filenames); + }; # if dvips + +} # main_pack + +# -------------- Help and version info --------- +sub print_version { +# Prints version +# Input, output: none + print "\nThis is TVS, TeX Versioning System\n"; + print 'Version 1.0 ($Id: tvs.pl,v 1.28 2000/08/16 16:56:41 antos Exp $)'. + "\n"; + print "This is free software distributed under General Public License\n"; + print "but WITHOUT ANY WARRANTY\n"; +} # print_version + +sub print_usage { +# Prints usage info +# Input, output: none + print "\nUsage:\n"; + print "tvs.pl -h | --help print this help and exit\n\n"; + print "tvs.pl [options] filename[.log]\n\n"; + print "where options are:\n"; + print " -v | --verbose set verbosity level\n"; + print " --dummy no real work\n"; + print " -c | --config file set configuration file\n"; + print " -i | --ignore [file] set ignore pattern file\n"; + print " -p | --pathcuts [file] set pathcuts patt. file\n"; + print " -o | --output dir output directory name\n"; + print " -f | --format [dir] pack format sources\n"; + print " --fmtname [name] forces format name\n"; + print " -d | --dvips file pack font sources -- experimental!\n"; + print "\n"; + print "Please consult the documentation. Note that packing source codes\n"; + print "is a delicate and sensitive operation.\n\n"; +} # print_usage + +# ------------------ Parsing config ------------ +sub parse_config_file { +# Parses config file and sets options with omitted value on command line +# Input, output: none +# Changes: Values of %config hash (global in main) + + # Default name of config file + if (not defined($::opt_config)) { $::opt_config = "tvsrc"; }; + + if (not open(CONFIG, $::opt_config)) { + warn "\nConfig file \"$::opt_config\" can't be opened.\n"; + warn "Config file ignored.\n"; + } + else { + # Parse config file + my ($line, $name, $value); + while ($line = <CONFIG>) { + chomp($line); + # Ignore anything after # or $ + ($line) = split(/[%#]/, $line); # Erase comments, they start with # or % + next unless defined($line); + # Delete white chars + $line =~ s#\s*(.*\S)\s*#$1#; + # Split on first space + ($name, $value) = split(/\s/, $line, 2); + next unless defined($name); + next unless defined($value); + # Set values + if ($name ne "" and $value ne "") { $::config_file{$name} = $value; }; + } + } +} # parse_config_file + +# --------------- MAIN PROGRAM ----------------- +# Handles parsing of command line arguments and calls actions. +# Input: see Getopt command + +# Print header +&print_version(); + +# Set option variables +Getopt::Long::Configure("bundling","no_auto_abbrev"); +# Allow write e.g. -vv, allow only full names of options + +# These are global options. They are taken from commandline, +# if not set (or value omitted), config file is usually tried. +use vars qw($verbose $opt_help $opt_config $opt_dummy $opt_format); +use vars qw($opt_fmtname $opt_dvips $opt_ignore $opt_output $opt_pathcuts); + +if (not GetOptions('v|verbose+',\$verbose, # verbosity level + 'h|help',\$opt_help, # print help and exit + 'c|config=s',\$opt_config, # config file name + 'dummy',\$opt_dummy, # do not really copy files + + 'f|format:s',\$opt_format, # dir with iniTeX logs + 'fmtname=s',\$opt_fmtname, # format name (forced) + 'd|dvips=s',\$opt_dvips, # dvips log + + 'i|ignore:s',\$opt_ignore, # file with names to ignore + 'p|pathcuts:s',\$opt_pathcuts, # file with paths to cut + + 'o|output=s',\$opt_output # output directory name + )) { &print_usage(); die "*** Wrong options ***" }; + +use vars qw($filename); # File --- log of TeX or archive (if -x) +use vars qw(%config_file); # Content of config file --- global, + # used for setting $opt_... only +&parse_config_file(); + +# If $verbose undefined, try config file, else set it to 0 +unless (defined($verbose)) { + if (exists($config_file{"verbose"})) { + $verbose = $config_file{"verbose"}; } + else { $verbose = 0; }; +}; + +# Print version info if -h or --version (and exit then) +if (defined($opt_help)) { &print_usage(); exit 0; }; + +# If dummy, warn +if (defined($opt_dummy)) { + warn "\n*** WARNING: dummy mode selected ***\n"; + warn "Nothing will be really done!\n\n"; +} +else { $opt_dummy = 0; }; + +# Check format option +if (defined($opt_format)){ + if ($opt_format eq "") { + if (exists($config_file{"format"})) { + $opt_format = $config_file{"format"} + } + else { + &print_usage(); + die "*** Format option parameter is not specified ***\n"; + }; + }; +} +else { $opt_format = ""; }; + +# Forced format name +if (not defined($opt_fmtname)) { $opt_fmtname = ""; }; + +# Dvips +if (not defined($opt_dvips)) { $opt_dvips = ""; }; + +# Ignore file +if (defined($opt_ignore)) { + if ($opt_ignore eq "") { + if (exists($config_file{"ignore"})) { + $opt_ignore = $config_file{"ignore"}; + } + else { + &print_usage(); + die "*** Ignore parameter is not specified ***\n"; + }; + }; +} +else { $opt_ignore = ""; }; + +# Pathcuts +if ((not defined($opt_pathcuts)) or ($opt_pathcuts eq "")) { + if (exists($config_file{"pathcuts"})) { + $opt_pathcuts = $config_file{"pathcuts"}; + } + else { $opt_pathcuts = ""; }; +} + +# Output dir +unless (defined($opt_output)) { + unless (exists($config_file{"output"})) { $opt_output = 'TVS-OUT'; } + else { $opt_output = $config_file{"output"} } +}; + +# Set filename +unless (defined($ARGV[0])) { + &print_usage; + die "*** Please specify filename ***"; +}; +$filename = $ARGV[0]; +# Allow TVS only to be run in source directory +my($working_directory) = cwd; +if ($working_directory ne abs_path(dirname($filename))) { + &print_usage; + die "*** Please run TVS in the source directory ***"; +}; + +&main_pack($filename); + +print "\nThank you for using TVS and supporting free software\n"; + diff --git a/support/TVS/TVS/tvsrc b/support/TVS/TVS/tvsrc new file mode 100644 index 0000000000..5756b96d4c --- /dev/null +++ b/support/TVS/TVS/tvsrc @@ -0,0 +1,11 @@ +# $Author: antos $ +# $Id: tvsrc,v 1.4 2000/04/13 20:07:28 antos Exp $ +# +# TVS --- TeX Versioning System config file +# +# Config file of TVS. Modify as you like. +# +ignore ignpats.tvs +pathcuts pathcuts.tvs +verbose 0 +format /usr/TeX/texmf/web2c diff --git a/support/TVS/index.html b/support/TVS/index.html new file mode 100644 index 0000000000..82aa8baaec --- /dev/null +++ b/support/TVS/index.html @@ -0,0 +1,57 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<//--- $Id: index.html,v 1.6 2000/05/08 14:12:38 antos Exp $---> +<HTML> +<HEAD> + <TITLE> TeX Versioning System Homepage </TITLE> +<META http-equiv="Content-Type" content="text/html"> +</HEAD> + +<BODY background="slapoty.gif"> + +<center> +<h1> TeX Versioning System </h1> +</center> + +This is homepage of TeX Versioning System, system for storing complete +source of TeX documents. + +<h3>What TVS can do for you</h3> + +Although TeX guarantees the ability of getting the same results when +typesetting a document. In real life, it is not so easy as the document +look usually depends on lots of files, e.g. macros, styles. +<p> +If you need to be able to get the same output wherever and whenever you +typeset your documents, you need TVS. +<p> +TVS can find all the files needed to typeset your TeX document and +pack them together so as you can always re-typeset the document and +obtain exactly the same results. +<p> +TVS is a platform independent Perl script, it's documentation comes in +Texinfo format. TVS is free, distributed under terms of General Public +License. +<p> +For all information about TVS, please read the documentation. + +<h3>Documentation</h3> +You may get the documentation in various formats: +<UL> +<li> <a href="http:TVS/docs/tvs.html">HTML pages</a> +<li> <a href="http:TVS/docs/tvs.info">formatted INFO file</a> +<li> <a href="http:TVS/docs/tvs.ps">PostScript</a> +<li> <a href="http:TVS/docs/tvs.texi">Texinfo source</a> +</UL> + +<h3>Download</h3> +<a href="http:TVS/">Here you can download TVS by files</a> +or +<a href="http:TVS.tar.gz">gzipped tar file.</a> + +<h3>Author</h3> +TVS was written and is maintained by David Antos, xantos (at) fi.muni.cz. + +<p> <hr> +<center> Fight against software piracy--use free software! </center> +</BODY> +</HTML> diff --git a/support/TVS/misc/TVS-Zpravodaj.tex b/support/TVS/misc/TVS-Zpravodaj.tex new file mode 100644 index 0000000000..dd7562106b --- /dev/null +++ b/support/TVS/misc/TVS-Zpravodaj.tex @@ -0,0 +1,77 @@ +\documentclass[11pt,a4paper]{article} + +\usepackage{a4wide} +\usepackage{czech} + +\newcommand{\TVS}{\texttt{TVS}} +\begin{document} + +David Antoš + +\TeX\ Versioning System aneb jak všechny zdrojové soubory uložiti + +Tohle se vám už někdy muselo stát: Používáte \TeX\ v~práci. Doma máte +jinou distribuci. Doma jste pracně napsali a krásně zalomili dokument +používající několik souborů s~makry. Přišli jste do práce, zdroják na +disketě, spustili \TeX\ a po chvíli \texttt{I can't find file +`blabla.tex'}. Naštvaně přemýšlíte, proč v~instalaci v~práci zrovna +tenhle soubor chybí. + +Nebo něco jiného. Máte vysázenou knihu, jasný bestseller, který určitě +budete za rok či dva potřebovat vysadit znovu. Rádi byste si uložili +všechny zdrojové texty, na kterých vzhled dokumentu závisí. Takže se +ponoříte do logu a hledáte je ručně. Tak to vás upřímně lituji, protože +nevíte, že nemusíte. + +Pro oba případy může posloužit \TVS , \TeX\ Versioning System. Tento +program umí projít logy \TeX u , najít v~nich jména souborů (což zas není +tak jednoduché) a tyto soubory zkopírovat do zadaného adresáře. Může +najít nejen soubory potřebné přímo k~překladu hlavního dokumentu, ale +i~soubory, které jsou potřeba k~vygenerování formátu. + +Přitom umí vynechávat soubory odpovídající regulárnímu výrazu --- +například se zadanými příponami. Navíc dokáže zacházet se jmény souborů +docela inteligentně, dokáže zachovat strukturu vašich vlastních +zdrojových souborů za předpokladu, že jsou umístěny v~adresářové +struktuře v~podstromu adresáře, ve kterém je hlavní dokument. + +Zatím experimentálně zařazujeme i možnost projít log \texttt{dvips}u, +který tento program vytváří většinou s~volbou \texttt{-d}. Takto je +možno získat fonty odkazované z~\texttt{.dvi} souboru. Bohužel se takto +dostanou pouze bitmapy, přesněji řečeno soubory \texttt{.pk}, což není +příliš užitečné. Nicméně zkušený uživatel může získaný výpis použít jako +vodítko pro ruční posbírání zdrojových souborů pro generování fontů. + +Činnost \TVS\ je samozřejmě limitována tím, co lze najít v~logu. Bohužel +trocha ruční práce zbývá, pokud dokument závisí na něčem, co lze sice +považovat za zdrojový text, ale nepoužívá se to přímo v~posledním běhu +\TeX u. Příkladem může být soubor s~bibliografickými údaji. Z~něj se +vyberou ty, na které je odkazováno z~dokumentu a ty se třídí a doplní +informacemi o~stylu. Teprve tento derivát se začleňuje do dokumentu. +Pokud chceme archivovat i původní soubor, nic nám nebrání ho +k~posbíraným zdrojům přidat. + +Získané kompletní zdroje dokumentu je možno přeložit na jakékoli +distribuci \TeX u. Stačí, aby cílová distribuce umožnila nastavit, aby +\TeX{} hledal soubory nejdříve a aktuálním adresáři a jeho +podadresářích a pak teprve v~systémových adresářích \TeX u. +Není třeba, aby systém \TVS\ byl na cílovém stroji instalován. + +\TVS\ je napsán v~Perlu ve snaze o~maximální platformovou nezávislost. +Je nezávislý na tom, jestli používáte \LaTeX , plain nebo cokoli jiného. +Zvládá konvence jmen souborů obvyklá v~M\$ světě i v~Un*xu\footnote{měl +jsem nutkání napsat \uv{i v~operačních systémech} \ldots}, +počítá i s~tak patologickými jevy, jako jsou mezery v názvech souborů, +které se kupodivu vyskytují v~\TeX u na Macu. + +\TVS\ jsem napsal jako bakalářský projekt na Fakultě informatiky +Masarykovy university v~Brně pod vedením a za vydatné podpory +RNDr.~Petra Sojky. + +Domovská stránka je \texttt{http://www.fi.muni.cz/\~{}xantos/TVS} a +tamtéž si můžete \TVS\ stáhnout včetně jeho podrobné dokumentace ve +formátu Texinfo, na stránce je dokumentace dostupná také ve formátech +HTML a PostScript. \TVS\ +je šířen zdarma za podmínek GPL licence. + +\end{document} diff --git a/support/TVS/misc/uvod_analyza.tex b/support/TVS/misc/uvod_analyza.tex new file mode 100644 index 0000000000..ee6d213119 --- /dev/null +++ b/support/TVS/misc/uvod_analyza.tex @@ -0,0 +1,79 @@ +\documentclass[11pt,a4paper]{article} + +\usepackage{a4wide} +\usepackage{czech} +\usepackage{times} + +%\newcommand{\TVS}{T\kern-.1667em\lower.5ex\hbox{V}\kern-.125emS} +%To S asi chce kousek doprava\ldots +\newcommand{\TVS}{T\kern-.1667em\lower.5ex\hbox{V}\kern-.1emS} + +\begin{document} +\part{Úvod} +Ačkoli \TeX\ sám garantuje, že dokument přeložený +kdykoli a kdekoli bude zalomen vždy naprosto stejně, věc má jeden malý +háček. Toto tvrzení platí, pokud \TeX u poskytneme přesně stejné vstupní +soubory. + +Stejné vstupní soubory snadno zajistíme, pokud se omezíme na používání +primitivních příkazů a nejvýše maker plain a problémy nebudou mít ani ti, +kteří začínají každý dokument \begin{verb} \input{MyMacros} \end{verb} +a verze tohoto souboru si pečlivě ohlídají. + +Co si ale mají počít nebozí \LaTeX isté, kteří požívají výhod nepřeberného +množství dostupných maker? Dokument přeložený například na distribuci +{\tt texlive-4} se už o~rok později na {\tt texlive-5} stejně zalomit nemusí +například proto, že používá balík pro nestandardní sazbu poznámek na +okraji, jehož autor se na jednom místě rozhodl namísto +\begin{verb} \penalty50 \end{verb} napsat v~novější verzi +\begin{verb} \penalty20 \end{verb}. + +Potřebujeme systém, který k~dokumentu v~\LaTeX u připojí ve vhodné +formě všechny makrobalíky, na kterých je tento dokument závislý a poté +dokáže z~takového makrodokumentu rekonstruovat podobu distribuce, na které +proběhne zlom dokumentu identicky s~překladem původním. Tedy potřebujeme +\TVS , \TeX\ Versioning System. + +V~ideálním případě by činnost \TVS\ neměla záviset na distribuci \TeX u, +v~nejhorším případě by měl \TVS\ pracovat na všech distribucích dodržujících +souborovou strukturu TDS. +Dalším požadavkem je platformová nezávislost, proto se předpokládá +implementace v~jazyce Perl, jakožto vhodném nástroji pro zpracování +textových dat. + +Dalším problémem obvyklým při zpracování \LaTeX ových dokumentů jsou +lokální rozdíly mezi distribucemi. Například na Fakultě informatiky si +každý student může z~WWW stáhnout svůj rozvrh mimo jiné ve formátu +\LaTeX2e. + +Začátečník si {\tt rozvrh.tex} přinese domů, tam má obvykle {\tt te\TeX} +z~RPM nebo {\tt texlive} na Linuxu, spustí {\tt cslatex rozvrh.tex} a +\ldots A~nic. Protože nemá makra pro sazbu rozvrhu ani fakultní logo, +překlad skončí neúspěšně. +Ani pro pokročilejšího \TeX istu není situace o~mnoho jednodušší. Také si +totiž (většinou až doma) všimne, že prakticky tři čtvrtiny potřebných +souborů mu chybí. + +Pro jednotlivosti, jako je rozvrh, lze problém převést na předchozí +úlohu, přeložit rozvrh ve škole, zjistit, co vše je potřeba a použít +výše popsanou metodu. Horší situace nastává, pokud se takových dokumentů +musí přenášet více. + +Potřebujeme, aby bylo možno vytvořit \uv{lokální kopii lokálních +úprav}, tedy zjistit, jak se lokální instalace liší od standardní +distribuce, která pro ni byla základem. Tyto informace může například +vytvářet správce lokální instalace (a udržovat je aktuální po každé +provedené změně). Uživatel si přinese soubor (\TeX diff?) tam, kde +chce vytvořit další repliku těchto úprav a vytvoří pomocí \TVS\ přesnou +kopii svého obvyklého nastavení. +Pravděpodobně zde nebude možno dodržet požadavek nezávislosti na +distribuci. + +Plánem do budoucna je rozšíření systému, které při chybovém hlášení +o~chybějícím souboru tento stáhne z~CTANu a případně také rozšíření udržující +verze maker tak, aby bylo možno překládat dokumenty stylem \uv{přelož +tohle, jako by bylo 1. března 1998}. +Zvláště poslední z~uvedených námětů bude patrně vyžadovat spolupráci +s~distribucí a~výrazně překračuje rozsah tohoto projektu. + +\end{document} diff --git a/support/TVS/slapoty.gif b/support/TVS/slapoty.gif Binary files differnew file mode 100644 index 0000000000..542e1e54c0 --- /dev/null +++ b/support/TVS/slapoty.gif |