140 lines
4.9 KiB
Plaintext
140 lines
4.9 KiB
Plaintext
|
Give a more helpful error message when the indent is set to a value
|
||
|
greater than the line-length.
|
||
|
|
||
|
Tracing. This is a pain to implement because requests are responsible
|
||
|
for reading their own arguments.
|
||
|
|
||
|
Possibly implement -s option (stop every N pages). This functionality
|
||
|
would be more appropriate in a postprocessor.
|
||
|
|
||
|
Line breaking should be smarter. In particular, it should be possible
|
||
|
to shrink spaces. Also avoid having a line that's been shrunk a lot
|
||
|
next to a line that's been stretched a lot. The difficulty is to
|
||
|
design a mechanism that allows the user complete control over the
|
||
|
decision of where to break the line.
|
||
|
|
||
|
Provide a mechanism to control the shape of the rag in non-justified
|
||
|
text.
|
||
|
|
||
|
Add a discretionary break escape sequence. \B'...'...'...' like TeX.
|
||
|
|
||
|
Think about kerning between characters and spaces. (Need to implement
|
||
|
get_breakpoints and split methods for kern_pair_node class.)
|
||
|
|
||
|
In troff, if .L > 1 when a diversion is reread in no-fill mode, then
|
||
|
extra line-spacing is added on. Groff at the moment treats line-spacing
|
||
|
like vertical spacing and doesn't do this.
|
||
|
|
||
|
Suppose \(ch comes from a special font S, and that the current font is
|
||
|
R. Suppose that R contains a hyphen character and that S does not.
|
||
|
Suppose that the current font is R. Suppose that \(ch is in a word
|
||
|
and has a non-zero hyphen-type. Then we ought to be able to hyphenate,
|
||
|
but we won't be able to because we will look for the hyphen only in
|
||
|
font S and not in font R.
|
||
|
|
||
|
Variant of tm which doesn't write a newline.
|
||
|
|
||
|
Perhaps the current input level should be accessible in a number register.
|
||
|
|
||
|
Should \w deal with a newline like \X?
|
||
|
|
||
|
Have another look at uses of token::delimiter. Perhaps we need to
|
||
|
distinguish the case where we want to see if a token could start a
|
||
|
number, from the case where we want to see if it could occur somewhere
|
||
|
in a number expression.
|
||
|
|
||
|
Provide a facility like copy thru in pic.
|
||
|
|
||
|
Fancier implementation of font families which doesn't group fonts into
|
||
|
families purely on the basis of their names.
|
||
|
|
||
|
In the DESC file make the number of fonts optional if they are all on
|
||
|
one line.
|
||
|
|
||
|
Number register to give the diversion level.
|
||
|
|
||
|
Time various alternative implementations of scale (both in font.c and
|
||
|
number.c). On a sparc it's faster to always do it in floating point.
|
||
|
|
||
|
Devise a more compact representation for the hyphenation patterns trie.
|
||
|
|
||
|
Have a per-environment parameter to increase letter-spacing.
|
||
|
|
||
|
Number register to return character height.
|
||
|
|
||
|
Number register to return character slant.
|
||
|
|
||
|
Request to set character height.
|
||
|
|
||
|
Request to set character slant.
|
||
|
|
||
|
Provide some way to upcase or downcase strings.
|
||
|
|
||
|
Support non-uniformly scalable fonts. Perhaps associate a suffix with
|
||
|
a particular range of sizes. eg
|
||
|
sizesuffix .display 14-512
|
||
|
Then is you ask for R at pointsize 16, groff will first look for
|
||
|
R.display and then R. Probably necessary to be able to specify a
|
||
|
separate unitwidth for each sizesuffix (eg. for X).
|
||
|
|
||
|
Request to copy an environment into the current environment.
|
||
|
|
||
|
Variant of `.it' for which a line interrupted with \c counts as one
|
||
|
input line.
|
||
|
|
||
|
Make it possible to suppress hyphenation on a word-by-word basis.
|
||
|
(Perhaps store hyphenation flags in tfont.)
|
||
|
|
||
|
Possibly allow multiple simultaneous input line traps.
|
||
|
|
||
|
Unpaddable, breakable space escape sequence.
|
||
|
|
||
|
Support hanging punctuation.
|
||
|
|
||
|
In justified text, if the last line of a paragraph is only a little
|
||
|
bit short it might be desirable to justify the line. Allow the user
|
||
|
control over this.
|
||
|
|
||
|
Have a blank line macro like the end macro. When a blank line macro
|
||
|
has been set, then a blank line causes the blank line macro to be
|
||
|
called rather than doing the equivalent of .sp.
|
||
|
|
||
|
The pm request could print where the macro was defined. Also could
|
||
|
optionally print the contents of a macro.
|
||
|
|
||
|
Provide some way to round numbers to multiples of the current
|
||
|
horizontal or vertical resolution.
|
||
|
|
||
|
Better string-processing support (substring, length, search).
|
||
|
|
||
|
Generalized ligatures.
|
||
|
|
||
|
Provide some way for a macro to tell whether it was called with `'' or
|
||
|
`.'. This would be useful for implementing a tracing macro package.
|
||
|
|
||
|
Request to remove an environment. (Maintain a count of the references
|
||
|
to the environment from the environment table, environment dictionary
|
||
|
or environment stack.)
|
||
|
|
||
|
Perhaps in the nr request a leading `-' should only be recognized as a
|
||
|
decrement when it's at the same input level as the request.
|
||
|
|
||
|
Don't ever change a charinfo. Create new variants instead and chain
|
||
|
them together.
|
||
|
|
||
|
Make it possible to tr characters onto \~.
|
||
|
|
||
|
Unix troff appears to read the first character of a request name in
|
||
|
copy mode. Should we do the same?
|
||
|
|
||
|
Number register giving name of end macro.
|
||
|
|
||
|
More thorough range checking.
|
||
|
|
||
|
Provide syntax for octal and hexadecimal numeric constants. Perhaps
|
||
|
o#100 and x#7f as per Scheme. Or perhaps PostScript 16#7f. Ambiguity
|
||
|
between whether `c' is treated as digit or scaling indicator.
|
||
|
|
||
|
Request to return from a macro (ie ignore the rest of the current
|
||
|
input level).
|