diff --git a/collects/scribble/html-render.ss b/collects/scribble/html-render.ss index 7bc8fc6ce2..dcbbe34610 100644 --- a/collects/scribble/html-render.ss +++ b/collects/scribble/html-render.ss @@ -176,10 +176,9 @@ [(sf) `((b (font ([size "-1"][face "Helvetica"]) ,@(super render-element e part ht))))] [(subscript) `((sub ,@(super render-element e part ht)))] [(superscript) `((sup ,@(super render-element e part ht)))] - [(hspace) `((tt ,@(let ([str (content->string (element-content e))]) - (if (= 1 (string-length str)) - '(" ") - (map (lambda (c) 'nbsp) (string->list str))))))] + [(hspace) `((span ([class "hspace"]) + ,@(let ([str (content->string (element-content e))]) + (map (lambda (c) 'nbsp) (string->list str)))))] [else (error 'html-render "unrecognized style symbol: ~e" style)])] [(string? style) `((span ([class ,style]) ,@(super render-element e part ht)))] diff --git a/collects/scribble/latex-render.ss b/collects/scribble/latex-render.ss index 3355df2c7a..bd1d8297a2 100644 --- a/collects/scribble/latex-render.ss +++ b/collects/scribble/latex-render.ss @@ -35,15 +35,21 @@ (define-color "schemeplain" "black") (printf "\\newcommand{\\schemekeyword}[1]{{\\color{black}{\\texttt{\\textbf{#1}}}}}\n") (printf "\\newcommand{\\schemesyntaxlink}[1]{\\schemekeyword{#1}}\n") - (define-color "schemecomment" "Brown") - (define-color "schemeparen" "BrickRed") - (define-color "schemeinputcol" "BrickRed") - (define-color "schemesymbol" "NavyBlue") - (define-color "schemevalue" "ForestGreen") + (printf "\\definecolor{CommentColor}{rgb}{0.76,0.45,0.12}\n") + (printf "\\definecolor{ParenColor}{rgb}{0.52,0.24,0.14}\n") + (printf "\\definecolor{IdentifierColor}{rgb}{0.15,0.15,0.50}\n") + (printf "\\definecolor{ResultColor}{rgb}{0.0,0.0,0.69}\n") + (printf "\\definecolor{ValueColor}{rgb}{0.13,0.55,0.13}\n") + (printf "\\definecolor{OutputColor}{rgb}{0.59,0.00,0.59}\n") + (define-color "schemecomment" "CommentColor") + (define-color "schemeparen" "ParenColor") + (define-color "schemeinputcol" "ParenColor") + (define-color "schemesymbol" "IdentifierColor") + (define-color "schemevalue" "ValueColor") (define-color "schemevaluelink" "blue") - (define-color "schemeresult" "NavyBlue") - (define-color "schemestdout" "Purple") - (define-color "schemevariablecol" "NavyBlue") + (define-color "schemeresult" "ResultColor") + (define-color "schemestdout" "OutputColor") + (define-color "schemevariablecol" "IdentifierColor") (printf "\\newcommand{\\schemevariable}[1]{{\\schemevariablecol{\\textsl{#1}}}}\n") (define-color "schemeerrorcol" "red") (printf "\\newcommand{\\schemeerror}[1]{{\\schemeerrorcol{\\textrm{\\textit{#1}}}}}\n") @@ -134,7 +140,6 @@ [(hspace) (let ([s (content->string (element-content e))]) (case (string-length s) [(0) (void)] - [(1) (printf "{\\texttt{ }}")] ; allows a line break to replace the space [else (printf "{\\texttt{~a}}" (regexp-replace* #rx"." s "~"))]))] diff --git a/collects/scribble/manual.ss b/collects/scribble/manual.ss index aa75b1131e..3f15245e36 100644 --- a/collects/scribble/manual.ss +++ b/collects/scribble/manual.ss @@ -64,7 +64,7 @@ [end-spaces (regexp-match-positions #rx" *$" s)]) (make-element "schemeinput" (list (hspace (cdar spaces)) - (make-element 'tt (list (substring s (cdar spaces) (caar end-spaces)))) + (make-element #f (list (substring s (cdar spaces) (caar end-spaces)))) (hspace (- (cdar end-spaces) (caar end-spaces)))))))) (define (verbatim s) diff --git a/collects/scribble/scheme.ss b/collects/scribble/scheme.ss index 4347674547..dcc06625b4 100644 --- a/collects/scribble/scheme.ss +++ b/collects/scribble/scheme.ss @@ -89,7 +89,7 @@ values) (if color? (make-element cls (list v)) - (make-element 'tt (list v)))) + (make-element #f (list v)))) content)) (set! dest-col (+ dest-col len)))))])) (define advance @@ -112,7 +112,10 @@ (let ([amt (- d-col dest-col)]) (when (positive? amt) (let ([old-dest-col dest-col]) - (out (make-element 'hspace (list (make-string amt #\space))) #f) + (out (if (and (= 1 amt) (not multi-line?)) + (make-element 'tt (list " ")) ; allows a line break to replace the space + (make-element 'hspace (list (make-string amt #\space)))) + #f) (set! dest-col (+ old-dest-col amt)))))) (set! src-col c) (hash-table-put! next-col-map src-col dest-col)))] @@ -178,7 +181,10 @@ (out "; " comment-color) (let ([v (syntax-object->datum (cadr (syntax->list c)))]) (if (paragraph? v) - (map (lambda (v) (out v comment-color)) (paragraph-content v)) + (map (lambda (v) (if (string? v) + (out v comment-color) + (out v #f))) + (paragraph-content v)) (out v comment-color)))] [(and (pair? (syntax-e c)) (eq? (syntax-e (car (syntax-e c))) 'code:contract)) diff --git a/collects/scribble/scribble.css b/collects/scribble/scribble.css index 80c495193b..48ffaf7dcf 100644 --- a/collects/scribble/scribble.css +++ b/collects/scribble/scribble.css @@ -1,12 +1,11 @@ body { color: black; - /* background-color: #e5e5e5;*/ background-color: #ffffff; - /*background-color: beige;*/ max-width: 35em; margin-left: auto; margin-right: auto; + font-family: Times; } .refpara { @@ -130,7 +129,7 @@ list-style-type: upper-alpha; } - tt i { + i { font-family: serif; } @@ -138,12 +137,6 @@ font-family: serif; } - /* - .verbatim { - color: #4d0000; - } - */ - .ghost { color: white; } @@ -157,15 +150,19 @@ background-color: #ddddff; } + .hspace { + font-family: Courier; font-size: 80%; + } + .schemeinput { color: brown; background-color: #eeeeee; - font-family: monospace; + font-family: Courier; font-size: 80%; } .schemeparen { - color: brown; - font-family: monospace; + color: #843c24; + font-family: Courier; font-size: 80%; } .schemeopt { @@ -175,7 +172,7 @@ .schemekeyword { color: black; font-weight: bold; - font-family: monospace; + font-family: Courier; font-size: 80%; } .schemeerror { @@ -184,27 +181,25 @@ } .schemevariable { - color: navy; + color: #262680; font-style: italic; - font-family: monospace; + font-family: Courier; font-size: 80%; } .schemesymbol { - color: navy; - font-family: monospace; + color: #262680; + font-family: Courier; font-size: 80%; } .schemevaluelink { text-decoration: none; color: blue; - font-family: monospace; } .schemesyntaxlink { text-decoration: none; color: black; font-weight: bold; - font-family: monospace; } .badlink { @@ -213,23 +208,23 @@ } .schemeresult { - color: navy; - font-family: monospace; + color: #0000af; + font-family: Courier; font-size: 80%; } .schemestdout { - color: purple; - font-family: monospace; + color: #960096; + font-family: Courier; font-size: 80%; } .schemecomment { - color: teal; - font-family: monospace; + color: #c2741f; + font-family: Courier; font-size: 80%; } .schemevalue { - color: green; - font-family: monospace; + color: #228b22; + font-family: Courier; font-size: 80%; } .nonavigation { @@ -251,13 +246,6 @@ text-align: right; } - /* - .smallprint hr { - text-align: left; - width: 40%; - } - */ - .footnoterule { text-align: left; width: 40%; diff --git a/collects/scribblings/guide/boxes.scrbl b/collects/scribblings/guide/boxes.scrbl index b53bbffc17..c7b62c65dc 100644 --- a/collects/scribblings/guide/boxes.scrbl +++ b/collects/scribblings/guide/boxes.scrbl @@ -6,8 +6,8 @@ @title[#:tag "boxes"]{Boxes} A @defterm{box} is like a single-element vector. It prints as -@schemefont{#&} followed by the printed form of the boxed value. A -@schemefont{#&} form can also be used as an expression, but since the +@litchar{#&} followed by the printed form of the boxed value. A +@litchar{#&} form can also be used as an expression, but since the resulting box is constant, it has practically no use. @examples[ diff --git a/collects/scribblings/guide/byte-strings.scrbl b/collects/scribblings/guide/byte-strings.scrbl index bb27533431..9a4a280df7 100644 --- a/collects/scribblings/guide/byte-strings.scrbl +++ b/collects/scribblings/guide/byte-strings.scrbl @@ -20,7 +20,7 @@ instead of characters. Byte strings can be used in applications that process pure ASCII instead of Unicode text. The printed and form of a byte string supports such uses in particular, because a byte string prints like the ASCII decoding of the byte string, but prefixed with a -@schemefont{#}. Unprintable ASCII characters or non-ASCII bytes in the +@litchar{#}. Unprintable ASCII characters or non-ASCII bytes in the byte string are written with octal notation. @refdetails["mz:parse-string"]{the syntax of byte strings} diff --git a/collects/scribblings/guide/char-strings.scrbl b/collects/scribblings/guide/char-strings.scrbl index 0227ae1d37..7f32cb9603 100644 --- a/collects/scribblings/guide/char-strings.scrbl +++ b/collects/scribblings/guide/char-strings.scrbl @@ -9,11 +9,11 @@ A @defterm{string} is a fixed-length array of @seclink["guide:characters"]{characters}. It prints using doublequotes, where doublequote and backslash characters within the string are escaped with backslashes. Other common string escapes are supported, -incluing @schemefont["\\n"] for a linefeed, @schemefont["\\r"] for a -carriage return, octal escapes using @schemefont["\\"] followed by up -to three octal digits, and hexadimal escapes with @schemefont["\\u"] +including @litchar["\\n"] for a linefeed, @litchar["\\r"] for a +carriage return, octal escapes using @litchar["\\"] followed by up +to three octal digits, and hexadimal escapes with @litchar["\\u"] (up to four digits). Unprintable characters in a string normally -shown with @schemefont["\\u"] when the string is printed. +shown with @litchar["\\u"] when the string is printed. @refdetails["mz:parse-string"]{the syntax of strings} diff --git a/collects/scribblings/guide/chars.scrbl b/collects/scribblings/guide/chars.scrbl index 50678f12e2..4b8c59ce94 100644 --- a/collects/scribblings/guide/chars.scrbl +++ b/collects/scribblings/guide/chars.scrbl @@ -19,9 +19,9 @@ character datatype is separate from numbers. The @scheme[char->integer] and @scheme[integer->char] procedures convert between scalar-value numbers and the corresponding character. -A printable character normally prints as @schemefont["#\\"] followed +A printable character normally prints as @litchar["#\\"] followed by the represented character. An unprintable character normally prints -as @schemefont{#\u} followed by the scalar value as hexdecimal +as @litchar{#\u} followed by the scalar value as hexdecimal number. A few characters are printed specially; for example, the space and linefeed characters print as @scheme[#\space] and @scheme[#\newline], respectively. diff --git a/collects/scribblings/guide/hash-tables.scrbl b/collects/scribblings/guide/hash-tables.scrbl index ba1fe09f56..9dd52763e1 100644 --- a/collects/scribblings/guide/hash-tables.scrbl +++ b/collects/scribblings/guide/hash-tables.scrbl @@ -21,10 +21,10 @@ the hash table is created with the @scheme['equal] flag. ] A literal hash table can be written as an expression by using -@schemefont{#hash} (for an @scheme[equal?]-based table) or -@schemefont{#hasheq} (for an @scheme[eq?]-based table). A parenthesized -sequence must immediately follow @schemefont{#hash} or -@schemefont{#hasheq}, where each element is a sequence is a dotted +@litchar{#hash} (for an @scheme[equal?]-based table) or +@litchar{#hasheq} (for an @scheme[eq?]-based table). A parenthesized +sequence must immediately follow @litchar{#hash} or +@litchar{#hasheq}, where each element is a sequence is a dotted key--value pair. Literal hash tables are immutable. @examples[ diff --git a/collects/scribblings/guide/keywords.scrbl b/collects/scribblings/guide/keywords.scrbl index bc80519f10..64471f7fd8 100644 --- a/collects/scribblings/guide/keywords.scrbl +++ b/collects/scribblings/guide/keywords.scrbl @@ -6,7 +6,7 @@ @title[#:tag "keywords"]{Keywords} A @defterm{keyword} is similar to a symbol (see @secref["symbols"]), -but its printed form is prefixed with @schemefont{#:}. +but its printed form is prefixed with @litchar{#:}. @refdetails["mz:parse-keyword"]{the syntax of keywords} diff --git a/collects/scribblings/guide/numbers.scrbl b/collects/scribblings/guide/numbers.scrbl index 2ac728c45a..79a6ce618a 100644 --- a/collects/scribblings/guide/numbers.scrbl +++ b/collects/scribblings/guide/numbers.scrbl @@ -47,10 +47,10 @@ A Scheme @defterm{number} is either exact or inexact: Inexact numbers print with a decimal point or exponent specifier, and exact numbers print as integers and fractions. The same conventions -apply for reading number constants, but @schemefont{#e} or -@schemefont{#i} can prefix a number to force its parsing as an exact -or inexact number. The prefixes @schemefont{#b}, @schemefont{#o}, and -@schemefont{#x} specificy binary, octal, and hexadecimal +apply for reading number constants, but @litchar{#e} or +@litchar{#i} can prefix a number to force its parsing as an exact +or inexact number. The prefixes @litchar{#b}, @litchar{#o}, and +@litchar{#x} specificy binary, octal, and hexadecimal interprertation of digits. @refdetails["mz:parse-number"]{the syntax of numbers} diff --git a/collects/scribblings/guide/paths.scrbl b/collects/scribblings/guide/paths.scrbl index 314a687e95..4af2aa3da6 100644 --- a/collects/scribblings/guide/paths.scrbl +++ b/collects/scribblings/guide/paths.scrbl @@ -17,7 +17,7 @@ scalar values. Despite the occasional encoding problems, most paths can be converted to and fom strings. Thus, procedures that accept a path argument always accept a string, and the printed form of a path uses the string -decodin of the path inside @schemefont{#}. The +decodin of the path inside @litchar{#}. The @scheme[display] form of a path is the same as the @scheme[display] form of its string encodings. diff --git a/collects/scribblings/guide/vectors.scrbl b/collects/scribblings/guide/vectors.scrbl index 320db21ff4..9b94c2f0c3 100644 --- a/collects/scribblings/guide/vectors.scrbl +++ b/collects/scribblings/guide/vectors.scrbl @@ -10,7 +10,7 @@ values. Unlike a list, a vector supports constant-time access and update of its elements. A vector prints similar to a list---as a parenthesized sequence of its -elements---but a vector is prefixed with @schemefont{#} and the length +elements---but a vector is prefixed with @litchar{#} and the length of the vector. The vector length is optional for a vector as an expression. Also, a vector as an expression implicitly quotes the forms for its content, which means that identifiers and parenthesized @@ -28,7 +28,7 @@ forms in a vector constant represent symbols and lists. When the last @math{n} vector elements of a vector are the same value (as determined by @scheme[eq?]), then the last @math{n-1} instances are omitted from the printed form. The vector length shown after the -leading @scheme{#} effectively indicates when repeated trailing +leading @litchar{#} effectively indicates when repeated trailing elements are omitted. The same conventions apply for vectors as expressions. diff --git a/collects/scribblings/scribble/struct.scrbl b/collects/scribblings/scribble/struct.scrbl index 5f209b9a34..c0ecdb97ad 100644 --- a/collects/scribblings/scribble/struct.scrbl +++ b/collects/scribblings/scribble/struct.scrbl @@ -52,7 +52,8 @@ A single document is reprsented as a @defterm{part}: output may be collapsed togther or replaced with a line break. In the style @scheme['hspace], all text is converted to - uncollapsable spaces.} + uncollapsable spaces that cannot be broken + across lines.} @item{A symbol element is either @scheme['mdash], @scheme['ndash], @scheme['ldquo], diff --git a/collects/scribblings/to-html.ss b/collects/scribblings/to-html.ss index 10bfbd4d07..461a5374b6 100644 --- a/collects/scribblings/to-html.ss +++ b/collects/scribblings/to-html.ss @@ -16,6 +16,12 @@ (build-path main-doc-dir (car names)))]) (unless multi? (make-directory* doc-dir)) + (when multi? + (for-each (lambda (name) + (let ([out-dir (build-path doc-dir name)]) + (when (directory-exists? out-dir) + (delete-directory/files out-dir)))) + names)) (parameterize ([current-directory dir] [current-dest-directory doc-dir] [current-render-mixin (if multi?