AIUG

Application name: UsrGroup

Function

This is the Interleaf application:

file name Application Description
usrgroup.idu UsrGroup User Group Tools And Templates

Application "UsrGroup" Version 2.0 is a collection of Lisp scripts, templates, and tools contributed by the members of various user groups and from Interleaf's bulletin board LeafLine. It was compiled by the Arizona Interleaf Users Group (AIUG) and packaged as this application, which works in conjunction with the Interleaf Tool Manager. The application UsrGroup has been registered with Interleaf.

This application was developed for Interleaf 5, hence the references below to "ileaf5" and "System5". Many of the scripts are known to function with newer versions of Interleaf, but some may not and newer Interleaf versions may have better methods of performing the tasks represented here.

The application is not a real "product" and is not supported or guaranteed to operate as expected and without side effects.

This compilation is not product of the AIUG or Interleaf, Inc. Use at your own risk.

Install

This application is made available in Interleaf Desktop Utility (IDU) format to make it more portable to the various machines on which Interleaf may be found. To reduce download time, the version in the online repository has been "zipped". You will need to "unzip" it and possibly rename it "usrgroup.idu" before proceeding with the install instructions.

To use the application, transfer the corresponding ".idu" file this media to your Interleaf "apps" directory. (On UNIX systems, this often is located at /interleaf/ileaf5/apps or /opt/ileaf/ileaf5/apps, on MS DOS or Windows systems, it probably is in a place such as c:\Ileaf5\Apps or c:\Ileaf7.ileaf\Apps.) Then use the Interleaf Desktop Utility "idu" to expand the file into its corresponding directory (the name prior to the "." in the idu file name).

On UNIX systems, this usually is done by executing something such as:

/interleaf/ileaf5/bin/idu -xf usrgroup.idu
to expand the application.

On DOS systems, you would execute something such as:

c:\ileaf5\bin\idu.exe -xf usrgroup.idu

Or, on the newer versions of Interleaf, you can use the command Tools>IDU>Expand from the menu bar with the IDU file selected.

After expansion, the ".idu" file may be deleted, everything needed is contained in the new directory, "usrgroup" in this case.

Complete installation using the Interleaf Tool Manager, which you should find in the menus as something like Tools>Admin>ToolManager.


User Group Tools And Templates

CAUTION:
These are not guaranteed to be error free and may be platform specific. Some may yield undesirable results. Use at your own risk. (NOT A PRODUCT OF THE AIUG OR INTERLEAF, INC.)

Submenu:

Create:

You may make your own copies of the items below. Access these items via the menu: Create>Tools>UsrGroup>nameshown

Documents and Clip Art

Graphics>GoSuns>SunsBw
Unofficial Phoenix Suns logo.
Graphics>GoSuns>SunsColr
Unofficial Phoenix Suns logo, in color.
Graphics>NAU_Logo
Unofficial Northern Arizona University logo.
Graphics>UofAriz
Unofficial University of Arizona logo.
Graphics>desert
Line drawings of various cactus and desert items.
Templates>AIUGform
Application form to join the Arizona Interleaf Users Group.
Templates>IM_memo
A memo template intended for use with the Information Mapping, Inc. documentation methods. It also provides ideas for other applications, such as the subject repeated on the second and subsequent pages.

Other Miscelaneous Files

Other>cleanup.sh
An executable UNIX(TM) System 5 Bourne shell script to remove backup files from Interleaf directories. Create a copy and execute it from your UNIX command line - not from within Interleaf.

Lisp Scripts

After making your own copy of one of these Lisp scripts, you may select it, then execute it via the Interleaf menu: Custom>Load. Alternatively, you may place it in the Profile drawer of your System5 cabinet, so it will take effect each time you reenter Interleaf. (This is appropriate for Lisp scripts that define new key strokes or set up certain Interleaf options, but not for other instances such as those under Lisp>ThisApp>Selection.)

Key binding abbreviations:

It is recommended that you open each new Lisp script and read any comments and cautions it may contain before proceeding to use it. Remember, you may access these items via the menu: Create>Tools>UsrGroup>nameshown

Some scripts contain comments describing changes you may make. If you want to customize a script, please use caution, particularly if you are not a programmer. Erroneous Lisp scripts may damage your documents or cause other problems to Interleaf operation.

Lisp>README
A simple text file containing more hints and cautions relating to the Lisp scripts.
Lisp>ThisApp> or Lisp>VMSnoselect and Lisp>VMSselect
This submenu attempts to provide links into the Selection and No Selection Lisp cabinets described below. Through it, you may make your own copies of these scripts so you may examine them more carefully or place them into your Profile drawer for repetitive activation. Attempts have been made to provide appropriate links for UNIX, DOS, and VMS(TM) systems. Since link operations are platform and site-specific, you may find that these will not function properly. In that event, have your site administrator help you re-establish the proper links for your system.

Note that due to the restriction of 8 directories deep for VMS, these links have been implemented slightly differently for those systems. Customize them if you wish to.

Lisp>cmpn-grp
Create a set of components with a single keystroke. You may edit the component names below to customize this for your own documents, then save it under a name of your choice. Note that the masters of the components named must already exist in the document or you will get a Lisp error. Bound to Esc-g. Load this or place it in your Profile drawer.
Lisp>doubleclick
Allow double click on icon with select button to open. (This script may not operate properly.)
Lisp>no-copyright
Remove the copyright notice at the start of session. This script is only useful if it is placed in your Profile drawer.
Lisp>timesave
Keys found to be a BIG time saver when working on Lisp with the Developer's Toolkit (DTK) on a DEC system. Notes: Only works if user has DTK licensed and loaded. Future enhancement might be to check for DTK first. Place into profile drawer of System 5 Custom cabinet.

Select:

The items below require an object to be selected first. Access them via the menu: Custom>Tools>UsrGroup>nameshown

Filter>emac
Uses lisp to solve a problem that can probably be solved in non-lisp ways, but it seems to work. Files from emacs, when opened in Interleaf 5, have the last word on a line joined with the first word on the next line. This mini-filter inserts a space after every word-wrapped line and two line feeds to indicate paragraph end. It turns filename "foo" into "foo.doc".
Filter>textfilt
This enriched Text Filter strips masters and graphics but leaves markup, so components are still identified, and autonumbers, font changes, etc. aren't lost. The resulting Interleaf ASCII document has the right component names, but you have to reformat them since they'll all have the default format. Useful for transferring documents to a word processor and back, or for simple e-mailing.
Misc>frame_micro_size
Reduce the size of text in a micro document and increase the room for the text to live. This will help with font change problems in frames caused by conversion from TPS 4 to Interleaf 5, but you may still need to "tweak" the document by hand.
SaveAs>ASCII
Save all selected files as ASCII files.
SaveAs>Binary
Save all selected files as binary (fast) files.
ShowPath
Show pathname of the selected document.

No Select:

The items below require that no object be selected. Access them via the menu: Custom>Tools>UsrGroup>nameshown

Caution: Some scripts redefine the same keys used by others.

Admin>License_Stat
Show Interleaf INL (network) license status. This assumes INL license information is in the standard location and is accessible via a UNIX-style pathname.
Admin>Machine_Info
Determine machine-specific information for the user to report to Admins. It does NOT make any changes to your system, it only interrogates it. The resulting "stayup" may be saved or printed.
Admin>eval_lisp
Evaluates selected text in an Interleaf document. i.e., tries to run the selected code. If no text is selected, it tries to evaluate the entire component. Bound to ^Xv.
Admin>unopenable_document
Allow open of document at 5.3.1 which gets SIGSEGV error due to a straddle component located at the bottom of a page break. Once open, put a non-straddle component below the problem one and set its Page properties for "Allow Break Before" to "No". Assumes Interleaf 5.3.1.
Closes>close_all
Close an object and all its ancestors. Bound to Esc-b.
Closes>close_and_open
Close an object and open its parent. Used with open_and_close, object opens don't leave a trail of windows. Bound to ^B.
Closes>open_and_close
Open the object under the mouse cursor and close its parent so object opens but doesn't leave a trail of windows. Bound to ^A.
Closes>push_pop
"Remember" a container directory before you close it so you can open it with a single keystroke later. Remember is bound to ^U and restore to ^P.
Component>AlterBar
Stickup to change the width of component bar.
Component>CreateNext
Creates a component named in the present component's "nextcmpn" attribute. If there is no such attribute, it creates another of this component (from the master, not from the current copy of this component). Bound to Esc-j.
Component>CutCmpn
Cut the component the cursor is in, while in text area. Bound to Esc-c.
Component>ShowName
Show component's name in the document message bar. Useful if component bar is narrow. Bound to ^Xn.
Component>keycmpn
Change a component from the keyboard. Cycles through the other components in the document, starting from the current insertion point, and changes the current component into the previous ones. (Or, can look from insertion point towards the end of the doc.) Bound to ^Xx (looking up the doc from current component) and ^XX (looking down the doc).
Component>keycmpn2
Change a component into another component from the keyboard. Type ^Qa and it will cycle through the component masters that begin with "A" or "a" (if any), etc.

Can be combined with keypcmpn.lsp which moves forward (or backward) through a document, changing components into previous (or next) component type.

Component>outline
A "figure-it-outliner." Shows various levels of document structure (outline view). Collapse and expand based on dumb "heuristics" that attempt to figure out document structure based on formatting cues such as font size. It always hides tables. Binds ^X- to shrink doc, ^X+ to expand, ^X= to unhide all.

Consider this just a prototype. Be especially careful if cutting components while document is in the reduced state. You may want to try to improve the "defun" is-lesser-than to improve heuristics.

Component>selectpg
Select all the components on a page. Especially usefull in multi-column documents. (Comments explain how this can be modified to make it cut all components on a page.) Bound to ^Xp.
Fonts>DownCase
Convert selected text to lower case (DownCase it). Bound to ^Xl.
Fonts>alterfnt
Prop sheet allows you to change base font of a document. E.g., change all fonts to Swiss while preserving individual bold faces, etc. Works only on font properties of components and inlines, so if you've change a font by selecting text, those changes are preserved.

CAN HAVE DESTRUCTIVE RESULTS:
i.e, you can't restore fonts to original state automatically. (There's room for improvement in this script. E.g., it could do some more checking of input, especially the font size type-in field, etc.)

Fonts>word-tog
Esc-F5 toggles current word to and from italics and leaves text caret at end of word, so that you can toggle the next word. Esc-F4 does the same for bold, Esc-F6 for underline.

Due to how :word-endings is interpreted, may handle punctuation in unanticipated ways.

Games>blakjack
Plays blackjack in the status bar of a document window or (on some platforms) of the Interleaf desktop window (so your boss won't catch you).

This takes over function keys F1-F3 and does not return them!

IndexTkn>LowCNdx
Create an index token containing the selected text in lower case. Only works in Interleaf 5.3! Bound to ^Xi.
IndexTkn>SamCNdx
Create an index token containing the selected text preserved in its original case. Only works in Interleaf 5.3! Bound to ^XI.
Misc>CtrlExpr
Turn control expression (effectivity) on or off in a document. Bound to ^XO and ^Xo.
Misc>PopUps>big_popups
Make popup font size larger than normal.

CAUTION: The arrows on submenus may disappear. Your submenus will still be available, but you will not see an arrow indicating that its there!! USE WITH CAUTION!!

Misc>PopUps>normal_popups
Change popup font size back to normal.
Misc>SkipPage
Move ahead (or back) two pages, not one. Bound to ^X-Next and ^X-Prior (if your keyboard has these).
Misc>WrdCount>SimpleWC
When executed from the desktop, provides a "stick#up" showing the number of words in the open document. Lisp error if no document is open. Frames and inlines are skipped.
Misc>WrdCount>WrdCntMenu
Adds a Wordcount command to your text popup menus. When you execute it, you get a (rough) count of the words from the current caret to the end of the document. An empty component counts as a word. Frames are skipped.
Misc>abbrev
Expands abbreviations to save typing. When you hit the special key (Esc-s) Interleaf gets the current word (looks back to first space to the left), looks it up on an abbreviation list, and replaces the word with the longer version. If doesn't find an abbreviation, it prompts for one. It builds a file called "abbrevs.lsp" in your Profile drawer.

BE SURE this abrevs.lsp comes AFTER abbrev.lsp!

Misc>centerpg
Center the page (the way "Current" does on the Page Box pulldown). So, if you've scrolled your document so that the top of the page isn't at the top of the window, center-page puts the top of the page at the top of the window. Bound to ^L
Misc>dt-notes
Attaches note to desktop icon. Builds text list of documents and notes. Select a document and press ^N to bring up the Note interface.

This alters the close method for ALL documents! Among other things, your close stickup will look different.

Misc>fractions
This little fractionizer lisp script is NOT of professional quality but it seems to work most of the time. It takes selected text and, if there is a slash in it, turns it into a fraction, superscripting the first number, replacing the backslash with the fraction virgule (char 0x120), and subscripting the second number. It does not check to see if there are any non-char tokens (like a frame) in the selection.

The Lisp code contains instructions describing how to change the script to define a key (^Xf) to do this if you wish. If so, you would want to create a copy of this script and place it in your Profile drawer. Otherwise, select the desired text, move your cursor to the desktop area, and run this script from the Custom>Tools menu.

Misc>frame_micro_size
Reduce the size of text in a micro doc and increase the room for the text to live. With the document open, move your cursor to the desktop area and execute this script via the Custom menu. This will help with font change problems in frames caused by conversion from TPS 4 to Interleaf 5, but you may still need to "tweak" the document by hand.
Misc>ins_date
Inserts date into every component or inline named "date". Bound to ^Xd.

This erases all current data in those components or inlines!

Misc>kbd-over
A "hack" to provide overstrike mode. Try it, use it if you like it, toss it or modify it if you don't. Only implements overstrike mode for "standard" keys. It could be extended to other keys. More comments are in the Lisp code. Bound to ^X^T in kbd-doc-map. Also binds all keys that are bound to kbd-self-insert in kbd-global-map, thereby shadowing the global binding in documents.
Misc>kbd-typo
This changes three key bindings to try to automatically encourage better typography. The double quote key (") will create a left quote (") when typed at the start of a word and a normal right quote at other locations. The dash or minus sign key (-) will create a true hyphen (-), but a second hit on that key without moving the cursor will convert the character to a minus sign (-). A third hit converts to a long dash (-), then it re-cycles to the hyphen again. Finally, if you type two consecutive spaces, a warning is displayed in the document status bar.
Misc>pin-text
Select text in a document and post it in a stayup so you can refer to it as you work. Stayup's title gives the document name and page number. Bound to ^XN.
Misc>timer
Set a timer for some number of minutes, then post your desired message in a stickup.
Opens>ClipArt
Open Arrow folder of standard clip art library through a keystroke while you are in a frame. (You may want to make your own copy and change which container gets opened.) Open your own library at another keystroke. Part of this script is platform dependant.
Opens>DblClick
Allow double click on icon with select button to open.

If you're running a layered applications that sends mid:select messages to desktop objects, it may inadvertently start opening those objects if this file has been loaded. See comments in this file.

Opens>OpenHelp
Open file called "myhelp" in your System5 cabinet - "myhelp" should probably be a host file.
Screen>VGA
Sets some props useful for working on a VGA screen. Bound to ^Xv.
Screen>iconify
^Xi shrinks a document window so only its name box (+ a little more) is visible, and stacks all such shrunken documents in a diagonal line from the upper left. ^XI expands a window to "normal" size. This is especially useful on small screens, e.g., VGA. ^Xz sizes window to page size. ^Xi while on the desktop gives a popup list of shrunken documents.

When running Interleaf 5 in a windowing system (not fullscreen), you may sometimes size a window so that it is partially cut off by the desktop window. If this happens, just manually drag the window back. (If reduced too much and saved, document crashes on open, due to an ileaf bug that has been reported.)

ShowPath
Display pathname of the open container.
Tables>Calc1Col
Calculate one user specified column of a table. Implmentation Notes:
  1. This script ASSUMES the first and last rows of the table are special and will always have Show = Yes.
  2. The first row is ignored and the total of the column replaces the last row, destroying whatever was there.
  3. The attributes for the row probably really should be defined and checked to a greater extent.
Tables>tab-sort & Tables>tablesort
These sort a table based on the contents of a user-specified column. They don't work on cells converted into frames - ignores their contents. Does peculiar things to vertically-straddled rows - sometimes works, sometimes duplicates the combined rows.

Limitations

To the best of our knowledge, all items are in the public domain (unless otherwise specified within the individual files.)

Disclaimer

*** THIS LISP IS NOT SUPPORTED - USE AT YOUR OWN RISK ***
These are unsupported and may yield undesirable results. Use at your own risk. (Not a product of the AIUG or Interleaf, Inc.)

Trademarks mentioned on this page are belong to their respective companies.

Obtaining the Application

This script is available on the AIUG Web site at:


(Updated 09 FEB 2001)
This Web site is provided for the AIUG by Artronic Development.
Contact webmaster@arde.com with questions or problems. Copyright 1996-2001 Arizona Interleaf Users Group