Em Ter, 2005-11-08 às 15:52 +0100, David Pirotte escreveu:
> On Mon, 07 Nov 2005 13:49:01 -0200
> "Jose Roberto B. de A. Monteiro" <[EMAIL PROTECTED]> wrote:
> 
> > Em Seg, 2005-11-07 às 14:53 +0100, David Pirotte escreveu:
> > > does anyone understands why this does not return the expected result
> > > 
> > >   (define *texu/reserved-characters*
> > >     ;; % \ { } ~ $ & # ^ _
> > >     '(
> > >       #\%         ;; comments
> > >       #\\         ;; command(follows by a space)
> > >       #\{         ;; definition of treatment block(main_arg)
> > >       #\}         
> > >       #\~         ;; indivisible space
> > >       #\$         ;; mathematical mode 
> > >       #\&         ;; tabulation ...
> > >       #\#         ;; symbol of parameter zone
> > >       #\^         ;; exponent
> > >       #\_         ;; index
> > >       )
> > >     )
> > > 
> > >   (define (texu/prep-str-for-tex str)
> > >     (let ((str-lst (string->list str))
> > >           (result (list)))
> > >       (for-each (lambda (chr)
> > >                   (if (member chr *texu/reserved-characters*)
> > >                       (set! result (cons chr (cons #\\ result)))
> > >                       (set! result (cons chr result))))
> > >                 str-lst)
> > >       (reverse-list->string result)
> > >       ))
> > 
> > Because you should have this string: ";; % \\ { } ~ $ & # ^ _", with two
> > backslashes instead of one... the same for "
> 
> but that is not possible, because the string (here simulated) is a user typed 
> in string
>  (through a gtk interface programmed in guile-gnome) upon which I have no 
> control. 
> I precisly wish to parse it to create a .tex file later processed by latex ...

Ok, look at the foloowing:

guile> (define s ";; % \\ { } ~ $ & # ^ _")

We need the double backslash here to define one backslash in the
internal string code. Then:

guile> s
";; % \\ { } ~ $ & # ^ _"
guile> (texu/prep-str-for-tex s)
";; \\% \\\\ \\{ \\} \\~ \\$ \\& \\# \\^ \\_"

Well, I believe that your code is working properly. Each pair of '\' is
in reality one '\'...





_______________________________________________
Guile-user mailing list
Guile-user@gnu.org
http://lists.gnu.org/mailman/listinfo/guile-user

Reply via email to