On Wed, Mar 24, 2021 at 4:14 AM Kurt Pagani <nil...@gmail.com> wrote:
>
> I'm gatecrashing the party as I have unfortunately missed most of the latest
> conversation. I had a discussion with Ralf recently and we agree that the
> current X11 graphics ought to be enough for illustrative purposes (it also 
> works
> in jfricas and one can - in principle - include the graphics with ease into 
> the
> notebook as described in the **deprecated** doc draft:
>   https://nilqed.github.io/jfricas.pip/sphinx/_build/html/usage.html#draw
>
> Since "graphics" is not may favourite subject either, enthusiasm has to be
> fueled. Nevertheless I have been trying out various approaches with the
> objective of "publication quality figures" in mind. I'd summarize the current
> situation as follows:
>
> - X11 draw works fine (but some people find it ugly)
> - Bill's gnuDraw (works, requires gnuplot)
> - Martin's Scene Graph (works, sophisticated)
>   (https://www.euclideanspace.com/prog/scratchpad/mycode/graph/index.htm)
> - Sixel graphics (requires xterm or similar sixel capable terminal (few) +
>   non-X gnuplot. I like it.
>
> Since (AFAIK) there is no graphics library for CL, I see no alternative other
> than resorting to an external tool - nobody will write a lib from scratch ;)

there is no graphics in CL standard, but you certainly have plenty of
choices to pick
CL bindings to various graphics libraries
https://www.cliki.net/graphics%20library

> There a hundreds (maybe exaggerated) of such plotting libraries written in JS,
> Java, Python etc. and some few written in C/C++. To narrow down the search it
> should be at least BSD licensed, mature and provide pub quality:
>
> Asymptote is LGPL, so not first choice.
> https://en.wikipedia.org/wiki/Asymptote_(vector_graphics_language)
>
> PGF/Tikz is GPL or LaTeX PPL
> https://en.wikipedia.org/wiki/PGF/TikZ
> The top-level PGF and TikZ commands are invoked as TeX macros, but in contrast
> with PSTricks, the PGF/TikZ graphics themselves are described in a language 
> that
> resembles MetaPost. This would be my second choice.
>
> GLE - my favourite, BSD with a QT frontend lic. LGPL
> https://en.wikipedia.org/wiki/Graphics_Layout_Engine
>
> GLE satisfies all requirements.
> https://glx.sourceforge.io/
> https://glx.sourceforge.io/examples/index.html
>
> It's essentially a command line tool which can produce a lot of formats e.g.
> EPS, PS, PDF, JPEG, and PNG. The frontend (QGLE) is relatively new, yet very
> handy in that one can manipulate the sources on the fly with automated update 
> of
> what you see ...
>
> kfp@euler:~$ gle --help
> GLE version 4.2.5
> Usage: gle [options] filename.gle
> More information: gle -help
>
> Options:
>  -help           Shows help about command line options
>  -info           Outputs software version, build date, GLE_TOP, GLE_BIN, etc.
>  -verbosity      Sets the verbosity level of GLE console output
>  -device         Selects output device(s)
>  -cairo          Use cairo output device
>  -resolution     Sets the resolution for bitmap and PDF output
>  -fullpage       Selects full page output
>  -landscape      Selects full page landscape output
>  -output         Specifies the name of the output file
>  -nosave         Don't write output file to disk (dry-run)
>  -preview        Previews the output with QGLE
>  -version        Selects a GLE version to run
>  -compatibility  Selects a GLE compatibility mode
>  -calc           Runs GLE in "calculator" mode
>  -catcsv         Pretty print a CSV file to standard output
>  -tex            Indicates that the script includes LaTeX expressions
>  -inc            Creates an .inc file with LaTeX code
>  -texincprefix   Adds the given subdirectory to the path in the .inc file
>  -mkinittex      Creates "inittex.ini" from "init.tex"
>  -finddeps       Automatically finds dependencies
>  -nocolor        Forces grayscale output
>  -inverse        Render black as white for using on dark backgrounds
>  -transparent    Creates transparent output (with -d png)
>  -noctrl-d       Excludes CTRL-D from the PostScript output
>  -nomaxpath      Disables the upper-bound on the drawing path complexity
>  -noligatures    Disable the use of ligatures for 'fl' and 'fi'
>  -gsoptions      Specify additional options for GhostScript
>  -safemode       Disables reading/writing to the file system
>  -allowread      Allows reading from the given path
>  -allowwrite     Allows writing to the given path
>  -keep           Don't delete temporary files
>
> Show expert options: -help expert
> Give more help about a given option: -help option
>
> ---
>
> For the sake of completeness I mention that we (Ralf and me) tried Gnuplot 5+
> (http://www.gnuplot.info/) - the new HTML canvas) and matplotlib
> (https://matplotlib.org/). The results can be seen in the attached
> ipysh_and_mplot.html and in the **deprecated**
> https://nilqed.github.io/jfricas.pip/sphinx/_build/html/gnuplot.html. These
> seems to me, however, not a long-term perspective because dev/release cycles 
> of
> this packages are quite rapid, users have to know/learn special syntax and 
> last
> but not least it might depend on browser flavour and javascript libraries.
>
> So, coming to an end, my suggestion is to build upon GLE by utilizing the 
> Fricas
> domains Plot and Plot3D. The idea is to create a graphic object (a Record in
> SPAD) that may be manipulated (overwrite defaults) and displayed in QGLE,
> Texmacs, Jupyter or finalized in one of the graphic formats (ps, png etc.).
>
> Instead of tiresome explanations I have attached a demo_gle.tar.gz containing 
> a
> rudimentary prototype, albeit one has to install the prerequisites:
>
> sudo apt install gle-graphics
> sudo apt install ghostscript   # for TeX text/titles, otherwise optional
>
> # checks
> apt list -a gle-graphics
> gle-graphics/bionic,now 4.2.5-7 amd64 [installed]
>
> apt list -a ghostscript
> ghostscript/bionic 9.22~dfsg+1-0ubuntu1 amd64
>
> # test
>
> $ qgle
>   should open an window, and
>
> $  gle --version
> GLE version 4.2.5
> Usage: gle [options] filename.gle
> More information: gle -help
>
> To run the demo, extract "demo_gle.tar.gz" into /tmp or wherever, start 
> fricas and
>
> )read demo_qgle
>
> which compiles gle.spad and provides two functions, demo() and demo3d().
> Starting with
>
> demo()
>
> a first QGLE windows should open. The show will proceed when closing one 
> window
> after another (by upper right [X]), about five times. This should give an
> impression about the quality and the features of QGLE.
> The same can be done with
>
> demo3d()  -- only 2 windows ;)
>
> Another - more simple - approach could be to tune view2D.spad, view3D.spad and
> draw.spad allowing (users choice) different frontends for the "draw" command. 
> I
> did this 5y ago (https://github.com/nilqed/fricas_input/tree/master/spad/draw,
> see the patches and drawfe.spad), the result of test_draw.input can be seen
> here: https://kfp.bitbucket.io/drawfe/ (just an example as gnuplot sixel
> (gnuplot itself provides a huge amount of 'set terminal' options). I would not
> pursue this; too little gain for my taste compared to the builtin graphics.
>
> Now it's up to the community to set the agenda. If no one is interested, then 
> we
> should allow the topic to rest awhile. The inventive mind will hardly produce
> graphics form within fricas anyway?
>
>
> On 23.03.2021 21:23, Ralf Hemmecke wrote:
> >> How easy would it be to try KaTeX? https://katex.org/ Maybe someone
> >> has already tried this?
>
> It has actually improved since I tried some years ago (was not complete, but
> fast). Using it in Jupyter might certainly be an option. At the moment, 
> however,
> MathJax is a dependency of Jupyter (installed with the core nb) and has some
> advantages over KaTeX (AFAIK, might have changed) in that one can easily pick
> the LaTeX source code by right clicking on the displayed formula. Moreover, 
> I'm
> quite sure that the speed of MathJax will improve in the near future (it's not
> so bad at all).
>
> > I cannot say. That is the first time I look at Katex. If it really
> > renders faster that would be wonderful. But I wait until somebody throws
> > a working .ipynb -> .html conversion at me that replaces mathjax with
> > katex in the .html flle so that I would see how to actually use it.
> >> It seems to me that Kurt has already experimented with several options
> >> and that his opinion was that we should just pick one of these and run
> >> with it.
> >
> > Yes, but I am not sure whether his stuff was already ripe for production.
>
> You're right, far from production, however if there is a compass, I guess it
> will be doable in reasonable time, but as I am more the 'prototyper' (I dread
> the last mile) it won't go without your discipline and persistency :)
> >
> > Ralf
> >
>
> --
> You received this message because you are subscribed to the Google Groups 
> "FriCAS - computer algebra system" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to fricas-devel+unsubscr...@googlegroups.com.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/fricas-devel/a560d11e-3726-ba62-89eb-32e5c106236a%40gmail.com.

-- 
You received this message because you are subscribed to the Google Groups 
"FriCAS - computer algebra system" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to fricas-devel+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/fricas-devel/CAAWYfq3_t_rHjM92hfJP93uGsZXBtKQWMXAFqcOjAp_hF7N3Xw%40mail.gmail.com.

Reply via email to