mailing-list for TeXmacs Users

Text archives Help


Re: [TeXmacs] Experiences using TeXmacs


Chronological Thread 
  • From: "Sam Liddicott" <address@hidden>
  • To: address@hidden
  • Subject: Re: [TeXmacs] Experiences using TeXmacs
  • Date: Mon, 16 May 2011 09:25:23 +0100
  • Envelope-to:
  • Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAMAAABg3Am1AAAAAXNSR0IArs4c6QAAADxQTFRF NTdQY2Z/i286eHFugnNXoJBwm5GCs5VeoqO0ua+fwLCQ4c2q19C81NDF4eLr/unQ/PTf/fXW+/rq /f/7XKo76wAAAAlwSFlzAAALEwAACxMBAJqcGAAAAi9JREFUSMetloGSqyAMRVsFNAQkxP//15cE 62rFdt/MZqbTVu/hBhLEx/qf8fgDIAN455wHyPk7wCIe9nA+fwGSH87hgD8AHPfRpy2GwdMtcBh+ mg4Ech9Ih+RNixJKDLEL0GF8VLkSojePHrDlryNijbFW8zBg8PUKbBOI6D1WCV5Rf2DzxCtgBlMs tRRVW5LyVW3ew1TfAZZ6RcQicpb4yZmaC74DJADK6BdATOrUAbJzsZie+K22ZnEBknNYysvhVH6u 1X8CqAe4DuANoPoOrAbsHXUARJ5knc5z4EyyTnHoAqj7xvkYIdk65AwhyEZKMusOIDV2QQQaCnDQ gBiDR3RdIEb5CBESt2wgQJI0Yx/Agphg1MgNsD+QkszM9wHVPx/PeQOW+fmcR9DF8+4CyCJhCuP8 fDzmBbLqs8JzMODqYNfDvKhoGYM2lDosy5jlRozccRAgrPM8iygQS3Mv87IugUgKlC7NZ6liuy4r uresVq5QuQAr09ZKEga8OkluyKXeQ6Bs3SrtqgC1pWLNqAfwDhBnB+sK8OrVL4D4h1B4zWPWhJhu gPUHKA5EwSMYUMsdQK+UKDhIOTSHeg+8HCoTOGtB/gwcl4mSdGybwXegPWhM/RHYKwchkckhUNMX 6j7ueQNScLbZZOPRxaADyO2UQCJpl7wbnE6gQ+ksWjpngxOwF1tF5ecP3R6KB+AQxPfHLncQ+nKw 06fhu68OTIfJ869eTtg22l+9zfwDK3mKl5BFHMYAAAAASUVORK5CYII=


Thanks for taking the time to post this.

I make some comments below based on my own experiences.

On 15/05/11 00:20, Jan.Lellmann wrote:
...I think that the upmost priority should be to get the existing code as stable and fast as possible (in particular for large documents), and to get the stylesheet language as solid and as well-documented as possible. Otherwise TeXmacs will never get a substantial user base.

I use TeXmacs for all my programming and technical writing but the sorts of difficulties you describe prevent me from recommending it to any of my colleagues.

...
1a) Deleted references: TeXmacs indefinitely remembers references it has once seen. If I create a <label>, reference it using <reference> and then delete the <label>, the reference is unchanged (even after Document > Update > All, multiple times), while it should display "?" instead. This can create very hard-to-spot errors in your document. As a workaround, I manually opened the .tm file and deleted everything in the <\references> and <\auxiliary> sections, which forces TeXmacs to regenerate everything, and searched for "?" in the PDF to check if there are any undefined reference. However, this should never happen in the first place. Moreover, there should be an indicator/warning if there are any undefined references or "cite"s in the document.

I am assured by Joris that <assign|save-aux|false> in the preamble could solve this problem by not saving the auxilliary section - however it doesn't work for me.

1d) Document > Magnification: This is a similarly dangerous item, which should at least issue a warning that it changes the FONT SIZE, i.e. the amount of text that fits on a page. This is very easy to confuse with View > Shrinking factor. If you are required to submit an 11pt document and accidentally mess with the "Magnification" you are in trouble, since TeXmacs will display 11pt font size, but it won't be 11pt in print.

Yes. It probably should be called font-magnification. Shrinking factor is more commonly called "zoom" on most other word processors.

1g) PDF Export: Embedded raster images (especially black & white) look ugly in the exported PDF. They seem to be compressed as very low-quality JPG, with clearly visible JPEG artifacts especially in purely black/purely white regions. The only workaround is to export as PS and convert to PDF manually using Ghostscript:

gswin32c -sPAPERSIZE=a4 -sDEVICE=pdfwrite -q -dBATCH -dNOPAUSE -dSAFER -dPDFX -dPDFSETTINGS=/prepress -dAutoFilterColorImages=false -dColorImageFilter=/FlateEncode -dAutoFilterGrayImages=false -dGrayImageFilter=/FlateEncode -sOutputFile=thesis.pdf -c save pop -f thesis.ps

There should be a menu item to change the "PS to PDF" command, and a better preset.

Or a set of presets.

1h) Document > Update: One of the things that annoy me most when using LaTeX is that it doesn't automatically
perform another run if it is required in order to get all the references right. However, LaTeX at least issues a warning. Using TeXmacs there is no warning, but the same annoying process of Document * click * Update * click * all * wait * Document * click * Update * click * etc. about 5 times in a row to be sure that all references are up-to-date. In my opinion, TeXmacs should automatically perform as many runs as required so that the labels do not change anymore.

A bug has been filed for this. If I am using papyrus mode it seems that I have to export a PS a few times in this update-all process so that texmacs canupdate it's idea of pagination.

1i) Breaking of inline math: Inline formulas that are wrapped around a line ending are just plain ugly. For this reason LaTeX does not wrap them by default, and issues an "overfull hbox" warning instead. TeXmacs wraps them quietly, which requires to manually check every single line if it contains a silently wrapped inline formula.

1k) Style files: I use a custom macro package for shortcuts, pretty formatting of algorithms, etc. All documents are in a Subversion repository, so it regularly happens (by an "svn update") that a style file changes without TeXmacs noticing (TeXmacs is not running during the "svn update"). I regularly found TeXmacs marking "undefined macros" in the main document, when they were cleary defined in the package file. It took me about 2 months to figure out that the styles need to be refreshed using "Tools > Update > Styles", and that restarting TeXmacs does NOT help. Why this doesn't happen automatically when TeXmacs is restarted is completely counter-intuitive. However, it may mess up your whole document, or make it use old macros, which both is very dangerous.

It can also be bad if you have a newer copy of a style in the directory for one document, but not other documents. If you edit the other documents using your .TeXmacs directory installed style, and then edit the document with your newer style it ignores the newer style.

2) Annoying things
------------------

2a) Stylesheet Language: I had to implement some extensions using the stylesheet language. If one goes one step beyond the standard functionality, TeXmacs crashes at the blink of an eye. I found myself spending about 20% of the time figuring out a solution for a problem, and then spending 80% of the time trying 4 other solutions until I find one that doesn't crash TeXmacs.

same here. I think most people on the mailing list do not write styles so there is not much help or advice available.

While LaTeX can also be incredibly tiresome to work with, it is solid as a rock. I think if TeXmacs aims at production quality and use in professional environment, these issues -- which mostly concern power-users -- desperately need to get fixed. Also, there needs to be a clear documentation of the evaluation order of the document tree. I spent several hours trying to figure out the exact semantics of the various "quote" tags, and eventually gave up.

It took me a few days spead over about half a year but I finally managed to understand most of what is going on. It's made harder by the difficulty in introspection. The tree macro is quite useful for this. With it I was able to find out that the <with> macro encloses the values within a <quote> tag. Of course I see why, it helps prevent alternative branches in <if> clauses from being evaluated - but without that knowledge making sensible us of quote and quasi etc is impossible.

2b) Images: I found that the only image type that can be reliably used in Texmcas is EPS written by Ghostscript. PNG tends to crash TeXmacs with a memory overflow when exporting to PS, I found myself finally converting all raster images to EPS in order to get it to work. EPS files written by other applications (e.g. Illustrator) often result in zero-byte .PS files, or .PS files that are truncated at the page that contains the EPS.

They can look like they are truncated, but running ps2ps on the final file can recover them.

The workaround is to run Ghostscript's "eps2eps" on all .EPS files, which creates .EPS files that TeXmacs doesn't crash on.

Since ghostscript 9 this is not a good idea. Bitmaps get converted into rect & fill commands (with ICC colour correction and all that) making compression very poor indeed and drawing very slow if you use a lot of bitmaps.

There is no real solution to sanitise your eps if you use ghostscript 9 - other than to use an eps convertor whose files do not need sanitising. Imagemagick's convert seems to work for me.

A future release of ghostscript 9 with have an eps2write target (instead of epswrite) which can be used to "sanitise" eps files.


2c) Menu Layout: Generally, I found that TeXmacs menus are laid out in the way TeXmacs thinks about the document, not in the way that is most intuitive for the user. For example, inserting a float is done via "Format > Page > Insertion > Floating Object". I think the "Format" menu is the last place that anyone would look, in particular when there is a top-level "Insert" menu.

That is weird. Tables (figure) are inserted from the insert menu.

Other examples: Tools > Update menu and Document > Update menu with similar functions but at different places, the same holds for Edit > Preferences > Keyboard and Edit > Preferences > Mathematics > Keyboard.

2e) Yes/No Dialog: Is there any reason for the cumbersome "yes/no" prompt? Having to backspace away the "no" and type "yes" is very VERY annoying. Even a simple "y"/"n" choice with one keypress would have been more usable. Similarly for the strange Qt "yes/no" dialog with the combobox. This should just use the default yes/no dialog that is provided by all OS and by Qt.

Aye

2k) Redraw errors: When I show the whole document (Part > Show all parts), I frequently get redraw errors, where text from the current page and text from a completely different section at the end of the document are draw on top of each other, resulting in garbage text. The workaround is to force a redraw e.g. using "page down" + "page up".

Yes. Even a "refresh" (^L) option would be something.
Another answer is to compile without qt, but then the vector editor crashes every time you use it.


2l) Zooming: Zooming in and out should be seamless e.g. using Ctrl+scroll wheel, as is standard in most applications, instead of the "View > Shrinking factor" workaround.

Strangely, the shrinking factor does not affect bitmaps inserted into documents - which is absolutely crazy. Shrinking factor therefore also affects the pagination and PS and PDF output. I am now forced to edit all my documents at the original shrinking factor and therefore monitor resolution (if I want them to fit on the screen) - or use papyrus which has it's own problems in not updating pagination when I do update-all.

2m) TeXmacs frequently loses its configuration and displays the "Welcome to your new TeXmacs system" screen.

That will happen each time you run a different version of texmacs to last time.

3) Performance
--------------

3a) Editing anything above about 15 pages in "Paper" mode is just too slow to be usable.

A non-qt build will be faster.

A part of the problem is that TeXmacs updates the whole document at every keypress. Since this cannot always be avoided, e.g. when re-wording some sentences in order to get a prettier line wrap, I ended up typing text fragments in an external editor, and copy & pasting them into TeXmacs as a block in order to avoid the update at every keypress. If views the whole document ("Parts > All") and accidentally types a complete word (with, say 10 characters), it is faster to kill TeXmacs, restart it and reload the document than having to wait for the updates.

Yep. I find it crazy madness. I sometimes go off web-browsing while I wait for it to catch up. Or if I won't be using the vector editor for that document I will rebuild in non-qt mode.


3b) Editing paragraphs that contain floats or captions of figures that contain images is incredibly slow, even in very small documents.

3c) The same holds for the "Papyrus" mode when some floats are present. The unsatisfying workaround is to insert only figures while working with the text, and converting them to floats just before creating the final PDF.

Some of the slowness can be down to your macros. There seems to be some optimisation to allow TeXmacs to stop re-formatting the document when it can compute that changes will no longer cascade down the document (apart from pagination). However this also seems to depend on whether or not you are running a qt build and also presumes that the macro name (and not arguments) are sufficient to compute this... so if a macro has ever rendered a block and then an earler block is changed that uses the macro, all later blocks will be re-formatted even if they haven't changed. I have a bug-request in so that drd-props can be set to signify which macro parameters should also be taken into account in this optimisation.

TeXmacs has seen some great improvements since I started using it but it still has some very sharp edges.

Sam



Archive powered by MHonArc 2.6.19.

Top of page