Linuxdoc Linux Questions
Click here to ask our community of linux experts!
Custom Search
Next Previous Contents

11. Appendix

11.1 Old Problem of Escape Sequences in Text Output

Prior to version 0.9.21-0.8 there was a bug for the case of text output. For sgml2txt, the option --pass="-P-cbou" was needed to get pure text output since otherwise if you used the -f option, you got text output which put emphasis on words and letters by the use of escape sequences and overstriking. An example of a bullet made by overstriking is +^Ho which on a printer would type +, then backspace (^H), and then type o over the existing +. This doesn't seem to work on display terminals (they can't overstrike). Note that even if you have the most recent version, you'll still get this unwanted output if you fail to use the -f option.

In case you are interested, the --pass passes the -P-cbou option to the groff program (used by sgml2txt) and the -P option of groff passes the -cbou options to grotty (a post-processor for groff) forcing grotty to generate just plain text output. See the grotty man page. In brief: -c avoids escape sequences but allows overstrikes but -bou prohibits overstrikes when the -c option is used. The result is no overstrikes and no escape sequences in the output. -b prohibits overstrikes to make a character look bold; -u prevents overstrikes for underlining; and -o prohibits other kinds of overstrikes like the bullet example above. An alternate way to eliminate overstrikes is to use the -f option with sgml2txt but you still have to pass the -c option to grotty to eliminate escape sequences unless you have the newer version.

What a mess it was! The default should probably be plain text so that all of this passing of options wouldn't be needed. I've finally got them to fix this so after about mid-2007 you can use just the -f option instead of --pass="-P-cbou". If you get these escape sequences and overstrikes in your output file but use the Linux "cat" command to display the text, it looks great. But using pagers or editors on the text output file usually results in the escape characters being eaten so you see a bunch of unwanted characters in your text that were supposed to be part of escape sequences. In some cases, pagers can display certain overstrikes OK but editors (like vim) don't. So eliminating all overstrikes permits you to use any editor or pager to read it.


Next Previous Contents