/contrib/groff/src/roff/troff/TODO
https://bitbucket.org/freebsd/freebsd-head/ · #! · 131 lines · 88 code · 43 blank · 0 comment · 0 complexity · 5b3b54a3f4b4a12c56ca7346889dfd51 MD5 · raw file
- A line prefix request to make e.g. French quotation possible:
- He said: >> blablablabla
- >> blablabla blabla bla
- >> blabla blabla bla bla
- >> bla bla bla blablabla
- >> blabla. <<
- 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. \='...'...'...' 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.
- 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).
- 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.
- 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 (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.
- 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.