User:Viktor Grigorov/j90xrefsheet

From J Wiki
Jump to navigation Jump to search

After the annoyance of having neither NuVoc, nor old Vocabulary fit on one screen without either having local copies with edited html and css, or additional stylesheets applied, (though the same can be said of all the J books that exist in html form), I decided to write my own with all that I deem important, based on the reference card for J602 by Henry Rich and Ric Sherlock, various jwiki articles, and information from the J books.

Initially, I wanted to be as tacit as possible, but the meaning of something is sometimes more prominently and or promptly understood through demonstration. However, just as dictionaries provide meanings of words through definitions made of other words whose definitions may therein be found, and examples of use, I though it might be best to give both side-by-side. This article proved useful therefor.

3 months of work later, with help from Henry, feedback from the JProgramming mailing list, building upon Henry and Ric's work, I'm happy to release that work as under the title blocks, since it's about absolute positioning of tables, i.e., blocks, which is how I'll refer to them henceforth.

On the wiki will be for now be hosted the two for-print versions, meticulously, manually placed to fit snuggly, and serve as the new reference sheet/card for J904:

Although I haven't tried it, applying a root 2 multiplicative factor to all lengths used, one should be able to scale up to US ledger/ANSI B and A3, respectively.


The repository contains:

  • two identical .tex files differing only in blocks' coordinates (for the differing page sizes), with all the preamble and settings; some previous versions of rows or tables commented out, not too-too much has been deleted; there are 4 color schemes, with the 'official' release being in a colorblind-friendly one; most of everything is commented, descriptions of what each length is for, etc.; changing any one thing can and will knock everything out of balance;
  • a .zsh script using Perl (given zsh's PCRE module, it can and will be written to reduce dependencies), tectonic (can be easily reworked to use the binaries proved by the various TeX distributions), and a Python library for rectangle packing; it is relatively bothersome to try to get page side ratio close to that of most screens: I've had nearly square ones, along with everything from 1:4 to 4:1. There are other rectangle packers, specifically another Python library for packing into presized bins, which would, for 2 equally sized ones, produce adequate results for minimal effort with the sole possible negative sorting tables by size first rather than by import; or for 1 of proper side ratios, a screen-fitting refsheet; but I couldn't easily get any of 'em working, so this remains a TODO; until then, this will have to do;
  • a file with the TeX package dependencies;
  • a changelog;

People use and like J for different reasons, value different aspects of it, New, improved, and remixed blocks created and shared by the community is what I'd like, which is the reason I chose the AGPL for the code.