|
Subject: Q: Jade, RTF, line breaks etc. From: Mikko Lounela <Mikko.Lounela@xxxxxx> Date: Fri, 8 Aug 1997 15:35:01 +0300 (EET DST) |
Newbie question:
I have started to (try and) write a DSSSL-spec for an adjusted
ISO/IEC10179:1996(E) book.dtd, and I have had pretty hard times with it.
I am using Jade with RTF backend in Win95 and viewing the results with MSWord.
Now it seems like the learning curve has stopped altogether.
The base of the problem is that I would need to have the information in the
AFF element from the structure below to appear in a different place in the
RTF file than it does in the SGML document:
<front>
<authgrp>
<author>
<fname>First
<surname>Authorf
<role>Author
<aff>
<orgname>Org1
<orgdiv>div1
</aff>
</author>
<author>
<fname>Other
<surname>Authoro
<role>Author
<aff>
<orgname>Org2
<orgdiv>div2
</aff>
</author>
</authgrp>
In other words, I should display the Orgs and divs in another location of the
end document - each (Orgn, divn) pair on its on line, like.
Org1, div1
Org2, div2
I have managed to navigate from under a sibling of the AUTHGRP and get a list
that includes all the children of all the AFF elements. Like this:
(define (*affstring*)
(let ((x
(children
(select-elements
(children
(select-elements
(children
(select-elements
(children
(ancestor "FRONT" (current-node)))
'(AUTHGRP)))
'(AUTHOR)))
'(AFF)))
))
x
))
So far so fine.
But the first appproach that I tried only displays the last member of the
node list produced by the above code. It just gives me 'div2'.
;;
;; doesn't work - some day I'll understand why...
;;
(define (node-list-display nl)
(node-list-reduce nl
(lambda (result snl)
(if (equal? (gi snl) "ORGNAME")
(make display-group (literal (data snl)))
(make sequence (literal (data snl)))
)
)
""))
...
(node-list-display (*affstring*))
...
Then I thought of a workaround. If I could append all the parts to one
string, with line breaks before each ORGNAME, and then display it all at
once, it would
be not elegant, but perhaps sufficient. But I can't get that to work
either. I have tried to define the *newline* as " " and a few ways
of naming or quoting the newline. I even tried to get the thing to produce
"\line", which is RTF for newline, but no avail. I get all the elements but
I don't get the line break.
(define (node-list-to-string nl)
(node-list-reduce nl
(lambda (result snl)
(if (equal? (gi snl) "ORGNAME")
(string-append result (*newline*) (data snl))
(string-append result ", " (data snl))
)
)
""))
...
(make display-group (literal (node-list-to-string (*affstring*))))
...
If somebody knows how, or why, or even where to read, I would really
appreciate.
TIA,
- Mikko
DSSSList info and archive: http://www.mulberrytech.com/dsssl/dssslist
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| preserve-sdata?, Jacco van Ossenbrugg | Thread | Re: Q: Jade, RTF, line breaks etc., Paul Prescod |
| preserve-sdata?, Jacco van Ossenbrugg | Date | Re: index.htm or index.html?, Norman Walsh |
| Month |