Following the advice from one previous reply to my question, I'm now using (define-runtime-path ...), instead of (current-directory). This has solved one of my problems, namely, the program can now find "scribblings/math-quiz.html" file, wherever it is installed relative to the math-quiz module.
However, both define-runtime-path, and current-directory have the same problem on Windows (that is W11 - the only one I have here to test).
The path returned (when this is run as Package install from racket-lang.org), on W11 computer is with backslashes as in c:\dir\dir\...\scribblings\math-quiz.html
This seemed OK to me at first, but math-quiz would not display the html file, and would report the error that file can not be found. All the time on Linux (where I program anyway), the file was found because the path was reported as: /home/dir/dir.../scribblings/math-quiz.html.
My final code for opening HTML docs is this:
(define (fix-path path-str)
(list->string
(map (lambda (c) (case c
((#\\) #\/)
(else c))) (string->list path-str))))
(define-runtime-path scribble-path "scribblings/math-quiz.html")
(define menu-item-html (new menu-item%
[label "HTML Documentation"]
[parent help-menu]
[callback
(lambda (mi e)
(send-url
(fix-path
(path->string scribble-path))))]))
This works both on Linux and on Windows.
So, why does W11 accept Linux path string, but not the path string that Racket returns as windows path?