From: Richard M K. <kr...@pr...> - 2006-12-22 05:14:07
|
Christophe Rhodes <cs...@ca...> writes: > Richard M Kreuter <kr...@pr...> writes: > >> A TeXnical nit, for printable formats: class names in class precedence >> lists were wrapped in the Texinfo directive @w{} to prevent line >> breaking. This makes TeX produce the ugly black rectangles, and the >> long lines are likely to get cropped on printers. The third attachment >> below removes the @w{}, allowing line breaks in symbol names (these >> seem to occur after hyphens in the symbol names, but I don't know if >> that's guaranteed). > > I didn't merge this, not because I'm particularly fond of the black > rectangles, but because like you I'm not sure where the linebreaks > will be if the @w{} is removed. Here's the skinny: page 454 of the TeXbook (16th printing, alas): | (Since TeX inserts empty discretionaries after explicit hyphens, | these rules imply that already-hyphenated compound words will not be | further hyphenated by the algorithm.) However, I'd forgotten about unhyphenated symbols that TeX can otherwise hyphenate. The first attachment below demonstrates a plain TeX macro that does what Texinfo's @w does (wrap the argument in an \hbox) only when the argument contains no hyphens. Enclosing a symbol with this macro ensures that breaking occur only after hyphens in already-hyphenated symbols, and never in unhyphenated symbols, no matter how narrow the page. The second attachment contains the same macro, plus a Texinfo binding for it (@lw, for "Lisp word"), which can be used in the SBCL documentation. The third attachment is a patch to docstrings.lisp to make the class precedence list elements be wrapped in the @lw macro of the second attachment. Regards, RmK |