diff --git a/README.md b/README.md index f809538..51774eb 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Run-REDUCE-FX -## A JavaFX GUI to run any CLI version of the REDUCE Computer Algebra System +## A JavaFX GUI to run CLI versions of the REDUCE Computer Algebra System ### Francis Wright, November 2020 @@ -19,6 +19,9 @@ Guide](https://fjwright.github.io/Run-REDUCE-FX/UserGuide.html) (which is also included in Run-REDUCE-FX and easily accessible via the Help menu). +See also the [release notes for all +releases](https://github.com/fjwright/Run-REDUCE-FX/releases). + Run-REDUCE-FX should run on any platform that supports JavaFX 11 (or later), but I can only test it on Microsoft Windows and Linux. (Whilst Java is portable, filesystem structures, installation @@ -37,209 +40,3 @@ Run-REDUCE-FX currently uses a bundled copy of [KaTeX](https://katex.org/) to render LaTeX output by code based on the REDUCE *tmprint* package when the *Typeset Maths* option is selected. - -## Release Notes - -### Version 1.1 - -* Avoid warning messages and hanging Help menu items on Ubuntu, but - suppress display of PDF files via the Help menu on non-Windows - platforms since it's probably not currently very helpful! -* Add instructions for installing and running using Java 11 on Linux - and improve the appearance of the User Guide. -* Use CSS to set the REDUCE font, size, weight and colour, and use the - same font and size for input as well as output. -* Validate direct input to the FontSizeDialog via the editor. -* Validate generic root directories in REDUCEConfigDialog. Rebuild - the Run REDUCE submenus on saving REDUCEConfigDialog. Improve error - messages. - -### Version 1.2 - -* Update the build environment to Java 11 and JavaFX 11, which are now - also required to run Run-REDUCE-FX. -* Provide batch files to run Run-REDUCE-FX more easily. -* Re-instate display of PDF files via the Help menu on non-Windows - platforms. -* Fix truncated text in the About dialogue. - -### Version 1.3 - -* Provide templates for *df*, *int* and *mat* expressions and *for* - statements. -* Add a hyperlinked Contents section to the User Guide. - -### Version 1.4 - -* Provide templates for multiple integrals, finite sums and products, - double- and single-sided limits, and solve. -* Provide a Functions menu offering dialogues that facilitate access - to key elementary functions, Gamma, Beta and related functions, - integral functions, Airy, Bessel and related functions, Struve, - Lommel, Kummer, Whittaker and spherical harmonic functions, and - classical orthogonal polynomials. Special function names link to - the online NIST Digital Library of Mathematical Functions. -* Appropriate templates include a symbolic/numeric option and access - to relevant REDUCE switches and packages. -* Provide a pop-up keyboard (currently only on template and function - dialogues) for symbolic constants, Greek letters, elementary - functions, trigonometric functions (using radians or degrees) and - hyperbolic functions. **Still need to arrange that the pop-up - keyboard loads the trigd package as appropriate.** -* The function dialogues and pop-up keyboard together offer all the - functions listed in section 7.2 Mathematical Functions of the REDUCE - Manual plus degree versions of all trigonometric functions. - -### Version 1.5 - -* Add REDUCE Manual hyperlinks to all template and function dialogues. -* Add Help menu items that open the REDUCE Web Site and SourceForge - Project Site in the default browser. - -### Version 1.6 - -* Use WebView to display REDUCE output, and update instructions and - batch files for running Run-REDUCE-FX accordingly. -* Set the default Session Log filename to `session.log`. -* Turning bold prompts on and off now works retrospectively. -* Turning I/O colouring on and off now works retrospectively (as far - as possible). - -### Version 1.7 - -* Add experimental Typeset I/O option, currently hidden, to the View - menu to use fmprint and KaTeX, which does not yet work reliably. -* Update the documentation to try to make it easier to access the - latest jar. -* Redesign the REDUCE Configuration dialogue: - - Replace Packages Root Directory with REDUCE Packages Directory. - - Split Documentation Root Dir into REDUCE Manual Directory and - REDUCE Primers Directory. - - **The above two changes are not backwards compatible!** - - Add Initial I/O Directory, which defaults to the user's home - directory, as before. - - Add a ContextMenu to implement key choices for Initial I/O - Directory: Home Directory; Current Directory; Another Directory. - -### Version 1.8 - -* The Typeset Maths View menu option enables typeset-style display of - algebraic-mode output. But beware that this is currently - experimental and has a number of limitations. -* Rename Initial I/O Directory to REDUCE Working Directory in the - REDUCE Configuration dialogue. This now sets the initial directory - for both REDUCE and the file selectors and defaults to the user's - home directory. -* View options apply to each REDUCE panel independently, initialised - from the last selected (and saved) values, and the redfront View - option takes effect after the next prompt. -* A toggle button on each REDUCE panel hides the input editor. -* When split-pane view is enabled after startup, the new panel is - active and a green dot at the top right shows which panel is - selected. - -### Version 1.9 - -* Detect question prompts correctly. -* Add a *Print Session Log...* item to the File menu, which prints the - entire content of the I/O Display pane as it appears on screen. -* Fix the *Save Session Log...* code to output the TeX markup used to - display typeset maths. -* Move *Load Packages...* to the *REDUCE* menu. -* Support the pop-up keyboard on the input editor and add a label - "Control+Click for the Pop-Up Keyboard" with a tooltip to the top of - the input editor and the bottom of each template dialogue. -* Handle more of the non-standard TeX markup generated by fmprint. - -### Version 2.0 - -* Fix the display of big delimiters in typeset maths. -* Always insert parentheses when calling a function using the pop-up - keyboard, rewrite ln to log and remove the space after sqrt. - -### Version 2.1 - -* Remember the directory used in the filechooser. -* Always decode non-ASCII characters from the pop-up keyboard and from - templates to their correct REDUCE or TeX names. -* Replace loading the fmprint package with inputting and compiling the - new source file "rrprint.red" contained in the JAR file, which is - based on "tmprint.red". -* Typeset maths improvements: - * Apply the fix by Eberhard Shruefer so that order commands work. - * Output identifiers in mathit instead of mathrm style. - * Correct spacing of := and leading + and - signs. - * Display a trailing multiplication sign but otherwise ignore - multiplications. (This may be too drastic.) - * Support all trigonometric and hyperbolic functions and their - inverses, and logb and log10. - * Display the gamma function, but not the identifier gamma, using a - capital Gamma. - * Support the polygamma, iGamma, iBeta, dilog, Pochhammer and - integral functions. - * Support Airy and Hankel functions. - * Support Struve, Lommel, Kummer, Whittaker and spherical harmonic - functions, and the classical orthogonal polynomials. - -### Version 2.2 - -* Remove the middle mouse button binding for the pop-up keyboard, - since it clashes with the X Window primary paste gesture (although - this is not supported). -* Scroll more reliably to the bottom of the REDUCE I/O display window. -* Add a Kill REDUCE item to the bottom of the REDUCE menu. Display an - information alert when REDUCE is killed and an error message if this - may have failed. Handle failure of REDUCE to start better and check - that REDUCE is alive before trying to send it input. -* Improve alerts relating to printing. -* Display the version number on the title bar. -* Add new sections on Editing, Typeset Maths Display and Printing on - Linux to the User Guide. -* Typeset maths improvements: - * Restore compatibility with tmprint so that `excalc.tst` runs. - * Use a narrow space to indicate multiplication (except at the end of - a line) because with no space x*y is indistinguishable from xy. - * Output strings as text rather than maths and identifiers using - mathit. Support the dfprint switch. - * Treat trailing digits in an identifier (optionally preceded by \_) - as a subscript. Treat the final _ in an identifier as introducing - a subscript if it is followed by (the name of) a single character. - But as a special case, display body_bar as \bar{body} for a - single-character body or \overline{body} for a multi-character - body. - * Ensure that operator identifiers are subscripted like non-operator - identifiers. Note that line breaking is thoroughly broken! - * Display repart and impart as \Re and \Im. - * Display matrices more readably by using \displaystyle for each - element and increasing the row spacing to 1.5em. -* REDUCE Configuration Dialogue improvements: - * Use \ as directory separator in the Windows default configuration. - * Detect unreadable directories and files in more fields. - * Substantial revision to fix some subtle misbehaviour. - -### Version 2.3 - -* Make *Generic information for all REDUCE commands* fields all - optional, resetting to defaults where appropriate. Correct the - behaviour to allow the REDUCE Root Directory text field to be empty, - and to use the Command Root Directory if it is set. -* Add a *Restart REDUCE* item to the REDUCE menu to do a full clean - restart of the last-run REDUCE command. -* Set a minimum size for the main window. -* Allow space at the bottom of the main display so that the horizontal - scroll bar does not obscure the prompt. -* Improve automatic scrolling to the bottom of the display pane. -* Highlight warnings and errors with an appropriate background colour. -* Typeset maths improvements: - * Improve line breaking. - * Allow special function symbols to depend on a function's arity and - use this for the gamma function to avoid perturbing "excalc.tst". - * Process `_bar` in an identifier as an over-bar even if it is - followed by digits or `_k`. - * Improve display with `on list` and display matrix assignments as - assignments, which now both appear correct for "alg.tst". - * Display `abs(x)` as |x|. - * Remove all superfluous space around commas in algebraic lists and - flat printed matrix rows. - -### Updates since last release diff --git a/docs/UserGuide.html b/docs/UserGuide.html index fa9671b..ffa31f8 100644 --- a/docs/UserGuide.html +++ b/docs/UserGuide.html @@ -624,55 +624,73 @@
Run-REDUCE-FX remembers the options you select using the View menu and uses them the next time you start - Run-REDUCE-FX. The first four options (above the separator) apply - to each REDUCE panel independently and Run-REDUCE-FX uses the last - set values initially when you create a new REDUCE panel. - The View menu provides the following items:
+ Run-REDUCE-FX. Run-REDUCE-FX uses the last set values initially + when you create a new REDUCE panel. The View menu + provides the following items:This displays a dialogue that allows you to change the font size used in the Input/Output Display and Input - Editor panes. + Editor panes. It applies to each REDUCE panel independently. +
+This displays a dialogue that allows you to change the colours + used in the Input/Output Display pane. Currently, it + applies to the REDUCE panel selected when you click on + the Save button (but this is not consistent with other + options and may change in a future release). +
+The colours that you can select are the foreground text colours
+ for algebraic and symbolic mode input and output, and the
+ background colours for warnings (preceded by ***
)
+ and errors (preceded by *****
). The labels on the
+ left model the colours. Clicking on a button on the right drops
+ down a simple colour grid from which you can pick a colour, and
+ clicking on Custom Color... at the bottom of the grid
+ opens a more advanced dialogue, which includes the option to
+ change the opacity. This is primarily relevant to the
+ background colours, which are 25% opaque by default.
+
If you click on the Cancel button then the colours + used do not change. If you click on the Save button + then the currently selected colours are used for the selected + REDUCE panel and saved as preferences. They will be used by + default the next time you start Run-REDUCE-FX. If you click on + the Reset Defaults button then the built-in default + colours are reinstated in the dialogue but not used or saved + unless you click on the Save button.
Selecting this item causes Run-REDUCE-FX to embolden the - display of all input prompts. + display of all input prompts. It applies to each REDUCE panel independently.
This sub-menu allows you to select an I/O colouring - option: None, Modal - or Redfront. Modal colouring depends on - REDUCE's current input mode: algebraic-mode prompts and input are - red, algebraic-mode output is blue, symbolic-mode prompts and - input are brown, symbolic-mode output is - purple. Redfront colouring is intended to provide a full - emulation of the standard REDUCE redfront facility and it - loads the redfront package (silently), which outputs - additional markup that is interpreted by Run-REDUCE-FX in the same - way that it is normally interpreted by the redfront - executable running in a suitable terminal (emulator). - With Redfront colouring, all prompts and interactive - input are red, algebraic-mode output is blue, and echoed file - input and symbolic-mode output are not coloured. -
-When I/O colouring is enabled, Run-REDUCE-FX highlights - warnings and errors with appropriate background colours. +
Selecting this item causes Run-REDUCE-FX to colour the text in + the Input/Output Display pane. The colouring depends on + REDUCE's current input mode: by default, algebraic-mode prompts + and input are red, algebraic-mode output is blue, symbolic-mode + prompts and input are green, symbolic-mode output is brown. + Echoed file input is not coloured. By default, Run-REDUCE-FX + highlights warnings and errors with quarter-opaque orange and red + background colours.
Note that turning I/O colouring on does not fully take effect - until the next input prompt. Turning I/O colouring off (by - selecting None) takes effect immediately and turning it - back on mid-session turns any previous I/O colouring back on, but - any I/O produced while I/O colouring was turned off will not be - coloured. (This is because the required markup is only generated - when I/O colouring is turned on to conserve resources.) + until the next input prompt. Turning I/O colouring off takes + effect immediately and turning it back on mid-session turns any + previous I/O colouring back on, but any I/O produced while I/O + colouring was turned off will not be coloured. (This is because + the required markup is only generated when I/O colouring is turned + on to conserve resources.) Output display will be slightly faster + when I/O colouring if turned off.
Selecting this item causes Run-REDUCE-FX to display algebraic-mode mathematical output more-or-less as it would be - typeset and centred horizontally. WARNINGS: - Typeset Maths is currently experimental. It interacts badly - with redfront I/O colouring, so don't try to use the two - together: one will effectively cancel the other. The display - may be incorrect in some cases, e.g. with unusual switch + typeset, and centred horizontally. It applies to each REDUCE + panel independently. Output display will be significantly + faster when Typeset Maths is turned + off. WARNINGS: Typeset Maths is currently + experimental and line breaking is somewhat arbitrary. The + display may be incorrect in some cases, e.g. with unusual switch settings such as on list. If any TeX markup appears (coloured red) in the output then please let me know! Save Session Log... outputs typeset maths using TeX markup. @@ -967,7 +985,9 @@
This pops up brief information about Run-REDUCE-FX.
+This pops up brief information about Run-REDUCE-FX, including + the version number and month of the release. The version number + is also shown in the application title bar.
Run-REDUCE-FX remembers the options you select using the View menu and uses them the next time you start - Run-REDUCE-FX. The first four options (above the separator) apply - to each REDUCE panel independently and Run-REDUCE-FX uses the last - set values initially when you create a new REDUCE panel. - The View menu provides the following items:
+ Run-REDUCE-FX. Run-REDUCE-FX uses the last set values initially + when you create a new REDUCE panel. The View menu + provides the following items:This displays a dialogue that allows you to change the font size used in the Input/Output Display and Input - Editor panes. + Editor panes. It applies to each REDUCE panel independently. +
+This displays a dialogue that allows you to change the colours + used in the Input/Output Display pane. Currently, it + applies to the REDUCE panel selected when you click on + the Save button (but this is not consistent with other + options and may change in a future release). +
+The colours that you can select are the foreground text colours
+ for algebraic and symbolic mode input and output, and the
+ background colours for warnings (preceded by ***
)
+ and errors (preceded by *****
). The labels on the
+ left model the colours. Clicking on a button on the right drops
+ down a simple colour grid from which you can pick a colour, and
+ clicking on Custom Color... at the bottom of the grid
+ opens a more advanced dialogue, which includes the option to
+ change the opacity. This is primarily relevant to the
+ background colours, which are 25% opaque by default.
+
If you click on the Cancel button then the colours + used do not change. If you click on the Save button + then the currently selected colours are used for the selected + REDUCE panel and saved as preferences. They will be used by + default the next time you start Run-REDUCE-FX. If you click on + the Reset Defaults button then the built-in default + colours are reinstated in the dialogue but not used or saved + unless you click on the Save button.
Selecting this item causes Run-REDUCE-FX to embolden the - display of all input prompts. + display of all input prompts. It applies to each REDUCE panel independently.
This sub-menu allows you to select an I/O colouring - option: None, Modal - or Redfront. Modal colouring depends on - REDUCE's current input mode: algebraic-mode prompts and input are - red, algebraic-mode output is blue, symbolic-mode prompts and - input are brown, symbolic-mode output is - purple. Redfront colouring is intended to provide a full - emulation of the standard REDUCE redfront facility and it - loads the redfront package (silently), which outputs - additional markup that is interpreted by Run-REDUCE-FX in the same - way that it is normally interpreted by the redfront - executable running in a suitable terminal (emulator). - With Redfront colouring, all prompts and interactive - input are red, algebraic-mode output is blue, and echoed file - input and symbolic-mode output are not coloured. -
-When I/O colouring is enabled, Run-REDUCE-FX highlights - warnings and errors with appropriate background colours. +
Selecting this item causes Run-REDUCE-FX to colour the text in + the Input/Output Display pane. The colouring depends on + REDUCE's current input mode: by default, algebraic-mode prompts + and input are red, algebraic-mode output is blue, symbolic-mode + prompts and input are green, symbolic-mode output is brown. + Echoed file input is not coloured. By default, Run-REDUCE-FX + highlights warnings and errors with quarter-opaque orange and red + background colours.
Note that turning I/O colouring on does not fully take effect - until the next input prompt. Turning I/O colouring off (by - selecting None) takes effect immediately and turning it - back on mid-session turns any previous I/O colouring back on, but - any I/O produced while I/O colouring was turned off will not be - coloured. (This is because the required markup is only generated - when I/O colouring is turned on to conserve resources.) + until the next input prompt. Turning I/O colouring off takes + effect immediately and turning it back on mid-session turns any + previous I/O colouring back on, but any I/O produced while I/O + colouring was turned off will not be coloured. (This is because + the required markup is only generated when I/O colouring is turned + on to conserve resources.) Output display will be slightly faster + when I/O colouring if turned off.
Selecting this item causes Run-REDUCE-FX to display algebraic-mode mathematical output more-or-less as it would be - typeset and centred horizontally. WARNINGS: - Typeset Maths is currently experimental. It interacts badly - with redfront I/O colouring, so don't try to use the two - together: one will effectively cancel the other. The display - may be incorrect in some cases, e.g. with unusual switch + typeset, and centred horizontally. It applies to each REDUCE + panel independently. Output display will be significantly + faster when Typeset Maths is turned + off. WARNINGS: Typeset Maths is currently + experimental and line breaking is somewhat arbitrary. The + display may be incorrect in some cases, e.g. with unusual switch settings such as on list. If any TeX markup appears (coloured red) in the output then please let me know! Save Session Log... outputs typeset maths using TeX markup. @@ -967,7 +985,9 @@
This pops up brief information about Run-REDUCE-FX.
+This pops up brief information about Run-REDUCE-FX, including + the version number and month of the release. The version number + is also shown in the application title bar.