diff options
author | Karl Berry <karl@freefriends.org> | 2009-11-28 01:04:47 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2009-11-28 01:04:47 +0000 |
commit | c640640a7c7fd4928b8ecff3af70ce914c60807c (patch) | |
tree | a561f4db3af2b9fa7c7897c827f9bf75e75ad0aa /Master/texmf-dist | |
parent | 92339873dc7d35947a38f474e90666b524363add (diff) |
rename jsmisc to js-misc per Catalogue
git-svn-id: svn://tug.org/texlive/trunk@16211 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist')
22 files changed, 3373 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/plain/js-misc/History b/Master/texmf-dist/doc/plain/js-misc/History new file mode 100644 index 00000000000..dfa7bbf787e --- /dev/null +++ b/Master/texmf-dist/doc/plain/js-misc/History @@ -0,0 +1,25 @@ +plain/js-misc/History 30 Jul 95 -*- Indented-Text -*- +--------------------------------------------------------------------------- + + + deutsch.tex uses german.sty. (With babel 3.5, germanb.sty + cannot be used with plain TeX any more.) [1] + + +Version 1.3 07 May 95 + + xfig.tex handles \SetFigFont variants (from transfig versions + 2.1 & 3.1) automatically. + + +Version 1.2 17 Apr 95 + + Typo in sperr.tex prevented it from working. + + Don't allocate registers in xfig.tex globally, to allow + reading it several times in a group. + + +Version 1.1 16 Mar 95 + + First public release. diff --git a/Master/texmf-dist/doc/plain/js-misc/INSTALL b/Master/texmf-dist/doc/plain/js-misc/INSTALL new file mode 100644 index 00000000000..540e67301ce --- /dev/null +++ b/Master/texmf-dist/doc/plain/js-misc/INSTALL @@ -0,0 +1,65 @@ +$Id: INSTALL,v 1.1 1995/03/16 01:18:22 schrod Exp $ +------------------------------------------------------------ + +These instructions are written for the installation of this package on +a TDS-compliant TeX system. (TDS is the forthcoming standard for TeX +installations, refer to ftp.th-darmstadt.de:/pub/tex/TDS-compliant/draft/ +for more information.) If you don't have such a system, you have to +figure out your directory names yourself. + +If you're on a Unix system and want to use make for installation, read +further. Otherwise skip forward to ``MANUAL INSTALLATION''. + + +------------------------------------------------------------ +INSTALLATION BY MAKE: + +Edit the Makefile and adapt the values of the following variables to +your system. Sorry, but the values are not collected at the top of the +Makefile, use your editor to locate them. (The Makefile is generated +by Imake, I don't touch it... :-) + + MAKEDIR [Default: mkdir -p] + A command to create a directory, including all + non-existent intermediate ones. + + DESTDIR [Default is empty] + This is a prefix that's prepended in front of all + destination directories, in case your installation + structure is somewhere else than your run-time + location. + + INSTALL [Default depends on the machine I generated the distribution] + A BSD install program. + If you have a System V Unix, and you have X11, you can + use a script named bsdinst.sh or bsdinst or + install.sh that's located your X11 bin directory. + If you don't have a BSD install program, you must use + the manual installation, described below. + + TEXMF [Default: /usr/local/lib/texmf] + The root of your (TDS) TeX tree. + +Now, type "make install" and everything should be OK. + + + +------------------------------------------------------------ +MANUAL INSTALLATION: + + +The Imakefile features definitions that look like +InstallTeX<category>(<package>,<files>). + +Copy all <files> to a directory that is appropriate for this +<category> and this <package>. (The <category> `Generic' denotes macro +files that can be used with many TeX formats, including plain TeX, +LaTeX, and AmS-TeX.) + The TDS directory names are $TEXMF/tex/<category>/<package>/, +where $TEXMF is your TDS root directory and <category> is +all-lowercase. + + +------------------------------------------------------------ +# LocalWords: tex MAKEDIR DESTDIR bsdinst sh usr lib texmf Imakefile AmS +# LocalWords: InstallTeX diff --git a/Master/texmf-dist/doc/plain/js-misc/Imakefile b/Master/texmf-dist/doc/plain/js-misc/Imakefile new file mode 100644 index 00000000000..4592d64acc9 --- /dev/null +++ b/Master/texmf-dist/doc/plain/js-misc/Imakefile @@ -0,0 +1,96 @@ +XCOMM $Id: Imakefile,v 1.5 1995/05/28 00:30:55 schrod Exp $ +/* ---------------------------------------------------------------------- */ + +/* + * Imakefile for plain TeX macro package `js-misc' + * + * (history at end) + */ + + +/* needed modules */ +#include <install/TeX.imk> +#include <makeprog.imk> +#include <TeX.imk> + +XCOMM ------------------------------------------------------------ +XCOMM continue in Imakefile + + +/* + * The plain TeX package `js-misc' consists of the following macro files: + * + * cassette -- Labels for audio cassettes + * deutsch -- German texts with plain TeX + * idverb -- Verbatim identifiers a la WEB + * names.sty -- Logos + * schild -- Make a label (for doors, books, etc.) + * sperr -- Letterspace text (but don't steel sheep...) + * xfig -- Incorporate xfig output in plain TeX documents + */ + +#ifdef ITI_Site + DESTDIR = /archives/tex/Install +#endif + +InstallTeXPlain(js-misc,cassette.tex deutsch.tex idverb.tex \ + schild.tex sperr.tex xfig.tex) +InstallTeXGeneric(misc,names.sty) +InstallTeXDoc(plain,js-misc.dvi) + + +MpDoc2TeXTarget(deutsch,tex) +MpDoc2TeXTarget(idverb,tex) + +TeXTarget(ftex,js-misc) + + +/* + * creating a source-distribution of this macro package + */ + +TeXFileTarget(tex,deutsch,doc) +TeXFileTarget(tex,idverb,doc) + +export:: deutsch.dvi idverb.dvi + $(MAKE) all + $(RM) *.log + +/* This will get a module, too. */ +export:: + touch site.imk + $(MAKE) Makefile IMAKE_INCLUDES=-I. + $(RM) -r site.imk Makefile.bak + cp $(HOME)/Notes/Copying.gpl License + pwd=`pwd` ; pwd=`suffix $$pwd /` ; cd .. ; \ @@\ + gtar -czvf $$pwd.tar.gz \ @@\ + --exclude=CVS --exclude=.cvsignore $$pwd ; \ @@\ + cp $$pwd/README $$pwd.README + + +/* ============================================================ + * + * $Log: Imakefile,v $ + * Revision 1.5 1995/05/28 00:30:55 schrod + * On export, exclude CVS files by gtar options, not be removing + * them. Do also export the README file. + * + * Revision 1.4 1995/04/16 23:21:04 schrod + * Moved itinames.sty & TH viscards to plain-iti package. + * + * Revision 1.3 1995/03/16 02:22:12 schrod + * Export also DVI versions of DOC files. + * + * Revision 1.2 1995/03/16 01:17:45 schrod + * Use TeX module. + * Add export target. + * + * Revision 1.1 1995/03/13 23:18:09 schrod + * Started to manage this package with CVS. Made minor code cleanup. + * + + * ------------------------------------------------------------ + * Local Variables: + * mode: Indented-Text + * End: + */ diff --git a/Master/texmf-dist/doc/plain/js-misc/License b/Master/texmf-dist/doc/plain/js-misc/License new file mode 100644 index 00000000000..a43ea2126fb --- /dev/null +++ b/Master/texmf-dist/doc/plain/js-misc/License @@ -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/Master/texmf-dist/doc/plain/js-misc/Makefile b/Master/texmf-dist/doc/plain/js-misc/Makefile new file mode 100644 index 00000000000..492717b7700 --- /dev/null +++ b/Master/texmf-dist/doc/plain/js-misc/Makefile @@ -0,0 +1,288 @@ +# Makefile generated by imake - do not edit! +# $XConsortium: imake.c,v 1.91 95/01/12 16:15:47 kaleb Exp $ + +# $ITI: Imake.tmpl,v 1.5 1995/01/24 17:48:12 schrod Exp $ +#---------------------------------------------------------------------- +# Makefile generated from "Imake.tmpl" and <Imakefile> +# +# Top level imake template of `Imake module edition'. +# + +default: all + +# ====================================================================== +# MIT & XFree configuration files +# $ITI: MIT-config.imk,v 1.3 1994/12/19 19:16:35 schrod Exp $ + +# ------------------------------------------------------------------------- +# site-specific configuration parameters that need to come before +# the platform-specific parameters - edit site.def to change + +# $ITI: site.def,v 1.7 1995/03/27 14:41:35 herr Exp $ +# +# ITI site definitions +# +# starting from original MIT version + +# site: $XConsortium: site.def,v 1.2 91/07/30 20:26:44 rws Exp $ + +# ------------------------------------------------------------------------- +# platform-specific configuration parameters - edit x386.cf to change + +# $ITI: x386.cf,v 1.3 1994/06/30 17:03:54 schrod Exp $ +# $XFree86: mit/config/x386.cf,v 2.44 1994/04/16 04:20:56 dawes Exp $ +# platform: $XConsortium: x386.cf,v 1.7 91/08/16 19:30:10 gildea Exp $ + +# operating system: Linux + +# ------------------------------------------------------------------------- +# site-specific configuration parameters that go after +# the platform-specific parameters - edit site.def to change + +# $ITI: site.def,v 1.7 1995/03/27 14:41:35 herr Exp $ +# +# ITI site definitions +# +# starting from original MIT version + +# site: $XConsortium: site.def,v 1.2 91/07/30 20:26:44 rws Exp $ + + KMEMGROUP = kmem + +# ====================================================================== +# Imake template with basic definitions +# $ITI: Base.imk,v 1.5 1994/11/28 20:57:37 schrod Exp $ + + LOCALDIR = /usr/local + +# ------------------------------------------------------------ +# Imake template for operations on files +# $ITI: files.imk,v 1.5 1994/12/02 19:46:44 schrod Exp $ + + COPYIF = copyif + CPP = /lib/cpp + LN = ln -s + MAKEDIR = mkdir -p + MV = mv + RM = /bin/rm -f + + + +# ------------------------------------------------------------ +# Imake template for use of imake & makedepend +# $ITI: imake.imk,v 1.9 1995/06/30 16:29:13 schrod Exp $ + + + + IMAKE = imake + + IMAKE_STD_OPTIONS = + IMAKE_STD_INCLUDES = -I$(LOCALDIR)/lib/imake + IMAKE_STD_DEFINES = + + IMAKE_FLAGS = $(IMAKE_OPTIONS) $(IMAKE_EXTRA_OPTIONS) $(IMAKE_STD_OPTIONS) $(IMAKE_INCLUDES) $(IMAKE_EXTRA_INCLUDES) $(IMAKE_STD_INCLUDES) $(IMAKE_DEFINES) $(IMAKE_EXTRA_DEFINES) $(IMAKE_STD_DEFINES) + + + + MAKE = make + SHELL = /bin/sh + + + + TOPDIR = . + CURDIR = . + THISDIR = `basename $(CURDIR)` + + MAKEOVERRIDES = + + + +depend:: + touch .dependdummy + $(DEPEND) $(DEPENDFLAGS) -s "# DO NOT DELETE" .dependdummy + $(RM) .dependdummy + + DEPEND = makedepend + DEPENDFLAGS = + + + + SUBDIRS = + +########################################################################### +# start of Imakefile + +# $Id: Imakefile,v 1.5 1995/05/28 00:30:55 schrod Exp $ + +# ====================================================================== +# Imake template for installation of TeX files +# $ITI: TeX.imk,v 1.2 1995/03/14 12:55:51 schrod Exp $ + +# ====================================================================== +# Imake template for software installation +# $ITI: install.imk,v 1.2 1995/03/14 12:56:05 schrod Exp $ + + DESTDIR = + + INSTALL = install + INSTALL_OWNER = $(USER) + INSTALL_GROUP = `id -gn` + + INSTALL_DATA_RIGHTS = 644 + INSTALL_PROGRAM_RIGHTS = 755 + INSTALL_SCRIPT_RIGHTS = 755 + + TEXMF = /usr/local/lib/texmf + +# ====================================================================== +# Imake template for MAKEPROG, the Literate Documentation system +# $ITI: makeprog.imk,v 1.2 1995/03/14 12:55:29 schrod Exp $ + + MP_DOC2TEX = doc2tex + MP_TEX2DOC = tex2doc + +# ====================================================================== +# Imake template for TeX & friends +# $ITI: TeX.imk,v 1.1 1995/03/14 19:40:12 schrod Exp $ + + TEX_IT = tex-it + +# ------------------------------------------------------------ +# continue in Imakefile + +install:: + $(MAKEDIR) $(DESTDIR)/$(TEXMF)/tex/plain/js-misc + @test "cassette.tex deutsch.tex idverb.tex schild.tex sperr.tex xfig.tex" -o "cassette.tex deutsch.tex idverb.tex schild.tex sperr.tex xfig.tex" = "NullParameter" && \ + for file in cassette.tex deutsch.tex idverb.tex schild.tex sperr.tex xfig.tex '' ; \ + do if [ empty$$file != empty ] ; \ + then (set -x; $(INSTALL) -c -o $(INSTALL_OWNER) -g $(INSTALL_GROUP) -m $(INSTALL_DATA_RIGHTS) $$file $(DESTDIR)/$(TEXMF)/tex/plain/js-misc) ; \ + fi ; \ + done || \ + exit 0 + +install:: + $(MAKEDIR) $(DESTDIR)/$(TEXMF)/tex/generic/misc + @test "names.sty" -o "names.sty" = "NullParameter" && \ + for file in names.sty '' ; \ + do if [ empty$$file != empty ] ; \ + then (set -x; $(INSTALL) -c -o $(INSTALL_OWNER) -g $(INSTALL_GROUP) -m $(INSTALL_DATA_RIGHTS) $$file $(DESTDIR)/$(TEXMF)/tex/generic/misc) ; \ + fi ; \ + done || \ + exit 0 + +install:: + $(MAKEDIR) $(DESTDIR)/$(TEXMF)/doc/plain + @test "js-misc.dvi" -o "js-misc.dvi" = "NullParameter" && \ + for file in js-misc.dvi '' ; \ + do if [ empty$$file != empty ] ; \ + then (set -x; $(INSTALL) -c -o $(INSTALL_OWNER) -g $(INSTALL_GROUP) -m $(INSTALL_DATA_RIGHTS) $$file $(DESTDIR)/$(TEXMF)/doc/plain) ; \ + fi ; \ + done || \ + exit 0 + +deutsch.tex: deutsch.doc + $(MP_DOC2TEX) deutsch.doc deutsch.tex + +all:: deutsch.tex + +clean:: + $(RM) deutsch.tex + +idverb.tex: idverb.doc + $(MP_DOC2TEX) idverb.doc idverb.tex + +all:: idverb.tex + +clean:: + $(RM) idverb.tex + +all:: js-misc.dvi + +js-misc.dvi: js-misc.tex + $(TEX_IT) ftex js-misc.tex + +clean:: + $(RM) js-misc.dvi js-misc.log js-misc.aux js-misc.toc js-misc.blg + +realclean:: + $(RM) js-misc.bbl + +deutsch.dvi: deutsch.doc + $(TEX_IT) tex deutsch.doc + +clean:: + $(RM) deutsch.dvi deutsch.log deutsch.aux deutsch.toc deutsch.blg + +realclean:: + $(RM) deutsch.bbl + +idverb.dvi: idverb.doc + $(TEX_IT) tex idverb.doc + +clean:: + $(RM) idverb.dvi idverb.log idverb.aux idverb.toc idverb.blg + +realclean:: + $(RM) idverb.bbl + +export:: deutsch.dvi idverb.dvi + $(MAKE) all + $(RM) *.log + +export:: + touch site.imk + $(MAKE) Makefile IMAKE_INCLUDES=-I. + $(RM) -r site.imk Makefile.bak + cp $(HOME)/Notes/Copying.gpl License + pwd=`pwd` ; pwd=`suffix $$pwd /` ; cd .. ; \ + gtar -czvf $$pwd.tar.gz \ + --exclude=CVS --exclude=.cvsignore $$pwd ; \ + cp $$pwd/README $$pwd.README + +# ------------------------------------------------------------------------- +# common rules for all Makefiles - do not edit + +Makefile:: + @if [ -f Makefile ]; \ + then set -x; \ + $(RM) Makefile.bak; $(MV) Makefile Makefile.bak; \ + else set -x; fi ; \ + $(IMAKE) $(IMAKE_FLAGS) -DImakeTopDir=$(TOPDIR) -DImakeCurrentDir=$(CURDIR); \ + set +x + +Makefiles:: + @case "$(MAKEFLAGS)" in *[ik]*) set +e;; esac; \ + case "$(TOPDIR)" in \ + /?*) newtop=$(TOPDIR) ;; \ + *) newtop=../$(TOPDIR) ;; \ + esac; \ + test "$(SUBDIRS)" -o "$(SUBDIRS)" = "NullParameter" && \ + for d in $(SUBDIRS) '' ; \ + do if [ empty$$d != empty ] ; \ + then echo "making Makefiles in $(CURDIR)/$$d ..."; \ + $(MAKE) subdirMakefiles SUBDIR=$$d TOPDIR=$$newtop CURDIR=$(CURDIR)/$$d ; \ + fi ; \ + done || \ + exit 0 + +subdirMakefiles:: + @cd $(SUBDIR) ; \ + if [ -f Makefile ]; \ + then set -x; \ + $(RM) Makefile.bak; $(MV) Makefile Makefile.bak; \ + else set -x; fi ; \ + $(IMAKE) $(IMAKE_FLAGS) -DImakeTopDir=$(TOPDIR) -DImakeCurrentDir=$(CURDIR); \ + set +x ; \ + $(MAKE) Makefiles + +clean:: + $(RM) $(CLEAN_EXTRA_FILES) *.CKP *.ln *.BAK *.bak *.o core errs ,* *~ *.a .emacs_* tags TAGS make.log MakeOut "#"* + +# ------------------------------------------------------------------------- +# default rules for Imakefiles that do not generate them - do not edit + +all:: + +# ------------------------------------------------------------------------- +# dependencies generated by makedepend + diff --git a/Master/texmf-dist/doc/plain/js-misc/README b/Master/texmf-dist/doc/plain/js-misc/README new file mode 100644 index 00000000000..14e8bf3f5c8 --- /dev/null +++ b/Master/texmf-dist/doc/plain/js-misc/README @@ -0,0 +1,45 @@ +$Id: README,v 1.2 1995/05/07 16:58:21 schrod Exp $ +------------------------------------------------------------ + + +The plain/js-misc package collects some small miscellaneous plain TeX +macros I wrote and use quite regularly. You'll find a complete list of +the package's macro files at the start of Imakefile. + +In my opinion, of particular importance are + + idverb.tex Typesetting verbatim by |...| + xfig.tex Typeset figures created by xfig (transfig, actually) + +There does not exist a user manual for most macros. A German +description of two minor macro files (cassette.tex & schild.tex) is +available in js-misc.{tex,dvi}. Other DVI files in this distribution +feature explanations of specific macro files, typically with +implementation info as well. The rest has user documentation at the +top of the macro files, as comments. + +For installation instructions, check the file INSTALL. + + +Reference anonymous ftp site: + ftp.th-darmstadt.de [130.83.47.112] + directory pub/tex/plain + file js-misc-<version>.tar.gz + where <version> is the current version number + (a gzipped tar file) + +CTAN directory: + macros/plain/contrib/js-misc/ + version info is in file History + + +Enjoy, + Joachim + +-- +=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= +Joachim Schrod Email: schrod@iti.informatik.th-darmstadt.de +Computer Science Department +Technical University of Darmstadt, Germany + + diff --git a/Master/texmf-dist/doc/plain/js-misc/TODO b/Master/texmf-dist/doc/plain/js-misc/TODO new file mode 100644 index 00000000000..dc42a352abf --- /dev/null +++ b/Master/texmf-dist/doc/plain/js-misc/TODO @@ -0,0 +1,2 @@ + +------------------------------------------------------------ diff --git a/Master/texmf-dist/doc/plain/js-misc/deutsch.doc b/Master/texmf-dist/doc/plain/js-misc/deutsch.doc new file mode 100644 index 00000000000..8285a980c3c --- /dev/null +++ b/Master/texmf-dist/doc/plain/js-misc/deutsch.doc @@ -0,0 +1,329 @@ +% $Id: deutsch.doc,v 1.4 1995/07/30 13:23:56 schrod Exp $ +%---------------------------------------------------------------------- +% Written by Joachim Schrod <schrod@iti.informatik.th-darmstadt.de>. +% This file is distributed without any copyright restriction. + +% +% deutsch.doc -- typeset German documents with plain TeX. +% +% [TeX in MAKEPROG] +% (history at end) + + +\input progdoc + +\input names.sty +\def\babel{{\sf babel}} + + + +\title{Typesetting German Documents with Plain \TeX{}} + + + +\chap Introduction. + +There are several defencies of plain \TeX{} if used for German +documents: + +\item{---} Mappings of national characters (`umlauts' and `sharp~s') +to macros or to other character codes (if special fonts are available) +are missing. + +\item{---} \TeX{} produces lots of overfull hboxes for German texts. +That's because the words there are usually longer than English ones. +Furthermore we have to use much more hyphenation for German texts than +for English ones, narrow typesetting is more important than few +hyphenations. In particular, words with umlauts are not hyphenated +often anyhow, even with the `multiple-word' approach from |german.sty|. + +\item{---} It is typographic usage that between compound words +ligatures are not built. Plain~\TeX{} has no easy, readable way to +provide this. + +\noindent This file does the according definitions. They are quite +often only a kludge. But it is hard to make the restrictions +disappear, sometimes it is even impossible within the current +implementation of \TeX{}---and there will never be any other +implementation. So we must live with these kludges. + + +\sect Of course, there is more to German typesetting. Hyphenation, +also for words with umlauts and sharp~s, etc. This basic +functionality is supplied by the \babel{} system and DANTE's +|german.sty|, we have to load the appropriate module. + +There's one problem, though. \babel{}~3.5 defines +|\DeclareTextSymbol|, a symbol used by |german.sty| to decide if it +shall use NFSS code to access symbols. But that usage will lead to an +endless recursion, because some text symbols are defined by +themselves. I don't know if that problem is caused by \babel{}'s code +or by its usage in |german.sty| -- turning it off seems to be an +appropriate fix. + +\beginprog +\let\DeclareTextSymbol\undefined +\input german.sty +\endprog + + +\sect But before we start we declare some shorthands for category +codes. By declaring the at sign~(`|@|') as well as the +underscore~`(|_|)' as letters we can use them in our macros. (I +agree with D.~Knuth that |\identifier_several_words_long| is more +readable than |\IdentifierSeveralWordsLong| and in every case better +than |\p@@@s|.) With the at sign we can use the ``private'' Plain +macros and with the underscore we can make our own macros more +readable. But as we have to restore these category codes at the end +of this macro file we store their former values in control +sequences. This method is better than to use +a group because not all macros have to be defined global this way. + +\beginprog +\ifx \CatEscape\undefined + \chardef\CatEscape=0 + \chardef\CatOpen=1 + \chardef\CatClose=2 + \chardef\CatIgnore=9 + \chardef\CatLetter=11 + \chardef\CatOther=12 + \chardef\CatActive=13 % \active of plain.tex + \chardef\CatInvalid=15 + + \chardef\CatAtCode=\catcode`\@ + \chardef\CatUsCode=\catcode`\_ +\fi + +\catcode`\@=\CatLetter % top level macro file +\catcode`\_=\CatLetter +\endprog + + +\sect Let's identify this macro file against the user and in the Log file. + +\beginprog +\begingroup + \catcode`\$=\CatIgnore + \catcode`\:=\CatIgnore + \message{Support for German documents, $Revision: 1.4 $} +\endgroup +\endprog + + + +\chap National Characters. + +By default no extended characters are available, except those defined +below. I.e., we start to treat all characters from |"7F| to |"FF| as +invalid characters. + +\beginprog +\count@="7F +\loop + \catcode \the\count@ = \CatInvalid + \advance\count@ by 1 + \ifnum \count@ < "100 +\repeat +\endprog + + +\sect We provide a command for the definition of non-ASCII characters: +|\ExtendChar|. A sample definition of an ``Umlaut-a''~(\"a) in the +extended code of an IBM~PC (hex code~|"84|) is: +$$ + |\ExtendChar\^^84: {^^84}{\"a}| +$$ +First the hex code is given as a control sequence, followed by a +colon. Afterwards come two parameters, the first is again the hex +code, the second is the token list which should be used instead of the +hex code. + +The macro definition is rather easy, we just have to make the +respective character active and bind it to it's new meaning. + +\beginprog +\def\ExtendChar #1:{% + \catcode`#1 \CatActive + \extend_char + } +\def\extend_char #1#2{% + \def #1{#2}% + } +\endprog + + +\sect Now we can define some replacements. + +The braces after the control sequences are needed when characters from +the extended character set are written to an auxiliary file and read +in later. During the |\write| they are expanded and following white +space would be gobbled if the braces would not be there. + +\beginprog +% ISO-Latin-1 +\ExtendChar\^^c4: {^^c4}{\"A} +\ExtendChar\^^d6: {^^d6}{\"O} +\ExtendChar\^^dc: {^^dc}{\"U} +\ExtendChar\^^df: {^^df}{\ss{}} +\ExtendChar\^^e4: {^^e4}{\"a} +\ExtendChar\^^f6: {^^f6}{\"o} +\ExtendChar\^^fc: {^^fc}{\"u} + +% IBM PC (code page 850) +\ExtendChar\^^81: {^^81}{\"u} +\ExtendChar\^^84: {^^84}{\"a} +\ExtendChar\^^8e: {^^8e}{\"A} +\ExtendChar\^^94: {^^94}{\"o} +\ExtendChar\^^99: {^^99}{\"O} +\ExtendChar\^^9a: {^^9a}{\"U} +\ExtendChar\^^e1: {^^e1}{\ss{}} % actually \beta, used as \ss in Germany + +% Atari ST (like IBM PC, but with a real `sharp~s') +\ExtendChar\^^9e: {^^9e}{\ss{}} +\endprog + + + +\chap Paragraph Breaking. + +As outlined in the introduction, we allow longer interword spaces. A +line now may have a badness up to 2500, over 1500 a warning is to be +given. Furthermore the penalties for hyphenation are lowered because a +narrow typesetting is preferred against few hyphenations. + +These values are still experimental and should be tuned. + +As |german.sty| uses \babel{} compatible structure, the german +language hook is a good place to store such definitions. But to +use \babel{}'s convenient macros, too, we have to assure that it's +kernel code is loaded first. + +\beginprog +\ifx \babel@core@loaded\undefined + \input babel.def +\fi +\addto\extrasgerman{% + \babel@savevariable\tolerance + \babel@savevariable\hbadness + \babel@savevariable\doublehyphendemerits + \babel@savevariable\finalhyphendemerits + \babel@savevariable\adjdemerits + \tolerance 2500 \hbadness 1500 + \doublehyphendemerits 50000 + \finalhyphendemerits 25000 + \adjdemerits 50000 + } +\endprog + + +\sect In some languages ligatures should not appear between compound +words. We use {\tt \string\|\/} to mark those places. This is only +done within text mode, in math mode {\tt \string\|\/} is still +`$\|$'. But it is sure that one can always hyphenate between compound +words, so we insert |\-|. To allow the hyphenation in other parts of +the word though, we use |\allowhyphens| again. + +\beginprog +\def\|{% % break open a ligature (if not in math mode) + \relax + \ifmmode \Vert + \else \allowhyphens\-\allowhyphens + \fi + } +\endprog + + +\sect Don't use the dreaded `double quote special meaning' stuff of +|german.sty|. And use original umlauts. Already in M\"unster I voted +against it\dots + +\beginprog +\addto\extrasgerman{% + \mdqoff + \umlautlow + } +\endprog + + +\sect Define |\SwitchtoLanguage| for upward compatibility. It does +not really do the same, the old definition was more similar to +|\selectlanguage|. But other languages have to be declared +explicitely, that's not done by this macro file. So we just want to +make old documents processable. + +\beginprog +\def\SwitchtoLanguage#1{\language \csname l@#1\endcsname} +\endprog + + +\sect We are finished; switch to german language (to enable the new +extras defined above), restore the catcodes and prevent from following +garbage. + +\beginprog +\selectlanguage{german} + +\catcode`\@=\CatAtCode +\catcode`\_=\CatUsCode + +\endinput +\endprog + + +%% \sect {\it Acknowledgements:}\quad I would like to thank XXX + + +\bye + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% $Log: deutsch.doc,v $ +% Revision 1.4 1995/07/30 13:23:56 schrod +% Discard babel definition of \DeclareTextCommand before including +% german.sty, they are incompatible. +% +% Revision 1.3 1995/07/29 17:58:24 schrod +% Use german.sty, not germanb.sty. (babel 3.5 is not functional for +% plain TeX any more.) But we still want to use babel's macros, we have +% to load it's kernel for that. +% +% Revision 1.2 1995/03/13 23:18:10 schrod +% Started to manage this package with CVS. Made minor code cleanup. +% +% Revision 1.1 1994/10/16 16:57:30 schrod +% Merged macros from local.tex, codes.tex, and language.tex. This +% new file is mainly there to provide upward compatibility for our old +% documents. +% +% +% +% pre-CVS Version History: +% +% DATE WHO REMARKS +% 91-01-18 js set all extended characters to code invalid +% 90-12-23 js added the definition of \ExtendChar for usage in codes.tex. +% 90-10-06 js renamed from dlocal to local, it's now international, +% adapted to TeX 3: +% included codes.tex and langdef.tex if they exist, +% assumed that language.tex is already loaded, +% defined German parameters as a language hook, +% removed first \allowhyphens in \uml@ut, +% documented it with MAKEPROG. +% 89-10-27 js was reworked for ILaTeX +% 89-05-31 js defined \| as a separator for ligatures in text mode +% 87-10-01 js introduced \protect, +% set parameters for German page makeup +% 87-??-?? kg first release +% +% kg: Klaus Guntermann <gunterma@<schrod@iti.informatik.th-darmstadt.de> +% js: Joachim Schrod <schrod@iti.informatik.th-darmstadt.de> + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +Local Variables: +mode: plain-TeX +TeX-master: t +TeX-brace-indent-level: 4 +End: diff --git a/Master/texmf-dist/doc/plain/js-misc/deutsch.tex b/Master/texmf-dist/doc/plain/js-misc/deutsch.tex new file mode 100644 index 00000000000..26f3e3719d6 --- /dev/null +++ b/Master/texmf-dist/doc/plain/js-misc/deutsch.tex @@ -0,0 +1,350 @@ +% $Id: deutsch.doc,v 1.4 1995/07/30 13:23:56 schrod Exp $ +%---------------------------------------------------------------------- +% Written by Joachim Schrod <schrod@iti.informatik.th-darmstadt.de>. +% This file is distributed without any copyright restriction. + +% +% deutsch.doc -- typeset German documents with plain TeX. +% +% [TeX in MAKEPROG] +% (history at end) + + +%%%% +%%%% +%%%% These TeX macros were documented with the documentation system +%%%% MAKEPROG and automatically converted to the current form. +%%%% If you have MAKEPROG available you may transform it back to +%%%% the original input: Remove every occurence of three percents +%%%% and one optional blank from the beginning of a line and remove +%%%% every line which starts with four percents. The following lex +%%%% program will do this: +%%%% +%%%% %% +%%%% +%%%% ^%%%\ ? ; +%%%% ^%%%%.*\n ; +%%%% +%%%% If you just want to print the documentation you may fetch +%%%% the archive print-makeprog.tar.Z from ftp.th-darmstadt.de (directory +%%%% pub/tex/latex). It contains *all* used styles -- but beware, they +%%%% may not be in a documented form... +%%%% +%%%% +%%% \input progdoc + +%%% \input names.sty +%%% \def\babel{{\sf babel}} + + + +%%% \title{Typesetting German Documents with Plain \TeX{}} + + + +%%% \chap Introduction. + +%%% There are several defencies of plain \TeX{} if used for German +%%% documents: + +%%% \item{---} Mappings of national characters (`umlauts' and `sharp~s') +%%% to macros or to other character codes (if special fonts are available) +%%% are missing. + +%%% \item{---} \TeX{} produces lots of overfull hboxes for German texts. +%%% That's because the words there are usually longer than English ones. +%%% Furthermore we have to use much more hyphenation for German texts than +%%% for English ones, narrow typesetting is more important than few +%%% hyphenations. In particular, words with umlauts are not hyphenated +%%% often anyhow, even with the `multiple-word' approach from |german.sty|. + +%%% \item{---} It is typographic usage that between compound words +%%% ligatures are not built. Plain~\TeX{} has no easy, readable way to +%%% provide this. + +%%% \noindent This file does the according definitions. They are quite +%%% often only a kludge. But it is hard to make the restrictions +%%% disappear, sometimes it is even impossible within the current +%%% implementation of \TeX{}---and there will never be any other +%%% implementation. So we must live with these kludges. + + +%%% \sect Of course, there is more to German typesetting. Hyphenation, +%%% also for words with umlauts and sharp~s, etc. This basic +%%% functionality is supplied by the \babel{} system and DANTE's +%%% |german.sty|, we have to load the appropriate module. + +%%% There's one problem, though. \babel{}~3.5 defines +%%% |\DeclareTextSymbol|, a symbol used by |german.sty| to decide if it +%%% shall use NFSS code to access symbols. But that usage will lead to an +%%% endless recursion, because some text symbols are defined by +%%% themselves. I don't know if that problem is caused by \babel{}'s code +%%% or by its usage in |german.sty| -- turning it off seems to be an +%%% appropriate fix. + +%%% \beginprog +\let\DeclareTextSymbol\undefined +\input german.sty +%%% \endprog + + +%%% \sect But before we start we declare some shorthands for category +%%% codes. By declaring the at sign~(`|@|') as well as the +%%% underscore~`(|_|)' as letters we can use them in our macros. (I +%%% agree with D.~Knuth that |\identifier_several_words_long| is more +%%% readable than |\IdentifierSeveralWordsLong| and in every case better +%%% than |\p@@@s|.) With the at sign we can use the ``private'' Plain +%%% macros and with the underscore we can make our own macros more +%%% readable. But as we have to restore these category codes at the end +%%% of this macro file we store their former values in control +%%% sequences. This method is better than to use +%%% a group because not all macros have to be defined global this way. + +%%% \beginprog +\ifx \CatEscape\undefined + \chardef\CatEscape=0 + \chardef\CatOpen=1 + \chardef\CatClose=2 + \chardef\CatIgnore=9 + \chardef\CatLetter=11 + \chardef\CatOther=12 + \chardef\CatActive=13 % \active of plain.tex + \chardef\CatInvalid=15 + + \chardef\CatAtCode=\catcode`\@ + \chardef\CatUsCode=\catcode`\_ +\fi + +\catcode`\@=\CatLetter % top level macro file +\catcode`\_=\CatLetter +%%% \endprog + + +%%% \sect Let's identify this macro file against the user and in the Log file. + +%%% \beginprog +\begingroup + \catcode`\$=\CatIgnore + \catcode`\:=\CatIgnore + \message{Support for German documents, $Revision: 1.4 $} +\endgroup +%%% \endprog + + + +%%% \chap National Characters. + +%%% By default no extended characters are available, except those defined +%%% below. I.e., we start to treat all characters from |"7F| to |"FF| as +%%% invalid characters. + +%%% \beginprog +\count@="7F +\loop + \catcode \the\count@ = \CatInvalid + \advance\count@ by 1 + \ifnum \count@ < "100 +\repeat +%%% \endprog + + +%%% \sect We provide a command for the definition of non-ASCII characters: +%%% |\ExtendChar|. A sample definition of an ``Umlaut-a''~(\"a) in the +%%% extended code of an IBM~PC (hex code~|"84|) is: +%%% $$ +%%% |\ExtendChar\^^84: {^^84}{\"a}| +%%% $$ +%%% First the hex code is given as a control sequence, followed by a +%%% colon. Afterwards come two parameters, the first is again the hex +%%% code, the second is the token list which should be used instead of the +%%% hex code. + +%%% The macro definition is rather easy, we just have to make the +%%% respective character active and bind it to it's new meaning. + +%%% \beginprog +\def\ExtendChar #1:{% + \catcode`#1 \CatActive + \extend_char + } +\def\extend_char #1#2{% + \def #1{#2}% + } +%%% \endprog + + +%%% \sect Now we can define some replacements. + +%%% The braces after the control sequences are needed when characters from +%%% the extended character set are written to an auxiliary file and read +%%% in later. During the |\write| they are expanded and following white +%%% space would be gobbled if the braces would not be there. + +%%% \beginprog +% ISO-Latin-1 +\ExtendChar\^^c4: {^^c4}{\"A} +\ExtendChar\^^d6: {^^d6}{\"O} +\ExtendChar\^^dc: {^^dc}{\"U} +\ExtendChar\^^df: {^^df}{\ss{}} +\ExtendChar\^^e4: {^^e4}{\"a} +\ExtendChar\^^f6: {^^f6}{\"o} +\ExtendChar\^^fc: {^^fc}{\"u} + +% IBM PC (code page 850) +\ExtendChar\^^81: {^^81}{\"u} +\ExtendChar\^^84: {^^84}{\"a} +\ExtendChar\^^8e: {^^8e}{\"A} +\ExtendChar\^^94: {^^94}{\"o} +\ExtendChar\^^99: {^^99}{\"O} +\ExtendChar\^^9a: {^^9a}{\"U} +\ExtendChar\^^e1: {^^e1}{\ss{}} % actually \beta, used as \ss in Germany + +% Atari ST (like IBM PC, but with a real `sharp~s') +\ExtendChar\^^9e: {^^9e}{\ss{}} +%%% \endprog + + + +%%% \chap Paragraph Breaking. + +%%% As outlined in the introduction, we allow longer interword spaces. A +%%% line now may have a badness up to 2500, over 1500 a warning is to be +%%% given. Furthermore the penalties for hyphenation are lowered because a +%%% narrow typesetting is preferred against few hyphenations. + +%%% These values are still experimental and should be tuned. + +%%% As |german.sty| uses \babel{} compatible structure, the german +%%% language hook is a good place to store such definitions. But to +%%% use \babel{}'s convenient macros, too, we have to assure that it's +%%% kernel code is loaded first. + +%%% \beginprog +\ifx \babel@core@loaded\undefined + \input babel.def +\fi +\addto\extrasgerman{% + \babel@savevariable\tolerance + \babel@savevariable\hbadness + \babel@savevariable\doublehyphendemerits + \babel@savevariable\finalhyphendemerits + \babel@savevariable\adjdemerits + \tolerance 2500 \hbadness 1500 + \doublehyphendemerits 50000 + \finalhyphendemerits 25000 + \adjdemerits 50000 + } +%%% \endprog + + +%%% \sect In some languages ligatures should not appear between compound +%%% words. We use {\tt \string\|\/} to mark those places. This is only +%%% done within text mode, in math mode {\tt \string\|\/} is still +%%% `$\|$'. But it is sure that one can always hyphenate between compound +%%% words, so we insert |\-|. To allow the hyphenation in other parts of +%%% the word though, we use |\allowhyphens| again. + +%%% \beginprog +\def\|{% % break open a ligature (if not in math mode) + \relax + \ifmmode \Vert + \else \allowhyphens\-\allowhyphens + \fi + } +%%% \endprog + + +%%% \sect Don't use the dreaded `double quote special meaning' stuff of +%%% |german.sty|. And use original umlauts. Already in M\"unster I voted +%%% against it\dots + +%%% \beginprog +\addto\extrasgerman{% + \mdqoff + \umlautlow + } +%%% \endprog + + +%%% \sect Define |\SwitchtoLanguage| for upward compatibility. It does +%%% not really do the same, the old definition was more similar to +%%% |\selectlanguage|. But other languages have to be declared +%%% explicitely, that's not done by this macro file. So we just want to +%%% make old documents processable. + +%%% \beginprog +\def\SwitchtoLanguage#1{\language \csname l@#1\endcsname} +%%% \endprog + + +%%% \sect We are finished; switch to german language (to enable the new +%%% extras defined above), restore the catcodes and prevent from following +%%% garbage. + +%%% \beginprog +\selectlanguage{german} + +\catcode`\@=\CatAtCode +\catcode`\_=\CatUsCode + +\endinput +%%% \endprog + + +%%% %% \sect {\it Acknowledgements:}\quad I would like to thank XXX + + +%%% \bye + +%%% +%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% % +%%% % $Log: deutsch.doc,v $ +%%% % Revision 1.4 1995/07/30 13:23:56 schrod +%%% % Discard babel definition of \DeclareTextCommand before including +%%% % german.sty, they are incompatible. +%%% % +%%% % Revision 1.3 1995/07/29 17:58:24 schrod +%%% % Use german.sty, not germanb.sty. (babel 3.5 is not functional for +%%% % plain TeX any more.) But we still want to use babel's macros, we have +%%% % to load it's kernel for that. +%%% % +%%% % Revision 1.2 1995/03/13 23:18:10 schrod +%%% % Started to manage this package with CVS. Made minor code cleanup. +%%% % +%%% % Revision 1.1 1994/10/16 16:57:30 schrod +%%% % Merged macros from local.tex, codes.tex, and language.tex. This +%%% % new file is mainly there to provide upward compatibility for our old +%%% % documents. +%%% % +%%% % +%%% % +%%% % pre-CVS Version History: +%%% % +%%% % DATE WHO REMARKS +%%% % 91-01-18 js set all extended characters to code invalid +%%% % 90-12-23 js added the definition of \ExtendChar for usage in codes.tex. +%%% % 90-10-06 js renamed from dlocal to local, it's now international, +%%% % adapted to TeX 3: +%%% % included codes.tex and langdef.tex if they exist, +%%% % assumed that language.tex is already loaded, +%%% % defined German parameters as a language hook, +%%% % removed first \allowhyphens in \uml@ut, +%%% % documented it with MAKEPROG. +%%% % 89-10-27 js was reworked for ILaTeX +%%% % 89-05-31 js defined \| as a separator for ligatures in text mode +%%% % 87-10-01 js introduced \protect, +%%% % set parameters for German page makeup +%%% % 87-??-?? kg first release +%%% % +%%% % kg: Klaus Guntermann <gunterma@<schrod@iti.informatik.th-darmstadt.de> +%%% % js: Joachim Schrod <schrod@iti.informatik.th-darmstadt.de> + + +%%% +%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% Local Variables: +%%% mode: plain-TeX +%%% TeX-master: t +%%% TeX-brace-indent-level: 4 +%%% End: diff --git a/Master/texmf-dist/doc/plain/js-misc/idverb.doc b/Master/texmf-dist/doc/plain/js-misc/idverb.doc new file mode 100644 index 00000000000..79fb0b183dd --- /dev/null +++ b/Master/texmf-dist/doc/plain/js-misc/idverb.doc @@ -0,0 +1,194 @@ +% $Id: idverb.doc,v 1.1 1995/03/13 23:18:11 schrod Exp $ +%---------------------------------------------------------------------- +% Written by Joachim Schrod <schrod@iti.informatik.th-darmstadt.de>. +% Copyright conditions see below. + +% +% idverb.doc --- typeset identifiers verbatim +% +% [plain TeX in MAKEPROG] +% (history at end) + + +\input progdoc + +\input names.sty +\def\v{{\tt \vbar\/}} + + + +\title{Identifiers Verbatim \`a la {\ttitlefont WEB}} + + + +\chap Introduction. + +This macro files allows to write identifiers in a \WEB{} like style, +i.e.\ as {\tt \origvert identifier\origvert\/}. The identifiers are +typeset verbatim in the monospace type face. The macros +|\makevertother| and |\makevertactive| are available to activate and +deactivate the special behaviour of the vertical bar. + + +\sect This macro file uses the namespace |idv|. + +\beginprog +\ifx \IdvLoaded\undefined + \def\IdvLoaded{$Revision: 1.1 $} +\else \endinput \fi % <-- one line! +\endprog + + +\sect These macros are supported. Send bug reports, comments and +repairs. + +The reference version may be retrieved via anonymous ftp from +|ftp.th-darmstadt.de| [130.83.47.112], directory |pub/tex/plain|. It's +placed there as a gzipped tar file. (The information on the +IP~number is dated March 13, 1995. It might have changed, also this is very +unlikely. Use your friendly nameserver.) + + +\sect This is freely distributable 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 software is distributed in the hope that it will be useful, but +{\bf without any warranty\/}; without even the implied warranty of +{\bf merchantability\/} or {\bf 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 in +the file |License| along with this package; if not, write to the Free +Software Foundation, Inc., 675~Mass Ave, Cambridge, MA~02139,~USA. + + +\sect But before we start we declare some shorthands for category +codes. By declaring the at sign~(`|@|') as well as the +underscore~`(|_|)' as letters we can use them in our macros. (I agree +with D.~Knuth that |\identifier_several_words_long| is more readable +than |\IdentifierSeveralWordsLong| and in every case better than +|\p@@@s|.) With the at sign we can use the ``private'' Plain macros +and with the underscore we can make our own macros more readable. But +as we have to restore these category codes at the end of this macro +file we store their former values in control sequences. This method is +better than to use a group because not all macros have to be defined +global this way. + +Only the first macro file read in defines the |Cat| cseqs. + +\beginprog +\ifx \CatEscape\undefined + \chardef\CatEscape=0 + \chardef\CatOpen=1 + \chardef\CatClose=2 + \chardef\CatIgnore=9 + \chardef\CatLetter=11 + \chardef\CatOther=12 + \chardef\CatActive=13 % \active of plain.tex + \chardef\CatInvalid=15 + + \chardef\CatAtCode=\catcode`\@ + \chardef\CatUsCode=\catcode`\_ +\fi + +\catcode`\@=\CatLetter % top level macro file +\catcode`\_=\CatLetter +\endprog + + +\sect Let's identify this macro file against the user and in the Log file. + +\beginprog +\begingroup + \catcode`\$=\CatIgnore + \catcode`\:=\CatIgnore + \message{Verbatim identifiers, $Revision: 1.1 $} +\endgroup +\endprog + + +\sect The usual verbatim macros use |\dospecials| to change the +catcode of all special characters. We have to add `\v' to this list. +The old meaning is stored in |\idv_OrigDospecials|. + +\beginprog +\let\idv_OrigDospecials=\dospecials +\begingroup + \def\do#1{\noexpand\do\noexpand#1} + \xdef\dospecials{\idv_OrigDospecials\do\|} +\endgroup +\let\idv_dospecials=\dospecials + +\def\makevertactive{\catcode`\|\CatActive \let\dospecials\idv_dospecials} +\def\makevertother{\catcode`\|\CatOther \let\dospecials\idv_OrigDospecials} + +\makevertactive +\endprog + + +\sect Now we can define `\v'. This definition is a little bit tricky, +as it redefines itself to |\egroup| to close the hbox. But if the hbox +is ended, `\v' is restored to its original meaning. |\origvert| is +given the original meaning of `\v'. |\vbar| is the character from the +current font that has the ASCII code of a vertical bar, sometimes this +{\it is\/} a vertical bar. + +\beginprog +\let\origvert=| +\chardef\vbar=`\| + +\def\idv_setup_verbatim{% + \def\do##1{\catcode`##1\CatOther}\idv_OrigDospecials + \parskip\z@skip \parindent\z@ + \obeylines \obeyspaces \frenchspacing + \tt + } + +\def|{% + \leavevmode + \hbox\bgroup + \let\par\space \idv_setup_verbatim + \let|\egroup + } +\endprog + + +\sect We are finished; +restore the catcodes and prevent from following garbage. + +\beginprog +\catcode`\@=\CatAtCode +\catcode`\_=\CatUsCode + +\endinput +\endprog + + +%% \sect {\it Acknowledgements:}\quad I would like to thank XXX + + +\bye + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% $Log: idverb.doc,v $ +% Revision 1.1 1995/03/13 23:18:11 schrod +% Started to manage this package with CVS. Made minor code cleanup. +% + +% +% Pre-CVS Log: +% +% 27 Jul 89 js Initial revision. + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +Local Variables: +mode: plain-TeX +TeX-master: t +TeX-brace-indent-level: 4 +End: diff --git a/Master/texmf-dist/doc/plain/js-misc/names.sty b/Master/texmf-dist/doc/plain/js-misc/names.sty new file mode 100644 index 00000000000..57452c17b52 --- /dev/null +++ b/Master/texmf-dist/doc/plain/js-misc/names.sty @@ -0,0 +1,95 @@ +% $Id: names.sty,v 1.2 1995/03/13 23:18:13 schrod Exp $ +%------------------------------------------------------------ + +% +% Verfuegbarkeit von haeufigen Abkuerzungen/Logos in +% LaTeX und Formate bei Grund-Schriftgroesse 10pt. +% +% alle Logos nur in Roman +% TeX related Logos: +% \TeX +% \INITeX +% \Plain Plain TeX +% \LaTeX +% \BibTeX +% \SliTeX +% \MakeIndex (kursiv) +% \AmSTeX AmS-TeX +% \LAMSTeX LAmS-TeX +% \MF METAFONT +% \INIMF +% \WEB +% \CWEB +% \TIE +% \stTeX +% \stMF +% Dateitypen (alle in teletype): +% \LOG +% \DVI +% \FMT +% \TFM +% \GF +% \PK +% \PXL +% andere Logos: +% \C++ + + +\font\tenlogo=logo10 +\let\logo=\tenlogo +\ifx \mc\undefined \let\mc=\small \fi % fuer LaTeX, `medium caps' + + +% FIXME: should the space factor be set to 1000 afterwards? +% is it a global value? otherwise it would be a faulty design within TeX... +\def\TeX{{\rm T\kern-.1667em\lower.5ex\hbox{E}\kern-.125emX}} +\def\INITeX{{\rm INI\TeX}} + +\def\Plain{{\rm Plain~\TeX}} + +% LaTeX-Definition mit Original-TeX-Logo! +% Entspricht nicht der Definition von L. Lamport, ist aber konsistenter +\def\LaTeX{{\rm L\kern-.36em\raise.3ex\hbox{\sc a}\kern-.15em\TeX}} +\def\BibTeX{{\rm B\kern-.05em{\sc i\kern-.025em b}\kern-.08em\TeX}} +\def\SliTeX{{\rm S\kern-.06em{\sc l\kern-.035em i}\kern-.06em\TeX}} +\def\MakeIndex{{\it MakeIndex\/}} + +\def\AmSTeX{% + $\cal A\kern-.1667em\lower.5ex\hbox{$\cal M$}\kern-.125em S$% + -\TeX + } +\def\LAMSTeX{% + L\raise.42ex\hbox{$\scriptstyle\kern-.3em\cal A$}\kern-.2em + \lower.376ex\hbox{$\cal M$}\kern-.125em $\cal S$% + -\TeX + } + + +\def\MF{{\logo META}\-{\logo FONT\/}} +\def\INIMF{{\mc INI}{\logo MF}} + + +\def\WEB{{\tt WEB\/}} +\def\CWEB{{\mc CWEB}} +\def\TIE{{\tt TIE\/}} + + +\def\stTeX{{\sc st\rm\kern-0.13em\TeX}} % unser stTeX (TeXsys) +\def\stMF{{\sc st}{\logo MF}} % unser stMF + + +\def\LOG{{\tt LOG\/}} +\def\DVI{{\tt DVI\/}} +\def\FMT{{\tt FMT\/}} +\def\TFM{{\tt TFM\/}} + +\def\GF{{\tt GF\/}} +\def\PK{{\tt PK\/}} +\def\PXL{{\tt PXL\/}} + + + +\def\C++{C\raise .4ex\hbox{$\scriptstyle +\!+$}} + + +\endinput diff --git a/Master/texmf-dist/doc/plain/js-misc/xfig/text-2.1-doc.tex b/Master/texmf-dist/doc/plain/js-misc/xfig/text-2.1-doc.tex new file mode 100644 index 00000000000..ed37a84508c --- /dev/null +++ b/Master/texmf-dist/doc/plain/js-misc/xfig/text-2.1-doc.tex @@ -0,0 +1,27 @@ +% $Id: text-2.1-doc.tex,v 1.1 1995/05/07 16:52:36 schrod Exp $ +%------------------------------------------------------------ + +% +% Test for xfig text typesetting of transfig 2.1 output +% + + +\input ../xfig.tex + +$$ +\hbox{\input text-2.1.latex } +$$ + + + +\bye + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +Local Variables: +mode: plain-TeX +TeX-parse-self: nil +TeX-auto-save: nil +TeX-master: t +End: diff --git a/Master/texmf-dist/doc/plain/js-misc/xfig/text-2.1.fig b/Master/texmf-dist/doc/plain/js-misc/xfig/text-2.1.fig new file mode 100644 index 00000000000..21c740e0675 --- /dev/null +++ b/Master/texmf-dist/doc/plain/js-misc/xfig/text-2.1.fig @@ -0,0 +1,3 @@ +#FIG 2.1 +80 2 +4 0 0 10 0 -1 0 0.00000 2 13 58 26 29 Hello, World diff --git a/Master/texmf-dist/doc/plain/js-misc/xfig/text-2.1.latex b/Master/texmf-dist/doc/plain/js-misc/xfig/text-2.1.latex new file mode 100644 index 00000000000..9eccd773f82 --- /dev/null +++ b/Master/texmf-dist/doc/plain/js-misc/xfig/text-2.1.latex @@ -0,0 +1,26 @@ +\setlength{\unitlength}{0.012500in}% +% +\begingroup\makeatletter\ifx\SetFigFont\undefined +% extract first six characters in \fmtname +\def\x#1#2#3#4#5#6#7\relax{\def\x{#1#2#3#4#5#6}}% +\expandafter\x\fmtname xxxxxx\relax \def\y{splain}% +\ifx\x\y % LaTeX or SliTeX? +\gdef\SetFigFont#1#2#3{% + \ifnum #1<17\tiny\else \ifnum #1<20\small\else + \ifnum #1<24\normalsize\else \ifnum #1<29\large\else + \ifnum #1<34\Large\else \ifnum #1<41\LARGE\else + \huge\fi\fi\fi\fi\fi\fi + \csname #3\endcsname}% +\else +\gdef\SetFigFont#1#2#3{\begingroup + \count@#1\relax \ifnum 25<\count@\count@25\fi + \def\x{\endgroup\@setsize\SetFigFont{#2pt}}% + \expandafter\x + \csname \romannumeral\the\count@ pt\expandafter\endcsname + \csname @\romannumeral\the\count@ pt\endcsname + \csname #3\endcsname}% +\fi +\fi\endgroup +\begin{picture}(0,13)(27,810) +\put( 27,810){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{rm}Hello, World}}} +\end{picture} diff --git a/Master/texmf-dist/doc/plain/js-misc/xfig/text-3.1-doc.tex b/Master/texmf-dist/doc/plain/js-misc/xfig/text-3.1-doc.tex new file mode 100644 index 00000000000..2bde7ee926c --- /dev/null +++ b/Master/texmf-dist/doc/plain/js-misc/xfig/text-3.1-doc.tex @@ -0,0 +1,27 @@ +% $Id: text-3.1-doc.tex,v 1.1 1995/05/07 16:52:38 schrod Exp $ +%------------------------------------------------------------ + +% +% Test for xfig text typesetting of transfig 3.1 output +% + + +\input ../xfig.tex + +$$ +\hbox{\input text-3.1.latex } +$$ + + + +\bye + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +Local Variables: +mode: plain-TeX +TeX-parse-self: nil +TeX-auto-save: nil +TeX-master: t +End: diff --git a/Master/texmf-dist/doc/plain/js-misc/xfig/text-3.1.latex b/Master/texmf-dist/doc/plain/js-misc/xfig/text-3.1.latex new file mode 100644 index 00000000000..c35c42a91a7 --- /dev/null +++ b/Master/texmf-dist/doc/plain/js-misc/xfig/text-3.1.latex @@ -0,0 +1,11 @@ +\setlength{\unitlength}{0.01250000in}% +% +\begingroup\makeatletter\ifx\SetFigFont\undefined% +\gdef\SetFigFont#1#2#3#4#5{% + \reset@font\fontsize{#1}{#2pt}% + \fontfamily{#3}\fontseries{#4}\fontshape{#5}% + \selectfont}% +\fi\endgroup% +\begin{picture}(0,13)(27,808) +\put( 27,810){\makebox(0,0)[lb]{\smash{\SetFigFont{10}{12.0}{\familydefault}{\mddefault}{\updefault}Hello, World}}} +\end{picture} diff --git a/Master/texmf-dist/tex/plain/js-misc/cassette.tex b/Master/texmf-dist/tex/plain/js-misc/cassette.tex new file mode 100644 index 00000000000..828260153bf --- /dev/null +++ b/Master/texmf-dist/tex/plain/js-misc/cassette.tex @@ -0,0 +1,166 @@ +% $Id: cassette.tex,v 1.2 1995/03/16 01:17:54 schrod Exp $ +%-------------------------------------------------------- +% Written by Joachim Schrod <schrod@iti.informatik.th-darmstadt.de>. +% Put into public domain. + + +\catcode`\@=11 + +\font\norm=cmss8 +\font\intfont=cmssi8 +\font\titfont@page=cmcsc10 scaled 800 +\font\titfont=cmss10 +\font\titintfont=cmssi10 +\font\cassfont=cmcsc10 + +\newdimen\colwidth \colwidth=50 true mm +\newdimen\backheight \backheight=10 true mm +\newdimen\titheight \titheight=14 true mm +\newdimen\pagheight \pagheight=66 true mm + +\def\@seite#1{% + \global\setbox\@page=\vbox{\hsize=\colwidth + \everypar={\global\hangindent=1em }% + \vskip \tw@\p@ + #1\endgraf + \vfil + }% + } + +\def\cnt#1:{[#1]} +\def\von#1:{{\intfont #1\/}:\penalty -100 } % <== Space! +\def\nl{\hfill\break} + +\def\@titel#1{% + \global\setbox\@title=\vbox{\hsize=\colwidth + \let\intfont=\titintfont % Font fuer Interpret + \vfill + \unvbox\@title + \titfont #1\endgraf + \vfill + }% + {\titfont@page + \def\von##1:{\uppercase{##1}:\penalty -100 }% % <== Space! + #1% + }} + + +\newbox\@seitea +\newbox\@seiteb +\newbox\@titela +\newbox\@titelb +\def\seitea{\let\@page=\@seitea \let\titel=\titela \obeylines \@seite} +\def\seiteb{\let\@page=\@seiteb \let\titel=\titelb \obeylines \@seite} +\def\titela{\let\@title=\@titela \@titel} +\def\titelb{\let\@title=\@titelb \@titel} + +\def\titelcass#1{% + \global\setbox\@titela=\vbox{\hsize=\colwidth + \vfill + \unvbox\@titela + \titfont #1\endgraf + \vfill + }% + } + + + + +\def\begincassette#1{% + \def\cassname{#1}% + \setbox\@seitea\vbox{\hrule width\colwidth height\z@ depth\z@ \vfil}% + \setbox\@seiteb\vbox{\hrule width\colwidth height\z@ depth\z@ \vfil}% + \setbox\@titela\vbox{\hrule width\colwidth height\z@ depth\z@ \vfil}% + \setbox\@titelb\vbox{\hrule width\colwidth height\z@ depth\z@ \vfil}% + \splittopskip\baselineskip + } + +\newif\if@text@left@ +\def\endcassette{% + \hbox{% + \vrule + \vbox{% + \hrule + \vbox to \backheight{\hsize2\colwidth \advance\hsize by 4.4\p@ + \vfill + \centerline{\cassfont \cassname}% + \vfill + }% + \hrule + \col{\titheight}{@titel}% + \hrule + \loop + \global\@text@left@false + \one@page + \if@text@left@ \repeat + }% + \vrule + }% + } +\def\one@page{% + \col{\pagheight}{@seite}% + \hrule + }% +\def\col#1#2{% + \hbox{% + \hskip \p@ + \split@col{#2a}{#1}% + \hskip \p@ + \vrule + \hskip \p@ + \split@col{#2b}{#1}% + \hskip \p@ + }% + } +\def\split@col#1#2{% + \expandafter \ifvoid \csname #1\endcsname + \vbox to #2{\hrule width\colwidth height\z@ depth\z@ \vfil}% + \else + \vbox to #2{\hsize\colwidth + \setbox\z@ \vsplit \csname #1\endcsname to #2\relax + \unvbox\z@ + \vskip 2pt plus 1fil minus 2pt + }% + \expandafter \ifvoid \csname #1\endcsname + \else \global\@text@left@true + \fi + \fi + } + + +\norm \baselineskip=9pt \lineskip=0pt \lineskiplimit=0pt +\parindent=\z@ \parskip=\tw@\p@ minus \tw@\p@ +\rightskip=\z@ plus 0.7\colwidth \linepenalty=100 +\r@ggedbottomtrue +\frenchspacing +\nopagenumbers + + +\endinput + + + +% ============================================================ +% +% $Log: cassette.tex,v $ +% Revision 1.2 1995/03/16 01:17:54 schrod +% Support for magnified typesetting. +% Might be more changes as well, they looked sensible. +% +% Revision 1.1 1995/03/13 23:18:10 schrod +% Started to manage this package with CVS. Made minor code cleanup. +% + +% +% Pre-CVS Log: +% +% 87-09-20 js Initial revision + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +Local Variables: +mode: plain-TeX +TeX-master: t +TeX-brace-indent-level: 4 +End: diff --git a/Master/texmf-dist/tex/plain/js-misc/idverb.tex b/Master/texmf-dist/tex/plain/js-misc/idverb.tex new file mode 100644 index 00000000000..f40dbf860cb --- /dev/null +++ b/Master/texmf-dist/tex/plain/js-misc/idverb.tex @@ -0,0 +1,215 @@ +% $Id: idverb.doc,v 1.1 1995/03/13 23:18:11 schrod Exp $ +%---------------------------------------------------------------------- +% Written by Joachim Schrod <schrod@iti.informatik.th-darmstadt.de>. +% Copyright conditions see below. + +% +% idverb.doc --- typeset identifiers verbatim +% +% [plain TeX in MAKEPROG] +% (history at end) + + +%%%% +%%%% +%%%% These TeX macros were documented with the documentation system +%%%% MAKEPROG and automatically converted to the current form. +%%%% If you have MAKEPROG available you may transform it back to +%%%% the original input: Remove every occurence of three percents +%%%% and one optional blank from the beginning of a line and remove +%%%% every line which starts with four percents. The following lex +%%%% program will do this: +%%%% +%%%% %% +%%%% +%%%% ^%%%\ ? ; +%%%% ^%%%%.*\n ; +%%%% +%%%% If you just want to print the documentation you may fetch +%%%% the archive print-makeprog.tar.Z from ftp.th-darmstadt.de (directory +%%%% pub/tex/latex). It contains *all* used styles -- but beware, they +%%%% may not be in a documented form... +%%%% +%%%% +%%% \input progdoc + +%%% \input names.sty +%%% \def\v{{\tt \vbar\/}} + + + +%%% \title{Identifiers Verbatim \`a la {\ttitlefont WEB}} + + + +%%% \chap Introduction. + +%%% This macro files allows to write identifiers in a \WEB{} like style, +%%% i.e.\ as {\tt \origvert identifier\origvert\/}. The identifiers are +%%% typeset verbatim in the monospace type face. The macros +%%% |\makevertother| and |\makevertactive| are available to activate and +%%% deactivate the special behaviour of the vertical bar. + + +%%% \sect This macro file uses the namespace |idv|. + +%%% \beginprog +\ifx \IdvLoaded\undefined + \def\IdvLoaded{$Revision: 1.1 $} +\else \endinput \fi % <-- one line! +%%% \endprog + + +%%% \sect These macros are supported. Send bug reports, comments and +%%% repairs. + +%%% The reference version may be retrieved via anonymous ftp from +%%% |ftp.th-darmstadt.de| [130.83.47.112], directory |pub/tex/plain|. It's +%%% placed there as a gzipped tar file. (The information on the +%%% IP~number is dated March 13, 1995. It might have changed, also this is very +%%% unlikely. Use your friendly nameserver.) + + +%%% \sect This is freely distributable 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 software is distributed in the hope that it will be useful, but +%%% {\bf without any warranty\/}; without even the implied warranty of +%%% {\bf merchantability\/} or {\bf 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 in +%%% the file |License| along with this package; if not, write to the Free +%%% Software Foundation, Inc., 675~Mass Ave, Cambridge, MA~02139,~USA. + + +%%% \sect But before we start we declare some shorthands for category +%%% codes. By declaring the at sign~(`|@|') as well as the +%%% underscore~`(|_|)' as letters we can use them in our macros. (I agree +%%% with D.~Knuth that |\identifier_several_words_long| is more readable +%%% than |\IdentifierSeveralWordsLong| and in every case better than +%%% |\p@@@s|.) With the at sign we can use the ``private'' Plain macros +%%% and with the underscore we can make our own macros more readable. But +%%% as we have to restore these category codes at the end of this macro +%%% file we store their former values in control sequences. This method is +%%% better than to use a group because not all macros have to be defined +%%% global this way. + +%%% Only the first macro file read in defines the |Cat| cseqs. + +%%% \beginprog +\ifx \CatEscape\undefined + \chardef\CatEscape=0 + \chardef\CatOpen=1 + \chardef\CatClose=2 + \chardef\CatIgnore=9 + \chardef\CatLetter=11 + \chardef\CatOther=12 + \chardef\CatActive=13 % \active of plain.tex + \chardef\CatInvalid=15 + + \chardef\CatAtCode=\catcode`\@ + \chardef\CatUsCode=\catcode`\_ +\fi + +\catcode`\@=\CatLetter % top level macro file +\catcode`\_=\CatLetter +%%% \endprog + + +%%% \sect Let's identify this macro file against the user and in the Log file. + +%%% \beginprog +\begingroup + \catcode`\$=\CatIgnore + \catcode`\:=\CatIgnore + \message{Verbatim identifiers, $Revision: 1.1 $} +\endgroup +%%% \endprog + + +%%% \sect The usual verbatim macros use |\dospecials| to change the +%%% catcode of all special characters. We have to add `\v' to this list. +%%% The old meaning is stored in |\idv_OrigDospecials|. + +%%% \beginprog +\let\idv_OrigDospecials=\dospecials +\begingroup + \def\do#1{\noexpand\do\noexpand#1} + \xdef\dospecials{\idv_OrigDospecials\do\|} +\endgroup +\let\idv_dospecials=\dospecials + +\def\makevertactive{\catcode`\|\CatActive \let\dospecials\idv_dospecials} +\def\makevertother{\catcode`\|\CatOther \let\dospecials\idv_OrigDospecials} + +\makevertactive +%%% \endprog + + +%%% \sect Now we can define `\v'. This definition is a little bit tricky, +%%% as it redefines itself to |\egroup| to close the hbox. But if the hbox +%%% is ended, `\v' is restored to its original meaning. |\origvert| is +%%% given the original meaning of `\v'. |\vbar| is the character from the +%%% current font that has the ASCII code of a vertical bar, sometimes this +%%% {\it is\/} a vertical bar. + +%%% \beginprog +\let\origvert=| +\chardef\vbar=`\| + +\def\idv_setup_verbatim{% + \def\do##1{\catcode`##1\CatOther}\idv_OrigDospecials + \parskip\z@skip \parindent\z@ + \obeylines \obeyspaces \frenchspacing + \tt + } + +\def|{% + \leavevmode + \hbox\bgroup + \let\par\space \idv_setup_verbatim + \let|\egroup + } +%%% \endprog + + +%%% \sect We are finished; +%%% restore the catcodes and prevent from following garbage. + +%%% \beginprog +\catcode`\@=\CatAtCode +\catcode`\_=\CatUsCode + +\endinput +%%% \endprog + + +%%% %% \sect {\it Acknowledgements:}\quad I would like to thank XXX + + +%%% \bye + +%%% +%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% % +%%% % $Log: idverb.doc,v $ +%%% % Revision 1.1 1995/03/13 23:18:11 schrod +%%% % Started to manage this package with CVS. Made minor code cleanup. +%%% % + +%%% % +%%% % Pre-CVS Log: +%%% % +%%% % 27 Jul 89 js Initial revision. + + +%%% +%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% Local Variables: +%%% mode: plain-TeX +%%% TeX-master: t +%%% TeX-brace-indent-level: 4 +%%% End: diff --git a/Master/texmf-dist/tex/plain/js-misc/js-misc.tex b/Master/texmf-dist/tex/plain/js-misc/js-misc.tex new file mode 100644 index 00000000000..c39e7c257f5 --- /dev/null +++ b/Master/texmf-dist/tex/plain/js-misc/js-misc.tex @@ -0,0 +1,244 @@ +% $Id: js-misc.tex,v 1.1 1995/03/13 23:18:12 schrod Exp $ +%-------------------------------------------------- +% Written by Joachim Schrod <schrod@iti.informatik.th-darmstadt.de>. + +% This is a german description for cassette.tex & schild.tex. + + +% Manual fuer ``Kleine TeX-Makros, aufbauend auf PLAIN'': +% Tonbandkassetten-Schilder +% Buecherruecken-Schilder +% +% [Formate] + + +\berichtformat + +\input idverb +\def\.{$\bullet$} + + + + +\titel{}{Kleine \TeX{}-Makros}{, aufbauend auf {\tt PLAIN}} +\autor{Joachim Schrod} +\datum{Rödermark, den 08.02.88} + + + + + +\kapitel{Beschriftung von Tonband-Kassetten}{} + +Die Beschriftung von Tonband-Kassetten wird durch +|\input cassette| geladen. +Durch diese Makros werden Schilder erzeugt, die +in eine Kassettenhülle gelegt werden können. +%Jedes Schild wird auf eine einzelne Seite gedruckt. +Das Layout eines Schildes ist in Abb.~1.1 zu sehen. +Das Schild wird an den äußeren Rändern ausgeschnitten +und entlang der horizontalen Linien gefaltet. + +\abbvoll{ +{\input cassette +\let\eject=\relax +\begincassette{Kassettenname} +\titelcass{Frontseite mit Titeln} +\seitea{Musikstücke der Seite A} +\seiteb{Musikstücke der Seite B} +\endcassette +}}{Layout eines Kassettenschildes} + +\noindent Folgende Befehle erzeugen das gewünschte Layout: + +\beginitemize + +\item{\.} |\begincassette|\quad (1 Parameter)\nl +Mit diesem Befehl beginnt die Beschreibung eines Kassettenschilds. +Der Parameter ist der Name der Kassette, der in |\cassfont| +(Kapitälchen, 10pt) gesetzt wird. + +\item{\.} |\titelcass|\quad (1 Parameter)\nl +Dieser Befehl gibt den Titel der Kassette an, der auf die +Frontseite gesetzt wird. +Der Titel wird in |\titfont| (Serifenlose, 10pt) gesetzt. +Dieser Befehl ist optional, da Titel auch durch |\titel| (s.u.)\ +angegeben werden können. + +\item{\.} |\seitea|\quad (1 Parameter)\nl +Durch den Parameter von |\seitea| wird die Seite~A der +Kassette beschrieben. +Diese Beschreibung umfaßt einen optionalen Titel und eine +Folge von Musikstücken. +Sie ist zeilenorientiert, d.h.\ jeweils ein Musikstück +(mit eventuellem Interpret) steht auf einer Eingabezeile. +Wenn der Text zu lang wird, kann durch die Angabe von |%| +am Zeilenende die Folgezeile mitbenutzt werden. +Innerhalb eines Musikstücks kann durch |\nl| gezielt +umgebrochen werden, wenn man mit dem von \TeX{} gewähltem +Umbruch nicht zufrieden ist. +Die Musikstücke werden in |\norm| (Serifenlose, 8pt) gesetzt. +Dieser Befehl ist optional. +\itempar +Folgende Hilfsbefehle stehen zur Beschreibung zur Verfügung: + +{\nextitemlevel\itemskip=0pt +\item{--} |\cnt|\quad (1 Parameter, beendet durch |:|)\nl +Mit |\cnt| kann die Zählerstellung des Beginns eines +Musikstücks angegeben werden. +Die angegebene Zahl wird in eckige Klammern gesetzt. + +\item{--} |\von|\quad (1 Parameter, beendet durch |:|)\nl +Durch |\von| kann ein Interpret dem Musikstück vorgestellt werden. +Ein Beispiel für eine vollständige Angabe eines Musikstücks +kann also +$$ + \hbox{|\von Led Zeppelin: Stairway to heaven|} +$$ +sein. +Der Interpret wird in |\intfont| (Serifenlose Kursiv, 8pt) gesetzt. + +\item{--} |\titel|\quad (1 Parameter)\nl +Mit diesem Befehl kann in die Seite eine Angabe eines Titels +(z.B.~einer Schallplatte) übernommen werden. +Dieser Titel wird gleichzeitig auf die Frontseite gesetzt. +Innerhalb des Titels kann |\von| zur Angabe eines Interpreten +benutzt werden. +Dieser Befehl kann mehrmals vorkommen. +Der Titel wird auf der Seite in |\titfont@page| (Kapitälchen, 8pt) +gesetzt, wobei der Interpret in Versalien gesetzt wird. +Auf der Frontseite wird der Titel in |\titfont| (Serifenlose, 10pt) +gesetzt, wobei der Interpret in |\titintfont| (Serifenlose Kursiv, 10pt) +gesetzt wird. +\par} + +\item{\.} |\seiteb|\quad (1 Parameter)\nl +Dieser Befehl beschreibt die Seite~B der Kassette. +Die Beschreibungsmöglichkeiten sind mit denen von |\seitea| +identisch. + +\item{\.} |\endcassette|\nl +Durch diesen Befehl wird die Beschreibung des Kassettenschildes +beendet und das Kassettenschild gesetzt. +Gleichzeitig wird eine neue Seite begonnen. + +\enditemize + + + + + +\kapitel{Beschriftung von Bücherrücken}{} + +Die Beschriftung von Bücherrücken wird durch +|\input schild| geladen. +Durch diese Makrodatei ist es möglich Schilder für +Bücherrücken zu erzeugen, die anschließend auf die Bücher +geklebt werden können. +Das Layout eines Schildes ist in der Abb.~2.1 gezeigt, +es wird an den äußeren Rändern ausgeschnitten. + +\def\schild{% + \vbox{% + \hrule + \hbox{% + \vrule + \vbox to 10mm{% + \vfill + \hbox{\kern 25mm \svtnrm Name des Buches\kern 25mm}% + \vfill + }% + \vrule + }% + \hrule + }% + } + +\def\vertlen{% + \llap{% + \vbox to 10mm{% + \vfill + \hbox{{\tt \#1\/} mm }% + \vfill + } + }% + } +\def\vertmass{% + \vbox{% + \hrule width 4mm + \hbox{% + \vertlen + \kern 2mm + \vrule height 10mm + }% + \hrule width 4mm + }% + } + +\def\horizmass{% + \hbox{% + \vrule height 2mm depth 2mm + \vtop{% + \hrule width 25mm + \kern 2mm + \hbox to 25mm{\ctr{\tt \char`\\rand}}% + }% + \vrule height 2mm depth 2mm + }% + } + +\abbvoll{ + \offinterlineskip + \hbox{% + \llap{% + \vertmass + \hskip 2mm + }% + \schild + }% + \vskip 2mm + \hbox{% + \horizmass + \phantom{\svtnrm Name des Buches}% + \horizmass + }% +}{Layout eines Buchrückenschildes} + +\noindent Um das Buchrückenschild zu erzeugen, existieren +folgende Makros und Parameter: + +\beginitemize + +\item{\.} |\schild|\quad (2 Parameter)\nl +Durch dieses Makro wird ein Schild erzeugt. +Der erste Parameter ist die Höhe des Schildes, der zweite +der Text, der auf das Buchrückenschild soll. + +\item{\.} |\rand|\nl +|\rand| ist eine Dimensionsangabe, die beschreibt, wieviel +Platz zwischen dem Buchnamen und dem Rand des Schildes +horizontal verbleibt. + +\item{\.} |\namfont|\nl +In |\namfont| wird der Buchname gesetzt. + +\enditemize + + + + + +\bye + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% $Log: js-misc.tex,v $ +% Revision 1.1 1995/03/13 23:18:12 schrod +% Started to manage this package with CVS. Made minor code cleanup. +% + +% +% Pre-CVS Log: +% +% 88-02-08 js Initial revision diff --git a/Master/texmf-dist/tex/plain/js-misc/schild.tex b/Master/texmf-dist/tex/plain/js-misc/schild.tex new file mode 100644 index 00000000000..9bc3ef237b3 --- /dev/null +++ b/Master/texmf-dist/tex/plain/js-misc/schild.tex @@ -0,0 +1,84 @@ +% $Id: schild.tex,v 1.1 1995/03/13 23:18:13 schrod Exp $ +%-------------------------------------------------------- + + +% Rueckenschild fuer ein gelumbacktes Buch: +% +% \buchschild#1#2 #1 == Breite in mm #2 == Name des Buches +% +% +% Tuerschilder ITI: +% +% \tuerschild#1 #1 == Text (ueblicherweise in Grossbuchstaben) +% falls zu lang, Font auf magstep3 reduzieren + + +\newdimen\rand +\rand=25mm + +\let\buchfont=\svtnrm +\font\tuerfont=cmssdc10 scaled \magstep4 % magstep3, falls zu lang +\let\tuerschildfont=\tuerfont + + + +\def\buchschild#1#2{% + \vbox{% + \offinterlineskip + \hrule + \hbox{% + \vrule + \vbox to #1mm{% + \vfill + \hbox{\kern\rand \buchfont #2\kern\rand}% + \vfill + }% + \vrule + }% + \hrule + }% + \vskip 2cm + } + +\def\tuerschild#1{% + \vbox{% + \offinterlineskip + \hrule + \hbox{% + \vrule + \vbox to 10mm{% + \rand=15mm + \vfill + \hbox to 155mm{\kern\rand \tuerschildfont #1\hfill}% + \vfill + }% + \vrule + }% + \hrule + }% + \vskip 2cm + } + + + +\raggedbottom +\nopagenumbers + + +\endinput + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% $Log: schild.tex,v $ +% Revision 1.1 1995/03/13 23:18:13 schrod +% Started to manage this package with CVS. Made minor code cleanup. +% + +% +% Pre-CVS Log: +% +% 92-04-15 cd renamed \schild to \buchschild +% introduced \tuerschild +% 88-02-08 js first release diff --git a/Master/texmf-dist/tex/plain/js-misc/sperr.tex b/Master/texmf-dist/tex/plain/js-misc/sperr.tex new file mode 100644 index 00000000000..4e6b0902301 --- /dev/null +++ b/Master/texmf-dist/tex/plain/js-misc/sperr.tex @@ -0,0 +1,116 @@ +% $Id: sperr.tex,v 1.2 1995/04/16 23:27:04 schrod Exp $ +%--------------------------------------------------------- +% Written by Joachim Schrod <schrod@iti.informatik.th-darmstadt.de>. +% This file is distributed without any copyright restriction. + + +% +% Makro-Datei zum Sperren von Zeichenfolgen. +% +% Bitte sperrt damit keine Gemeinen. +% +% Joachim Schrod +% + +% +% Benutzung: \sperr{TEXT}{KERNING} +% Wenn in TEXT mehrere Token als eines behandelt werden sollen +% (z.B. Umlaute), m\"ussen diese Tokens geklammert werden. +% + + +\ifx \CatEscape\undefined + \chardef\CatEscape=0 + \chardef\CatOpen=1 + \chardef\CatClose=2 + \chardef\CatIgnore=9 + \chardef\CatLetter=11 + \chardef\CatOther=12 + \chardef\CatActive=13 % \active of plain.tex + \chardef\CatInvalid=15 + + \chardef\CatAtCode=\catcode`\@ + \chardef\CatUsCode=\catcode`\_ +\fi + +\catcode`\@=\CatLetter % top level macro file +\catcode`\_=\CatLetter + +\begingroup + \catcode`\$=\CatIgnore + \catcode`\:=\CatIgnore + \message{Text sperren, $Revision: 1.2 $} +\endgroup + + +\let\end_list=\relax +\edef\empty_list{\end_list} + +\def\split#1#2\end_list{% + \edef\sec_char{#1}% + \toks@={#2\end_list}% + } + +\def\do_split{% + \expandafter \split \the\toks@ \end_list + } + +\def\next_char{% + \edef\first_char{\sec_char}% + \do_split + } + + + +\newdimen\sperr_width + +\def\sperr#1#2{% % Text, Sperrbreite + \toks@={#1\end_list}% + \sperr_width=#2\relax + \do_split + \next_char % initialize pipeline + \ifx \sec_char\empty_list #1% % nur 1 Zeichen + \else \do_sperr + \fi + } + + +\newif \if@loop + +\def\do_sperr{% + \loop + \set_char % Zeichen und nachfolgendes Kerning setzen + \next_char + \ifx \sec_char\empty_list + \first_char + \@loopfalse + \else \@looptrue + \fi + \if@loop + \repeat + } + + + + +\newbox\kern_box +\newdimen\kern_width + +\def\set_char{% + \setbox\kern_box=\hbox{\first_char\sec_char}% + \kern_width=\wd\kern_box + \setbox\kern_box=\hbox{\hbox{\first_char}\hbox{\sec_char}}% + \advance \kern_width by -\wd\kern_box + \advance \kern_width by \sperr_width + \first_char \kern\kern_width + } + + + + +\catcode`\@=\CatAtCode +\catcode`\_=\CatUsCode + + + +\endinput diff --git a/Master/texmf-dist/tex/plain/js-misc/xfig.tex b/Master/texmf-dist/tex/plain/js-misc/xfig.tex new file mode 100644 index 00000000000..95a86cff5e9 --- /dev/null +++ b/Master/texmf-dist/tex/plain/js-misc/xfig.tex @@ -0,0 +1,626 @@ +% $Id: xfig.tex,v 1.4 1995/05/07 16:52:05 schrod Exp $ +%------------------------------------------------------------ +% Hacked together by Joachim Schrod <schrod@iti.informatik.th-darmstadt.de> +% Put into public domain. + +% +% Support for xfig pictures in plain TeX +% orginally written for transfig 2.1.7 +% support last checked for transfig 3.1.3 +% + + +% USAGE: +% +% To include xfig figures in plain TeX documents, just input these +% macros and then input the (La)TeX file you got by exporting your +% figure as `LaTeX picture' or by calling fig2dev with option `-L +% latex'. No other ``language'' is supported by these macros; in +% particular, `Combined PS/LaTeX' is not supported. + +% You can select the used types for text by redefining some macros: +% \FigFontType<type> (with <type> equal `rm', `bf', `it', `sf', or +% `tt') must expand to the external font name that's used for the +% respective xfig font selection. +% \FigFontDefault specifies the font that's used for the `Default' +% font selection. That macro is only accessed if you use the new xfig, +% or if you repaired the no-NFSS code of fig2dev (in texfonts.h, see +% comments at \xfig@bindSetFigFont implementation below). +% +% At the start of each figure \pictureHook is evaluated, you might +% want to bind that to some code that does document-specific setup. +% Each figure is set in a group, so you can rebind other control +% sequences in that hook. + + +% ------------------------------------------------------------ + +% IMPLEMENTATION NOTES: +% +% The macros might not work in all circumstances, it's updated and improved +% by need... +% +% In particular: +% -- The font selection in \SetFigFont could be improved. +% -- The environment code (\begin/\end) is very rough and should +% check for erroneous input. + + +% Code structure: +% +% After general setup, code from DEK that implements most parts of +% LaTeX's picture environment is used. Then we add definitions for the +% missing and xfig-specific tags. +% +% In Emacs, each section starts on a new page. + + +% ============================================================ + +% standard setup: + +\ifx \CatEscape\undefined + \chardef\CatEscape=0 + \chardef\CatOpen=1 + \chardef\CatClose=2 + \chardef\CatIgnore=9 + \chardef\CatLetter=11 + \chardef\CatOther=12 + \chardef\CatActive=13 % \active of plain.tex + \chardef\CatInvalid=15 + + \chardef\CatAtCode=\catcode`\@ + \chardef\CatUsCode=\catcode`\_ +\fi + +\catcode`\@=\CatLetter % top level macro file + +\begingroup + \catcode`\$=\CatIgnore + \catcode`\:=\CatIgnore + \message{xfig pictures, $Revision: 1.4 $} +\endgroup + + +% This macro file allocates registers and might be read in multiple +% times, in groups. (Actually, this occured for the first time when we +% wanted to use xfig pictures in Texinfo documents. There they are +% typeset in a `tex' environment, and xfig is read in anew for each +% figure.) As all register allocations are globally, we define some +% macros that help us to define them only once. + +\def\xfig@newskip#1{% + \ifx #1\undefined \csname newskip\endcsname #1\fi + } +\def\xfig@newdimen#1{% + \ifx #1\undefined \csname newdimen\endcsname #1\fi + } +\def\xfig@newcount#1{% + \ifx #1\undefined \csname newcount\endcsname #1\fi + } +\def\xfig@newbox#1{% + \ifx #1\undefined \csname newbox\endcsname #1\fi + } + + +% ============================================================ + +%% First comes an implementation of the picture environment's features, +%% by the Grand Wizard of TeX Arcana himself. This is from picture.tex, +%% I deleted the \cpic macro and the squines. \makebox did not support +%% position specifiers, I substituted the definition by the one from +%% LaTeX2e. In addition, all register allocations are made with the +%% macros defined above. + +% -------------------------------------------------- + +% Pictures (a subset of \LaTeX's conventions, plus squines) + +%% [start of change to DEK's code] +%% +%% At's catcode is changed above already. +%% Allocation info for registers should go to log file. + +% \chardef\CatcodeAt=\catcode`\@ +% \catcode`\@=11 % enable private control sequences +% \def\wlog#1{} % don't put allocation info into the log + +%% [end of change] + +\xfig@newskip\hsssglue \hsssglue=0pt plus 1fill minus 1fill +\def\hsss{\hskip\hsssglue} + +\xfig@newdimen\unitlength \xfig@newdimen\linethickness +\xfig@newdimen\@picheight \xfig@newdimen\@xdim \xfig@newdimen\@ydim \xfig@newdimen\@len +\xfig@newdimen\@save +\xfig@newcount\@multicount \xfig@newcount\@xarg \xfig@newcount\@yarg +\xfig@newbox\@picbox \xfig@newbox\@mpbox + +\font\tenln=line10 \font\tenlnw=linew10 +\font\tencirc=lcircle10 \font\tencircw=lcirclew10 + +\xfig@newdimen\@halfwidth + +\def\thinlines{\let\linefont=\tenln \let\circlefont=\tencirc + \linethickness=\fontdimen8\linefont \@halfwidth .5\linethickness} +\def\thicklines{\let\linefont=\tenlnw \let\circlefont=\tencircw + \linethickness=\fontdimen8\linefont \@halfwidth .5\linethickness} +\thinlines + +\def\beginpicture(#1,#2)(#3,#4){\@picheight=#2\unitlength + \setbox\@picbox=\hbox to#1\unitlength\bgroup \let\line=\@line + \kern-#3\unitlength \lower#4\unitlength\hbox\bgroup\ignorespaces} +\def\endpicture{\egroup\hss\egroup + \ht\@picbox=\@picheight \dp\@picbox=\z@ + \leavevmode\box\@picbox} + +\def\put(#1,#2)#3{\raise#2\unitlength\rlap{\kern#1\unitlength #3}\ignorespaces} + +\def\multiput(#1,#2)(#3,#4)#5#6{\@multicount=#5\relax + \@xdim=#1\unitlength \@ydim=#2\unitlength \setbox\@mpbox=\hbox{#6}% + \loop\ifnum\@multicount>0 + \raise\@ydim\rlap{\kern\@xdim \unhcopy\@mpbox}% + \advance\@xdim#3\unitlength \advance\@ydim#4\unitlength + \advance\@multicount\m@ne \repeat\ignorespaces} + +\def\@ifnextchar#1#2#3{\let\@tempe=#1\def\@tempa{#2}\def\@tempb{#3}\futurelet + \@tempc\@ifnch} +\def\@ifnch{\ifx \@tempc \@sptoken \let\@tempd\@xifnch + \else \ifx \@tempc \@tempe\let\@tempd\@tempa\else\let\@tempd\@tempb\fi + \fi \@tempd} + +%% [start of change to DEK's code] +%% +%% \makebox is called with an optional argument, the position +%% specifier. The code below is copied from the LaTeX2e beta-test +%% release. + +\def\makebox(#1,#2){% + \@ifnextchar[{\@makebox(#1,#2)}{\@makebox(#1,#2)[]}} + +\def\@nnil{\@nil} +\def\@fornoop#1\@@#2#3{} +\def\@tfor#1:=#2\do#3{\def\@fortmp{#2}\ifx\@fortmp\empty \else + \@tforloop#2\@nil\@nil\@@#1{#3}\fi} +\def\@tforloop#1#2\@@#3#4{\def#3{#1}\ifx #3\@nnil + \let\@nextwhile\@fornoop \else + #4\relax\let\@nextwhile\@tforloop\fi\@nextwhile#2\@@#3{#4}} + +\long\def\@makebox(#1,#2)[#3]#4{% + \vbox to#2\unitlength + {\let\mb@b\vss \let\mb@l\hss\let\mb@r\hss + \let\mb@t\vss + \@tfor\@tempa :=#3\do{% + \if s\@tempa + \let\mb@l\relax\let\mb@r\relax + \else + \expandafter\let\csname mb@\@tempa\endcsname\relax + \fi}% + \mb@t + \hbox to #1\unitlength{\mb@l #4\mb@r}% + \mb@b + \kern\z@}} + +%% [end of change] + +\newif\ifneg +\def\@line(#1,#2)#3{\@xarg=#1 \@yarg=#2 \@len=#3\unitlength \leavevmode + \ifnum\@xarg<0 \reverseline \else \negfalse \@ydim=\z@\fi + \ifnum\@xarg=0 \@vline + \else\ifnum\@yarg=0 \@hline \else\@sline\fi\fi + \ifneg\kern-\@len\else\@save=\@ydim\fi} +\def\reverseline{\negtrue \kern-\@len \@xarg=-\@xarg + \@ydim=\@len \multiply\@ydim\@yarg \divide\@ydim\@xarg \@yarg=-\@yarg} + +\def\@hline{\vrule height.5\linethickness depth.5\linethickness width\@len} +\def\@vline{\kern-.5\linethickness\vrule width\linethickness + \ifnum\@yarg<0 height\z@ depth\else depth\z@ height\fi\@len + \kern-.5\linethickness} + +\def\@sline{\setbox\@picbox=\hbox{\linefont \count@=\@xarg \multiply\count@ 8 + \ifnum\@yarg>0 \advance\count@\@yarg \advance\count@-9 + \else \advance\count@-\@yarg \advance\count@ 55 \fi \char\count@}% + \ifnum\@yarg<0 \@picheight=-\ht\@picbox \advance\@ydim\@picheight + \else \@picheight=\ht\@picbox \fi + \@xdim=\wd\@picbox \@save=\@ydim + \loop\ifdim\@xdim<\@len \raise\@ydim\copy\@picbox + \advance\@xdim\wd\@picbox \advance\@ydim\@picheight \repeat + \advance\@xdim-\@len \kern-\@xdim + \multiply\@xdim\@yarg \divide\@xdim\@xarg \advance\@ydim-\@xdim + \raise\@ydim\box\@picbox} + +\def\vector(#1,#2)#3{\@line(#1,#2){#3}% + \ifnum\@xarg=0 \@vvector \else\ifnum\@yarg=0 \@hvector \else\@svector\fi\fi} +\def\@hvector{\ifneg\rlap{\linefont\char27}\else + \smash{\llap{\linefont\char45}}\fi} % we have to smash because of font bug +\def\@vvector{\ifnum\@yarg<0 \raise-\@len\rlap{\linefont\char63}% + \else\setbox\@picbox=\rlap{\linefont\char54}\advance\@len-\ht\@picbox + \raise\@len\box\@picbox\fi} + +\def\@svector{\setbox\@picbox=\hbox to\z@{\linefont + \ifnum\@yarg<0 \count@=55 \@yarg=-\@yarg \else\count@=-9 \fi + \ifneg\multiply\@xarg16 \multiply\@yarg2 + \else\hss % \llap + \ifnum\@xarg>2 \multiply\@xarg9 \multiply\@yarg2 \advance\count@29 + \else\ifnum\@yarg>2 \multiply\@xarg16 \multiply\@yarg9 \advance\count@-20 + \else\multiply\@xarg24 \multiply\@yarg3 \fi\fi\fi + \advance\count@\@xarg \advance\count@\@yarg \char\count@ + \ifneg\hss\fi}% \rlap + \raise\@save\box\@picbox} + +\def\disk#1{\@len=#1\unitlength \count@='160 \@diskcirc} +\def\circle#1{\@len=#1\unitlength \count@='140 \@diskcirc} +\def\@diskcirc{\setbox\@picbox=\hbox{\circlefont\char\count@}\@xdim=\wd\@picbox + \leavevmode \ifdim\@len>15.499\@xdim \@bigdc \else \@smalldc\fi} +\def\@bigdc{\ifnum\count@<'160 \@bigcirc + \else \@len=15\@xdim \@diskcirc\fi} +\def\@smalldc{{\advance\@len-.5\@xdim + \loop\ifdim\@xdim<\@len \advance\count@\@ne \advance\@xdim\wd\@picbox\repeat + \hbox{\circlefont\char\count@}}} +\def\@bigcirc{{\circlefont\count@=15 + \setbox\@picbox=\hbox{\char\count@}\@xdim=\wd\@picbox + \ifdim\@len>2.5\@xdim \@len=2.5\@xdim\fi + \advance\@len-.125\wd\@picbox + \loop\ifdim\@xdim<\@len \advance\count@ 4 \advance\@xdim.25\wd\@picbox\repeat + \@ydim=.5\@xdim \advance\@ydim.5\linethickness + \setbox\@picbox=\vbox{\hbox{\char\count@\advance\count@-3\char\count@}% + \nointerlineskip + \hbox{\advance\count@\m@ne\char\count@\advance\count@\m@ne\char\count@}}% + \kern-\@ydim\lower\@ydim\box\@picbox}} + +\newif\ifovaltl \newif\ifovaltr \newif\ifovalbl \newif\ifovalbr +\ovaltltrue \ovaltrtrue \ovalbltrue \ovalbrtrue +\def\oval(#1,#2){\@xdim=#1\unitlength \@ydim=#2\unitlength + {\circlefont \setbox\@picbox=\hbox{\char0} + \ifdim\@xdim<\wd\@picbox \@xdim=\wd\@picbox\fi + \ifdim\@ydim<\wd\@picbox \@ydim=\wd\@picbox\fi + \@save=\@xdim \ifdim\@ydim<\@save \@save=\@ydim \fi + \count@=39 + \loop \setbox\@picbox=\hbox{\char\count@}\ifdim\@save<\wd\@picbox + \advance\count@-4 \repeat + \setbox\strutbox=\hbox{\vrule height\ht\@picbox depth\dp\@picbox width\z@ + \kern\wd\@picbox}% + \@save=.5\wd\@picbox \advance\@save-.5\linethickness + \setbox0=\hbox to\@xdim{\ifovaltl\char\count@\else\strut\fi + \kern-\@save\leaders\hrule height\ifovaltl\linethickness\else\z@\fi\hfil + \leaders\hrule height\ifovaltr\linethickness\else\z@\fi\hfil\kern\@save + \ifovaltr\advance\count@-3\char\count@\else\strut\fi\kern-\wd\@picbox}% + \advance\count@\m@ne + \setbox2=\hbox to\@xdim{\ifovalbl\char\count@\else\strut\fi + \kern-\@save\leaders\hrule height\ifovalbl\linethickness\else\z@\fi\hfil + \leaders\hrule height\ifovalbr\linethickness\else\z@\fi\hfil\kern\@save + \ifovalbr\advance\count@\m@ne\char\count@\else\strut\fi\kern-\wd\@picbox}% + \@save=\@ydim \advance\@save-\wd\@picbox \divide\@save 2 + \setbox\@picbox=\vbox{\box0\nointerlineskip + \hbox to\@xdim{\vrule height\@save width\ifovaltl\linethickness\else\z@\fi + \hfil\ifovaltr\vrule width\linethickness\kern-\linethickness\fi}% + \nointerlineskip + \hbox to\@xdim{\vrule height\@save width\ifovalbl\linethickness\else\z@\fi + \hfil\ifovalbr\vrule width\linethickness\kern-\linethickness\fi}% + \nointerlineskip\box2}% + \@save=.5\@ydim \advance\@save.5\linethickness \leavevmode + \kern-.5\@xdim \kern-.5\linethickness \lower\@save\box\@picbox}} + +% ============================================================ + +%% More picture environment tags, output by fig2dev + + +%% The framebox tag was missing in DEK's code. Below is a copy from +%% the 1994/06/01 version of ltboxes.dtx. Actually, we need only the +%% \@framepicbox tag. + +% \DescribeMacro\framebox +% |\framebox| ... : like |\makebox|, except it puts a `frame' around +% the box. The frame is made of lines of thickness +% |\fboxrule|, separated by space |\fboxsep| from the +% text -- except for |\framebox(X,Y)| ... , where the +% thickness of the lines is as for the picture environment, +% and there is no separation added. + +\def\framebox(#1,#2){% + \@ifnextchar[{\@framebox(#1,#2)}{\@framebox(#1,#2)[]}% ] (Emacs) + } +\long\def\@framebox(#1,#2)[#3]#4{% + \frame{\makebox(#1,#2)[#3]{#4}}} + +\long\def\frame#1{% + \leavevmode + \hbox{% + \hskip-\linethickness + \vbox{% + \vskip-\linethickness + \hrule height\linethickness + \hbox{% + \vrule width\linethickness + #1% + \vrule width\linethickness}% + \hrule height\linethickness + \vskip -\linethickness}% + \hskip -\linethickness}} + + +%% The dashbox tag was also missing. We copy it from ltpictur.dtx, +%% 1994/05/22 v1.0e LaTeX Kernel (Picture Mode). The (missing) +%% indentation is from there, not introduced by me. Sorry, but this +%% must be emphasized. + +% \@wholewidth -> \linethickness +% \@makepicbox -> \makebox + +\xfig@newdimen\@dashdim +\xfig@newbox\@dashbox +\xfig@newcount\@dashcnt + +\def\@whilenoop#1{} +\def\@whilenum#1\do #2{\ifnum #1\relax #2\relax\@iwhilenum{#1\relax + #2\relax}\fi} +\def\@iwhilenum#1{\ifnum #1\let\@nextwhile\@iwhilenum + \else\let\@nextwhile\@whilenoop\fi\@nextwhile{#1}} + +\def\dashbox#1(#2,#3){\leavevmode\hbox to\z@{\baselineskip \z@skip +\lineskip \z@skip +\@dashdim #2\unitlength +\@dashcnt \@dashdim \advance\@dashcnt 200 +\@dashdim #1\unitlength\divide\@dashcnt \@dashdim +\ifodd\@dashcnt\@dashdim \z@ +\advance\@dashcnt \@ne \divide\@dashcnt \tw@ +\else \divide\@dashdim \tw@ \divide\@dashcnt \tw@ +\advance\@dashcnt \m@ne +\setbox\@dashbox \hbox{\vrule height \@halfwidth depth \@halfwidth +width \@dashdim}\put(0,0){\copy\@dashbox}% +\put(0,#3){\copy\@dashbox}% +\put(#2,0){\hskip-\@dashdim\copy\@dashbox}% +\put(#2,#3){\hskip-\@dashdim\box\@dashbox}% +\multiply\@dashdim \thr@@ +\fi +\setbox\@dashbox \hbox{\vrule height \@halfwidth depth \@halfwidth +width #1\unitlength\hskip #1\unitlength}\count@\z@ +\put(0,0){\hskip\@dashdim \@whilenum \count@ <\@dashcnt +\do{\copy\@dashbox\advance\count@ \@ne }}\count@\z@ +\put(0,#3){\hskip\@dashdim \@whilenum \count@ <\@dashcnt +\do{\copy\@dashbox\advance\count@ \@ne }}% +\@dashdim #3\unitlength +\@dashcnt \@dashdim \advance\@dashcnt 200 +\@dashdim #1\unitlength\divide\@dashcnt \@dashdim +\ifodd\@dashcnt \@dashdim \z@ +\advance\@dashcnt \@ne \divide\@dashcnt \tw@ +\else +\divide\@dashdim \tw@ \divide\@dashcnt \tw@ +\advance\@dashcnt \m@ne +\setbox\@dashbox\hbox{\hskip -\@halfwidth +\vrule width \linethickness +height \@dashdim}\put(0,0){\copy\@dashbox}% +\put(#2,0){\copy\@dashbox}% +\put(0,#3){\lower\@dashdim\copy\@dashbox}% +\put(#2,#3){\lower\@dashdim\copy\@dashbox}% +\multiply\@dashdim \thr@@ +\fi +\setbox\@dashbox\hbox{\vrule width \linethickness +height #1\unitlength}\count@\z@ +\put(0,0){\hskip -\@halfwidth \vbox{\@whilenum \count@ <\@dashcnt +\do{\vskip #1\unitlength\copy\@dashbox\advance\count@ \@ne }% +\vskip\@dashdim}}\count@\z@ +\put(#2,0){\hskip -\@halfwidth \vbox{\@whilenum \count@<\@dashcnt +\do{\vskip #1\unitlength\copy\@dashbox\advance\count@ \@ne }% +\vskip\@dashdim}}}\makebox(#2,#3)} + + +% ============================================================ + +%% Then we must supply the LaTeX tags that are inserted by fig2dev. + +% \setlength is the LaTeX PC way of setting a register. +\def\setlength#1#2{#1=#2\relax} + +% -------------------------------------------------- + +% \makeatletter is called to access private macros in the \SetFigFont +% definition. Since we never expand that definition, we could ignore +% the catcode change. But we should not define a macro with a nonsense +% name... +\ifx \makeatletter\undefined + \def\makeatletter{\catcode`\@=11 } % <-- Space +\fi + +% -------------------------------------------------- + +% The real hassle in that macro file is the font switch code. Once +% there was an interface, in transfig 2.1.7 & 2.1.8: A macro named +% \SetFigFont was used to select the type for texts. The macro +% definition itself is written by fig2dev, it is part of the figure +% code. +% +% Then transfig 3 was released and the interface disappeared. There's +% still the macro \SetFigFont and the macro definition is still +% written by fig2dev, but it may be defined with 3 arguments or with 5 +% arguments, one cannot determine what's used. The second form is used +% when NFSS is added to the defines of fig2dev and should be the +% default. (After all, LaTeX2e subsumed NFSS.) The first form must be +% used for LaTeX 2.09 w/OFSS. +% +% \SetFigFont is not defined if it is defined already when the figure +% code is read. OK, one might think, let's define a plain TeX version. +% (Actually, xfig.tex up to revision 1.3 did so.) But which interface +% shall we use for our definition? In a typical installation one has +% old documents with xfig pictures that were created with an old +% fig2dev, we must therefore support the three-arg-variant. Newly +% created figures will use the five-arg-variant, though. There is no +% obvious way to determine which variant will be used in the +% respective figure. + +% Please note that the information above -- and the one below about +% the actual possible interfaces of \SetFigFont -- was determined by +% looking at the output of example files and the code in setfigfont.c +% and texfonts.h, as not even the comments in these files got updated +% when the new \SetFigFont interface was introduced. (Sigh.) +% +% The changes were not even marked in the list of changes, I learned +% about them when folks from the Net sent me complaints about revision +% 1.1 of xfig.tex. (I hadn't installed xfig 3 at this time.) +% +% Do I really have to tell you what I think about these kinds of +% changes, in terms of software quality? (Don't ask me when I'm in a +% bad mood if you want polite answers.) + +% Well, here's the solution: As told above, I've analyzed the possible +% expansions of \SetFigFont. I'll define macros for every cseq that's +% in the expansion, one of these macros will bind \SetFigFont to +% \SetFigFontOFSS or \SetFigFontNFSS, respectively. Let's have a look: +% +% OFSS: evaluates \@setsize. This macro has supposed to have 4 +% arguments (type, baselineskip, font-setup, font-setup). Then the +% type specifier is evaluated by a \csname. Passing nothing there will +% effectively be a nop. +% +% NFSS: The \SetFigfont expansion uses more cseqs, but is more +% regular, too. We may supply empty expansions for everything that +% shall setup the font parameters: \reset@font, \fontsize (2 args), +% \fontfamily & \fontseries & \fontshape (each 1 arg). Then +% \selectfont is evaluated, here we bind the appropriate expansion of +% \SetFigFont. + +% Now we may setup the macro definitions, evaluate one pseudo +% \SetFigFont and \SetFigFont will be bound to the correct expansion. +% +% The first argument must be a number, as the OFSS \SetFigFont version +% assigns it to a count register. +\def\xfig@bindSetFigFont{% + % OFSS + \def\@setsize##1##2##3##4{\let\SetFigFont\SetFigFontOFSS}% + % NFSS + \let\reset@font\relax + \def\fontsize##1##2{}% + \def\fontfamily##1{}% + \def\fontseries##1{}% + \def\fontshape##1{}% + \def\selectfont{\let\SetFigFont\SetFigFontNFSS}% + % Now bind correct \SetFigFont by evaluating \SetFigFont. + \SetFigFont{0}{}{}{}{}% + } + +% -------------------------------------------------- + +% The interface of \SetFigFontOFSS: +% #1 is the size (w/o pt), +% #2 the baselineskip (w/o pt), +% #3 a plain TeX type specifier. +% If #3 is empty we assume that a default font should be taken. +% This default font can be named by \FigFontDefault. Note, that +% this parameter is not empty if you choose the font `Default' in +% xfig. You have to chang texfonts.h accordingly. I did it +% already for 2.1.7 and sent the diffs to the maintainer, but +% obviously he dumped them since they did not appear in 3.x. +% +% It's a pity, that we can't use the plain TeX type specifier. We +% demand an appropriate font scaled to the correct size. This is not +% the best solution, but nowadays most DVI drivers generate the fonts on +% the fly anyhow. + +\def\FigFontDefault{cmr10} +\def\FigFontType{\FigFontDefault\space} +\def\FigFontTyperm{cmr10} +\def\FigFontTypebf{cmbx10} +\def\FigFontTypeit{cmti10} +\def\FigFontTypesf{cmss10} +\def\FigFontTypett{cmtt10} +\def\SetFigFontOFSS#1#2#3{% + \font\FigFont \csname FigFontType#3\endcsname\space at #1pt + \FigFont + \baselineskip #2pt\relax + } + +% The interface of \SetFigFontNFSS: +% #1 is the size (w/o pt), +% #2 the baselineskip (w/o pt), +% #3 the NFSS font family (as a cseq), +% #4 the NFSS font series (as a cseq), and +% #5 the NFSS font shape (as a cseq). +% +% The current font state is reset before the arguments take effect. +% The call to \SetFigFont doesn't use the full possibilities of NFSS; +% only fixed combinations of arguments are supplied, as xfig itself +% knows only about a fixed set of fonts (default, roman, bold, italic, +% sans serif, and typewriter). + +% We map that interface back to the one of \SetFigFontOFSS. To do that +% we redefine the NFSS font specifiers locally to create plain TeX +% font specifiers. That's mostly easy, medium density (`md') series +% and upright (`up') shape are ignored in plain anyhow. The default is +% explicitely specified by \familydefault, we don't need to infer it. +% But there is one exception: bold is specified as `roman bold', ie, +% as `rmbf'. For that exception we just define a new FigFontType macro. + +\def\FigFontTypermbf{\FigFontTypebf} +\def\SetFigFontNFSS#1#2#3#4#5{% + \begingroup + \let\familydefault\empty + \def\rmdefault{rm}% + \def\sfdefault{sf}% + \def\ttdefault{tt}% + \let\mddefault\empty + \def\bfdefault{bf}% + \let\updefault\empty + \def\itdefault{it}% + \xdef\FigFontSpec{#3#4#5}% + \endgroup + \SetFigFontOFSS{#1}{#2}{\FigFontSpec}% + } + +% -------------------------------------------------- + +% Environments are enclosed in \begin{foo} ... \end{foo}. +% I don't check if the call is ok -- this file is specific for +% machine-generated code, that shall be correct by definition. +% +% We need to setup the correct \SetFigFont binding, as explained above. +% And let's evaluate a hook to enable document specific adaptions. + +\def\begin#1{% + \begingroup + \def\end##1{% + \csname end##1\endcsname + \endgroup + }% + \xfig@bindSetFigFont + \csname #1Hook\endcsname + \csname begin#1\endcsname + } + + +% ============================================================ + +\catcode`\@=\CatAtCode + +\endinput + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% $Log: xfig.tex,v $ +% Revision 1.4 1995/05/07 16:52:05 schrod +% Determine \SetFigFont variant automatically. \OldXfig is not +% looked at any more, \SetFigFontOld and \SetFigFontNew are renamed to +% \SetFigFontOFSS and \SetFigFontNFSS. +% +% Revision 1.3 1995/04/17 00:01:08 schrod +% Don't allocate registers anew if xfig.tex is read in the second +% time. +% +% Revision 1.2 1995/03/16 01:15:51 schrod +% Support output of transfig 3.1.1. +% +% Revision 1.1 1995/03/13 23:18:15 schrod +% Started to manage this package with CVS. Made minor code cleanup. +% + +% 94-06-10 js Initial revision. + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +Local Variables: +mode: plain-tex +TeX-master: t +TeX-brace-indent-level: 4 +page-delimiter: "^% ==*$" +End: |