|
Subject: DSSSL and braille From: David Pawson <DPawson@xxxxxxxxxxx> Date: Thu, 31 Jul 1997 10:10:05 +0000 |
Use of DSSSL in Braille Production.
(Since the list is fairly quiet).
I have been asking about dsssl
as a possible tool for braille production.
I describe below the overall production
process and outline how I see dsssl fitting into that.
What I would appreciate from the list is guidance on the
formatting phase, for which I believe dsssl is ideally suited.
We have software and (are the author of) the rules for
English braille, its contraction etc.
If you could help get us started we are prepared to
pour over the standard to build on whatever you can give
us to build in the remaining rules. Rather than confuse
the issue with my limited knowledge of dsssl, I have written
the style sheet requirement in pseudo dsssl style language,
in the hope that you may be able to make sense of it.
Overall Process Description.
1. SGML markup of source file using RNIB DTD.
2. Contraction phase.
This is only used for grade 2 braille.
For simplicity I have assumed grade 1
braille, which does not have the
contractions.
E.g. The word English becomes 5DLI%, where the
initial EN is contracted to ASCII 5, the
final SH is contracted to %
This process is readily
implementable via available software,
replacing character groupings by
contractions. The output is again,
simple ASCII
3. Formatting phase. The markup is used to determine
the format. All markup is removed.
Controls for the process
are the braille page size and the stylesheet.
4. Feed the output file from process 3 to an embosser to
produce the braille.The embosser works as an old
line printer, each page being a fixed size of
multi-fold paper, needing a FF character (normally
as part of the header) to move on to the next
line. Think of the embosser as a printer taking
fixed font characters, one per 'cell' using
ASCII input which it converts to a six dot matrix
driving the pins of the printer on a one to one
relationship between the ASCII character and
a combination of the six 'dot' positions.
Presently available tools.
process 2 is available, but is ignored here for simplicity
Process 3. This phase offers the
best potential for the use of DSSSL or CSS.
Example
Process 1 output
<book>
<title> Example Text </title>
<author> Dave Pawson </author>
<head1>Introduction </head1>
<para>Telling the story</para>
<ul>
<li>part 1</li>
<li>part 2</li>
</ul>
<head2>The story</head2>
<para>This is the story</para>
</book>
Process 2 output (uncontracted- hence identical)
Process 3 output
#A
EXAMPLE TEXT
DAVE PAWSON
INTRODUCTION
TELLING THE STORY
part 1
part 2
The story
This is the story
333333333333
This file is fed to the embosser and produces the braille
copy.
Notes: The #A is the page number in a running header.
The line of 3's is an end of section marker
Stylesheet requirement (very basic)
Embossing is done on a fixed width font basis
using cells, each of which holds one
braille character using paper sizes as shown:
Example sizes are
lines cells per row Name
25 38 book
25 28 A4
28 38 Magazine
11 28 A5-landscape
18 20 A5-portrait
12 38 Inter-line
element book process-children, align:centre, add-literal
"333333333333"
element title new page, centred, space-before 1 line,
process-children, para-break-after*
element head1 centred, new para, process-children,
para-break-after*
element head2 centred, process-children, para-break-after*
* Note: All 3 elements are left-margin >= 5 cells
right-margin >=5 cells. I.e. word wrap to permit the
stated margins.
element head3 space-before 1 line, hanging margin of 4
cells,
process-children
element head 4 if word-count of head <4
precede each word by literal-char "."
else
precede first word by literal-char ".."
output-remaining words
precede last word by literal-char "."
element para make-para-break, indent by 2 cells
element para para make-para-break, add additional indent
of 2
element para para para make-para-break, add additional
indent of 2
element ul indent first line by 2 cells more than parent
element note make-para-break, insert 20 literal-chars
process-children
insert 20 literal-chars
make-para-break
create page header consisting of
left aligned print-page-number
centred section-number, section title*
right aligned braille page-number
[* note: maximum width = 10 less than page width]
element extract make-para-break, add additional indent of
4 to all
lines (including runovers)
Hope this gives you an idea of what I meant!
One item of concern is the need to 'add a two cell
indent' repeatedly. In a procedural language I would
have a global variable hold the present value, and
use this to judge where to take the margin. This is
used so often in braille that it makes me ask how
this might be done in DSSSL (scheme). Is there a
function to find out what the present value is and
make it relative (add 2 char positions to whatever
is present?)
Regards, Dave Pawson
DSSSList info and archive: http://www.mulberrytech.com/dsssl/dssslist
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: Paragraph breaks, Duncan Hothersall | Thread | Re: DSSSL and braille, Paul Prescod |
| Re: Entities and output -Reply, David Pawson | Date | Re: Entities and output -Reply, Paul Prescod |
| Month |