QFIG (Ver.1.1a : 3/24/1997) QFIG is a graphics program for LaTeX for use on IBM Compatible PCs (MS-DOS and DOS/V). This is a version of the NEC PC9801 qfig 0.9c for IBM/J-3100 PCs. The NEC version was written by MR T. Iwakuma (bear@hashi1.civil.tohoku.ac.jp) and modified for IBM/J-3100 PCs using Quick-Basic. This program is free software; you can redistribute it and/or modify it at will, however, if you make modifications/bug fixes to this program, please contact me first for redistribution to prevent many different versions from appearing all over at the same time and also to keep other users up to date with improvements to QFIG. I would also appreciate it if our names are not removed from this document. This is to enable people with questions, comments or suggestions to be able to contact us. 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. Whoever uses it does so at her/his own risk. We cannot take any responsibility on correct function or correct documentation. The source should be available through the same channel that you got QFIG from. Questions and Comments: If you have any comments, please inform me (preferably in english) at the email address below. Since I do not use LaTeX, this is probably the last version of Qfig I will be releasing. I will however try to correct any major bugs found in this version and release bug-fix updates. William Ofosu-Amaah e-mail: XI6W-OFSA@asahi-net.or.jp Special thanks to Dr Lazhar Ben-Brahim who tested Qfig 1.0 & 1.1. l would also like to say thanks to Simon Maxwell for the Logo design and also to Ken Tanaka, Takene and Phil Swan for their significant contributions to Qfig 1.0 and Bruce Dearden for kindly donating a Qfig Plain TeX PiCTeX shim. The QFIG program contains the following: QFIG.EXE - The .exe file for QFIG QFIG.DOC - This document QFIG_SET.DAT - A file for setting your own user-data Q-EEPIC.TEX - Used to compile figures outputted in eepic code Q-EEPICE.TEX - Used to compile figures outputted in eepic code for LaTeX2e. Please refer to the file for further details. Q-PICTEX.TEX - Used to compile figures outputted in pictex code QFIG3PLE - QFIG example file EEPICSUP.STY - Supplement style file to Eepic and LaTeX for adjust shading pattern QFIG4PIC.TEX - Interface for QFIG-generated PiCTeX code and PiCTeX to use with Plain TeX (Donated by Bruce Dearden). Please refer to the file for further details. All other required .STY files are available at CTAN (e.g. ftp.tex.ac.uk) or other mirror sites. 1. NOTES (i) This version will only run on EGA/VGA/SVGA PCs. There is no CGA version. (ii) Mouse use: This program supports use of a mouse although a mouse is not necessary. If a mouse is to be used, the mouse driver should be loaded before running qfig. (iii) Caps-Lock and Num-Lock: IMPORTANT NOTE: Caps-Lock and Num-Lock should be OFF for proper operation of QFIG control+keystroke commands. Caps-Lock and Num-Lock can, however, be used when entering text. 2. Starting QFIG QFIG startup options: QFIG /? /e /f /nc /s (i) /? option To get help on the options which could be used when QFIG is started up use the "/?" option i.e. C:> qfig /? (ii) /e option If an EGA monitor is being used, the "/e" option is essential for running QFIG in EGA mode. (iii) /f option To use your own settings from the file QFIG_SET.DAT. If QFIG is started without using the "/f" option, QFIG uses the default settings. IMPORTANT NOTE 1: QFIG_SET.DAT should be placed somewhere in the path. IMPORTANT NOTE 2: If you are on a network and have network drives in the path, make sure QFIG_SET.DAT is placed in a directory in the path BEFORE directories you don't have write access to. The way Qfig is written, it will not work if it encounters a read-only directory while searching the path for QFIG_SET.DAT. An alternative is to write a small bat file which sets the path and removes all the read-only directories from it. You could then write another bat file to restore the path after using Qfig. This is not a problem if you are not using the QFIG_SET.DAT file. (iv) /nc option This was part of the NEC version and is for those who are using dvi-drivers without TPIC specials. In this case, shadings are imitated by drawing many dotted lines, etc. This option can be ignored. (v) /s option The NEC 0.9c version of QFIG converts some special inputted text characters to other output in the .TEX files (e.g. if "\" was input, it becomes "\tt\symbol{'134}" in .TEX file output). In the IBM version this use of special characters has been made optional. To use these special characters, the "/s" option should be added when starting up QFIG. If this option is not used, the inputted characters are not converted. (i.e. if "\" is input it remains "\" in the .TEX file output). This option can be ignored. 3. Printing There is no built-in printing function in QFIG. To print, QFIG files have to be converted to .TEX files and printed using LaTeX (see 6. below). 4. Menus (a) The three rows at the bottom of the screen are the selection choices for QFIG. The "ESC" key is used as a toggle between the three rows with the active row indicated by the "@" sign to the left of the row. Function keys F1 - F10 are used for selecting specific choices in the rows. Selections can also be made with a mouse by moving the cursor to the desired selection and clicking one of the two mouse buttons. Before switching from one menu item to another the "DEL" key must be used to clear the current menu choice before another item menu can be selected (see table below for equivalent mouse action). The "DEL" key is also used to quit performing a function (e.g. clear a line which you decide not to draw while in the middle of drawing it.). The following table shows the mouse equivalent to keyboard functions used. Keyboard | Mouse --------------------------- Return Key | Right Button Space Key | Left Button DEL key | Simultaneous use of the | Left & Right Buttons Arrow keys | Mouse movement For simplicity, this document will use only the Keyboard keys in the following explanations since the mouse can be made to perform the same functions using the table above. (b) Menu Items These are explained for the function keys. Note that each function key has two or three selections connected. The one which is chosen depends on which menu row is active (see 4(a) above). For more information on using a specific function use the online help available in the program which is explained below (4(c)). f.1 Straight Lines / Move / Fill Pattern for Boxes f.2 Curved Lines / Copy/ Font Type f.3 Circle+Ellipse / Symmetric Copy / Font Size f.4 Arc /Rotate / Zoom f.5 Box / Edit/ Text Hide or Show (Text Toggle) f.6 Polygon / Displace or Cut / Redraw screen f.7 Closed Curve / Kill / Reset screen (this erases the current drawing) f.8 Arrow / Line Type f.9 Strings (i.e. text) / Thickness f.10 File Operations / Pitch (i.e. cursor movement step size when using the arrow keys. This does not affect the cursor movement when using the mouse. NOTE: The menu items which are green in color (Box Fill Pattern, Font type/Size, Line Type/Thickness, Cursor Pitch) can be changed during performing operations (e.g. changing line type/thickness while drawing lines) [Keyboard Shortcuts] Some of the menu items have keyboard shortcuts. These are the same as they were in Qfig ver 1.0 They are: QUIT [CTRL+q] - This is used to quit the program. QUIT is also available from the File (f.10) menu. As a precautionary measure, the user is prompted twice. Once to confirm quitting and then to check if the user wants the file saved. If yes is answered to this, the file is saved by default under the name $_qfig_$.qfg unless the user specifies another filename when prompted to do so. ZOOM [CTRL+w] - The zoom function cannot be used to zoom in. ** If a mouse is being used, zooming is possible by placing the cursor in the top left corner of the screen and clicking with either button. REDRAW [CTRL+r] - This is used to refresh the screen RESET [CTR+s] - This clears the present drawing. TEXT TOGGLE [CTRL+t] - This is used to toggle text on the screen between showing the complete text and showing only the first character of each text entry. Showing only the first character of each entry significantly improves the screen refreshing speed. (c) Other Functions There are other QFIG functions available which are not in the menus and can usually only be operated from the keyboard. They are usually triggered by the simultaneous use of the Control Key and another key. Mouse operation is also supported for some of these functions and will be explained where neccessary. Note that mouse operations can be duplicated using the keyboard, by using the arrow keys to move the cursor and the space bar and return key instead of the left and right mouse buttons respectively. CTRL+h (HELP) - This is used to obtain online help. The help contents vary depending on which menu item has been selected. This enables more help to be available for each function. For example to get help on using Lines, select "Lines" from the menu and then CTRL+h. PgUp/PgDn - This is used to scroll the drawing up or down. ** This can also be done using a mouse by clicking in the bottom left corner (PgDn) or clicking at the top of the screen (PgUp). CTRL+left/right arrows - This is used to shift the screen left or right. ** This can also be performed using the mouse by clicking at the rightmost or leftmost sides of the screen. 5. QFIG File Output The output of QFIG (i.e. QFIG form files) is as follows: 1st Line: % Output of qfig.bas 2nd Line: xmin%, xmax%, ymin%, ymax% (i.e. the dimensions of the figure). 3rd Line: The Line onward contain the data of the drawing. Each element drawn or written consists of a minimum of two lines. The first line consists of the type of object and its characteristics (this will be explained below) i.e. obj%(i%,j%), j%=0 to 6. The second line on consists of the x and y coordinates of the object i.e. xx(i%,j%), yy(i%,j%) j% = 0 to obj%(i%,1). [obj%] 0 1 2 3 4 5 6 Straight Line 1 node% node% node%-1 thick% ltype% fill% Straight Line 1 node% node% node% thick% ltype% 0 Polygon 2 node% node%-1 node%-1 thick% ltype% 0 Curved Line 3 node% node% node% thick% ltype% 0 Closed Curve 4 node% node%-1 node%-1 thick% ltype% 0 Circle 5 2 1 -1 thick% ltype% 0 Arc 6 4 2 -1 thick% ltype% 0 Ellipse 7 2 1 -1 thick% ltype% 0 Box 8 1 1 -1 thick% ltype% 0 Filled Box 9 1 1 -1 thick% ltype% fill% String (Text) 10 length 0 -1 12 stype% object# + 1 Arrows 11 2 -1 -1 thick% object# node% 6. TeX File Output There are three included output codes for LaTeX: a. PICTEX - This needs the following macro files - "prepictex.tex, pictex.tex, postpictex.tex" - which are supplied with LaTeX. This is supported by practically all DVI screen/print drivers. It is, however, slower. b. EEPIC - This needs the epic.sty and eepic.sty style files. With EEPIC pictures, the .TEX files are smaller and LaTeX runs a lot faster while requiring less memory than the other two. However DVI screen/print drivers which support EEPIC are necessary. c. EEPICEMU - Emulator for EEPIC. 7. String Output The string output (font size and type) is compatible with LaTeX 2.09 and uses "xiipt" and "xpt" commands to specify font size. It is now possible to easily change this by changing the output codes in the qfig_set.dat file. Please refer to this file for details on how and where to do this. For example, for one way to generate LaTeX2e output you can replace the following lines in the qfig_set.dat file: \xpt\rm ;10pt roman \xpt\bf ;10pt bold \xpt\it ;10pt italic \xpt\FonttenBI ;10pt bold italic \xiipt\rm ;12pt roman \xiipt\bf ;12pt bold \xiipt\it ;12pt italic \xiipt\FonttwlBI ;12pt bold italic with the following: \sf ;10pt roman \bf ;10pt bold \it ;10pt italic \bf\it ;10pt bold italic \large\sf ;12pt roman \large\bf ;12pt bold \large\it ;12pt italic \large\bf\it ;12pt bold italic 8. Loading/Saving Loading Qfig now displays only the files with a .qfg extension. You can still load in files which don't use this extension by typing in the full file name. Note that to load any file (including .qfg files) you have to include the extension. We recommend that you add the extension ".qfg" to all your old qfig data files. Saving Qfig is now written to save .qfg files as the default. It is possible to override the .qfg extension when saving by typing the extension type [e.g. "filename.ext" instead of "filename"]. Typing just "filename" will add a ".qfg" extension automatically. The saving process has been simplified. You can now save both the .qfg file and the tex file at the same time. 9. Box Text Limited support for centering text in a Box was added. This just calculates the center of the box to locate the correct position for the text. IMPORTANT NOTE: Changes made to the size of the box or its position will not keep the text at the center. It is however possible to keep the text centered if both the Box and centered text are moved together. 10. Area Kill/Edit In the Kill/Edit functions, it is now possible to select a rectangular area and kill/Edit all objects within the selected area. In the case of Edit, the string and line types must be selected before editing. The lines within the selected area are automatically changed to the selected thickness and type. Changing the string font/size within the selected area is however optional. Note that any object with a node in the selected area is considered as being selected. -------------------------------------------------------------------------- Change from Qfig 1.1 to Qfig 1.1a 1. Fixed bug in Boxtext ------------------------ Changes from Qfig 1.0 to Qfig 1.1 1. Added a third menu line for easier program use 2. Allowed string output to be user-configured 3. Box Text added (allows centering of text in a box) 4. Kill multiple items at the same time (Area Kill) 5. Edit multiple items at the same time (Area Edit) 6. Changes in thickness of a line now automatically changes the thickness of attached arrow. 7. NGRAPH support removed (including Ctrl+p) 8. Ctrl+g (GROUP/UNGROUP) removed (use functions like Area Kill/Edit instead) 9. Simplication of saving and loading 10. Answering to "y/n?" questions now possible with mouse (expect in a few places like when Quiting or using Reset. These respond only to keyboard "y" and "n" commands.) 11. A Bug in "Rotate" fixed 12. Bug in maximum allowed text length fixed 13. Added a Quit Program option to the File menu 14. Editing Improved (Ctrl+n no longer required) 15. Extended maximum capacity of QFIG from 301 objects by 52 nodes to 301 objects by 64 nodes. 16. Many other small improvements and bug fixes ------------------------ Changes from NEC qfig 0.9c+1 to IBM Compatible/J3100 qfig 1.0 1. Kanji not directly supported by qfig 1.0. 2. "qfig /?" gives help on start-up options for qfig 3. qfig without the "/s" option allows inputted text to be saved in .TEX files without any changes. 4. CTRL+t added as a Hide(all but first letter)/Show text toggle. 5. CTRL+n allows only the Line thickness and pattern to be modified in Lines, Curves, Polygons and Closed-curves. 6. Seperation of Menu Bar from Drawing Area 7. Added a QFIG Logo 8. Extended maximum capacity of QFIG from 256 objects by 32 nodes to 301 objects by 52 nodes. 9. Added an option enabling selection of desired object if more than one start from the same point. 10. Some bugs fixed