[Announce] Groff mode for the Jed editor (https.//jedsoft.org/jed)

2024-08-12 Thread Morten Bo Johansen
Hi Groffers,

Realizing that this editor is probably not the most widely used
out there (it should be), this is merely a one-off posting to
announce a groff editing mode for it - just in case one or two
Jed users were indeed lurking the shadows! The mode sports the
following features:

- Syntax highligting. The scheme is similar to Emacs' nroff
  mode.

- Auto detection of the groff command needed to convert the
  document. This is similar to what the grog(1) program does.
  All six major macro packages, ms, me, mom, mm, man, mdoc
  and the preprocessors are supported.
  
- Previewing of the document with a chosen output device -
  which defaults to "pdf". The pdf conversion is then done with
  gropdf. The user definable pdf viewer is started as a
  subprocess of Jed which means that you may have the editor
  with the source file occupy e.g. the left half of the desktop
  and the pdf viewer the right half and then you may update the
  display in the pdf viewer with a key press () from within
  Jed with no need to restart the pdf viewer or even to save
  the source file in between. This, I think, is particularly
  handy if you're experimenting with some stuff or is in the
  process of learning groff. The groff conversion command will
  be auto-detected.

- Previewing support for output devices, "ps", "pdf", "ascii",
  "latin1", "utf8", "html", "xhtml"

- User definable default settings for output device,
  pdf-viewer, paper format, paper orientation, input encoding
  and also for the groff command to convert the document - the
  latter will override the auto detection mechanism in that
  case.

- Quick menu to change the above settings on the fly.

- Easy installation of *.otf and *.ttf fonts. The value of
  the environment variable GROFF_FONT_PATH is used as
  installation target. It will be set by the mode if it is
  not set in the environment.

- Batch installation of whole directories of otf/ttf fonts with
  no user interaction required. The groff font family and style
  (R|I|B|BI) are parsed from the font file name and the groff
  font name is constructed accordingly. To install the ~280
  fonts in my /usr/share/fonts/TTF/ directory took about 2
  minutes.

- Pop-up completion menu with all installed groff fonts to
  insert a font name.

- Pop-up completion menu with all defined groff color names to
  insert a color name whenever a function requires it.

- If mandoc(1) is installed, it will be used to convert manual
  page source files. Otherwise -man or -mdoc whichever is
  detected.
  
- Menu guided drawing of some objects (lines, circles, etc)
  with basic nroff/troff. 

- Menu guided drawing of some objects with gpic.

- Menu to toggle inline text attributes (font face, font style,
  color)

- Skip forwards or backwards to regular text parts of the
  document source.
  
- Menu with access to all of the above with  -> Mode

- With the "tabcomplete.sl" extension, also to be had from my
  repository, an extensive help system is available. It is
  described in its own README file and also in the README
  file for the groff editing mode.

To download it, it is easiest to clone my repository at Github

   git clone https://github.com/mortenivar/Jed-modes.git

It is only a few kilobytes.

If you happen to check it out, even with no intention of using
it, and anything comes to mind in the vein of suggestions or
corrections, I'll be glad to hear from you!

Thanks,
Morten




How subscripts/superscripts work with grohtml?

2024-08-12 Thread Daniel Brigante
Hi!
I've been trying to make grohtml produce  and  html tags from an
ms input without much success. From my current understanding, the grohtml
device driver should detect both a vertical position change and a font size
change from the device independent file (as it is described in the
start_superscript/start_subscript function in the post-html.cpp file), that
would cause the driver to emmit the  or  tag. When I try to force
this behaviour with \v and \s calls in my ms file, I get the expected
behaviour if I set the output device to ps, but when I set it to html I
only get a  tag generated by the device driver. I also noticed that
the "V" instructions, in the device independent file (using -Thtml and -Z
options with groff) get removed by (probably, I think, the html
preprocessor), only remaining the s instruction.

Best regards

Daniel