From f6bc0fd9fcfb2e7b43ecfbce0031a626d9118240 Mon Sep 17 00:00:00 2001 From: Kristaps Dzonsons Date: Sat, 23 Jul 2011 09:47:25 +0000 Subject: [PATCH] The circumflex is also a special space character. Note this and clean up some documentation in eqn.7. Also add some version notes, although I'm not ready for a release yet. --- eqn.7 | 54 +++++++++++++++++++++++++++++------------------------- eqn.c | 5 +++-- index.sgml | 10 +++++++++- 3 files changed, 41 insertions(+), 28 deletions(-) diff --git a/eqn.7 b/eqn.7 index 595d040d..21d7cc19 100644 --- a/eqn.7 +++ b/eqn.7 @@ -1,4 +1,4 @@ -.\" $Id: eqn.7,v 1.18 2011/07/22 14:59:02 kristaps Exp $ +.\" $Id: eqn.7,v 1.19 2011/07/23 09:47:25 kristaps Exp $ .\" .\" Copyright (c) 2011 Kristaps Dzonsons .\" @@ -14,7 +14,7 @@ .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" -.Dd $Mdocdate: July 22 2011 $ +.Dd $Mdocdate: July 23 2011 $ .Dt EQN 7 .Os .Sh NAME @@ -64,35 +64,35 @@ case-sensitive literals in the input: .Bd -literal -offset indent eqn : box | eqn box box : text - | "{" eqn "}" - | "define" text text - | "gfont" text - | "gsize" text - | "set" text text - | "undef" text + | \*q{\*q eqn \*q}\*q + | \*qdefine\*q text text + | \*qgfont\*q text + | \*qgsize\*q text + | \*qset\*q text text + | \*qundef\*q text | box pos box | box mark - | pile "{" list "}" + | pile \*q{\*q list \*q}\*q | font box - | "size" text box - | "left" text eqn ["right" text] -text : TEXT -pile : "lpile" | "cpile" | "rpile" -pos : "over" | "sup" | "sub" | "to" | "from" -mark : "dot" | "dotdot" | "hat" | "tilde" | "vec" - | "dyad" | "bar" | "under" -font : "roman" | "italic" | "bold" -list : eqn - | list "above" eqn + | \*qsize\*q text box + | \*qleft\*q text eqn [\*qright\*q text] +text : [^space\e\*q]+ | \e\*q.*\e\*q +pile : \*qlpile\*q | \*qcpile\*q | \*qrpile\*q +pos : \*qover\*q | \*qsup\*q | \*qsub\*q | \*qto\*q | \*qfrom\*q +mark : \*qdot\*q | \*qdotdot\*q | \*qhat\*q | \*qtilde\*q | \*qvec\*q + | \*qdyad\*q | \*qbar\*q | \*qunder\*q +font : \*qroman\*q | \*qitalic\*q | \*\*qbold\*q +list : eqn + | list \*qabove\*q eqn +space : [\e^~ \et] .Ed .Pp -Data in TEXT form is a non-empty sequence of non-space characters or a -non-empty quoted string. -Unless within a quoted string, white-space (and enclosing literal quote -pairs) is thrown away. -Quoted strings are not scanned for replacement definitions. +White-space consists of the space, tab, circumflex, and tilde +characters. +If within a quoted string, these space characters are retained. +Quoted strings are also not scanned for replacement definitions. .Pp -The following TEXT terms are translated into a rendered glyph, if +The following text terms are translated into a rendered glyph, if available: alpha, beta, chi, delta, epsilon, eta, gamma, iota, kappa, lambda, mu, nu, omega, omicron, phi, pi, psi, rho, sigma, tau, theta, upsilon, xi, zeta, DELTA, GAMMA, LAMBDA, OMEGA, PHI, PI, PSI, SIGMA, @@ -197,6 +197,10 @@ The text string .Sq \e\*q is interpreted as a literal quote in troff. In mandoc, this is interpreted as a comment. +.It +In troff, The circumflex and tilde white-space symbols map to +fixed-width spaces. +In mandoc, these characters are synonyms for the space character. .El .Sh SEE ALSO .Xr mandoc 1 , diff --git a/eqn.c b/eqn.c index 9fa4602a..e43a0f2d 100644 --- a/eqn.c +++ b/eqn.c @@ -1,4 +1,4 @@ -/* $Id: eqn.c,v 1.30 2011/07/22 14:59:02 kristaps Exp $ */ +/* $Id: eqn.c,v 1.31 2011/07/23 09:47:25 kristaps Exp $ */ /* * Copyright (c) 2011 Kristaps Dzonsons * @@ -648,7 +648,7 @@ again: if ('{' == *start || '}' == *start) ssz = 1; else - ssz = strcspn(start + 1, " ~\"{}\t") + 1; + ssz = strcspn(start + 1, " ^~\"{}\t") + 1; next = start + (int)ssz; if ('\0' == *next) next = NULL; @@ -662,6 +662,7 @@ again: ep->cur++; while (' ' == ep->data[(int)ep->cur] || '\t' == ep->data[(int)ep->cur] || + '^' == ep->data[(int)ep->cur] || '~' == ep->data[(int)ep->cur]) ep->cur++; } else { diff --git a/index.sgml b/index.sgml index 6c9b9ea6..e7e6b4aa 100644 --- a/index.sgml +++ b/index.sgml @@ -310,6 +310,14 @@

News

+

+ xx-07-2011: version 1.11.5 +

+

+ Significant eqn improvements. mdocml can now parse arbitrary equations + (although few GNU troff extensions are accepted, nor is mixing low-level roff with eqn). See the eqn manual for details. For the time being, equations are rendered as simple in-line text. +

12-07-2011: version 1.11.4

@@ -356,7 +364,7 @@ Copyright © 2008–2011 Kristaps Dzonsons, - $Date: 2011/07/14 14:36:37 $ + $Date: 2011/07/23 09:47:25 $

-- 2.47.1