diff --git a/collects/scribble/html-render.ss b/collects/scribble/html-render.ss index 0cba736f..296bcb36 100644 --- a/collects/scribble/html-render.ss +++ b/collects/scribble/html-render.ss @@ -979,6 +979,7 @@ [(italic) (render* 'i)] [(bold) (render* 'b)] [(tt) (render* '([class "stt"]))] + [(url) (render* '([class "url"]))] [(no-break) (render* '([class "nobreak"]))] [(sf) `((b ,@(render* '(font ([size "-1"] [face "Helvetica"])))))] [(subscript) (render* 'sub)] diff --git a/collects/scribble/latex-render.ss b/collects/scribble/latex-render.ss index 96027659..997ff838 100644 --- a/collects/scribble/latex-render.ss +++ b/collects/scribble/latex-render.ss @@ -173,6 +173,7 @@ [(italic) (wrap e "textit" #f)] [(bold) (wrap e "textbf" #f)] [(tt) (wrap e "Scribtexttt" #t)] + [(url) (wrap e "nolinkurl" 'exact)] [(no-break) (super render-element e part ri)] [(sf) (wrap e "textsf" #f)] [(subscript) (wrap e "textsub" #f)] @@ -187,6 +188,8 @@ [(newline) (printf "\\\\")] [else (error 'latex-render "unrecognzied style symbol: ~s" style)])] + [(target-url? style) + (wrap e (format "href{~a}" (target-url-addr style)) #f)] [(string? style) (wrap e style (regexp-match? #px"^scheme(?!error)" style))] [(and (pair? style) (memq (car style) '(bg-color color))) @@ -439,50 +442,52 @@ null) (define/private (display-protected s) - (let ([len (string-length s)]) - (let loop ([i 0]) - (unless (= i len) - (let ([c (string-ref s i)]) - (display - (case c - [(#\\) (if (rendering-tt) - "{\\char`\\\\}" - "$\\backslash$")] - [(#\_) (if (rendering-tt) - "{\\char`\\_}" - "$\\_$")] - [(#\^) "{\\char'136}"] - [(#\>) (if (rendering-tt) "{\\texttt >}" "$>$")] - [(#\<) (if (rendering-tt) "{\\texttt <}" "$<$")] - [(#\|) (if (rendering-tt) "{\\texttt |}" "$|$")] - [(#\? #\! #\. #\:) - (if (rendering-tt) (format "{\\hbox{\\texttt{~a}}}" c) c)] - [(#\~) "$\\sim$"] - [(#\{ #\}) (if (rendering-tt) - (format "{\\char`\\~a}" c) - (format "\\~a" c))] - [(#\# #\% #\& #\$) (format "\\~a" c)] - [(#\uA0) "~"] - [(#\uDF) "{\\ss}"] - [(#\u039A) "K"] ; kappa - [(#\u0391) "A"] ; alpha - [(#\u039F) "O"] ; omicron - [(#\u03A3) "$\\Sigma$"] - [(#\u03BA) "$\\kappa$"] - [(#\u03B1) "$\\alpha$"] - [(#\u03B2) "$\\beta$"] - [(#\u03B3) "$\\gamma$"] - [(#\u03BF) "o"] ; omicron - [(#\u03C3) "$\\sigma$"] - [(#\u03C2) "$\\varsigma$"] - [(#\u03BB) "$\\lambda$"] - [(#\u039B) "$\\Lambda$"] - [(#\u03BC) "$\\mu$"] - [(#\u03C0) "$\\pi$"] - [(#\∞) "$\\infty$"] - [(#\à) "\\`{a}"] - [else c]))) - (loop (add1 i)))))) + (if (eq? (rendering-tt) 'exact) + (display s) + (let ([len (string-length s)]) + (let loop ([i 0]) + (unless (= i len) + (let ([c (string-ref s i)]) + (display + (case c + [(#\\) (if (rendering-tt) + "{\\char`\\\\}" + "$\\backslash$")] + [(#\_) (if (rendering-tt) + "{\\char`\\_}" + "$\\_$")] + [(#\^) "{\\char'136}"] + [(#\>) (if (rendering-tt) "{\\texttt >}" "$>$")] + [(#\<) (if (rendering-tt) "{\\texttt <}" "$<$")] + [(#\|) (if (rendering-tt) "{\\texttt |}" "$|$")] + [(#\? #\! #\. #\:) + (if (rendering-tt) (format "{\\hbox{\\texttt{~a}}}" c) c)] + [(#\~) "$\\sim$"] + [(#\{ #\}) (if (rendering-tt) + (format "{\\char`\\~a}" c) + (format "\\~a" c))] + [(#\# #\% #\& #\$) (format "\\~a" c)] + [(#\uA0) "~"] + [(#\uDF) "{\\ss}"] + [(#\u039A) "K"] ; kappa + [(#\u0391) "A"] ; alpha + [(#\u039F) "O"] ; omicron + [(#\u03A3) "$\\Sigma$"] + [(#\u03BA) "$\\kappa$"] + [(#\u03B1) "$\\alpha$"] + [(#\u03B2) "$\\beta$"] + [(#\u03B3) "$\\gamma$"] + [(#\u03BF) "o"] ; omicron + [(#\u03C3) "$\\sigma$"] + [(#\u03C2) "$\\varsigma$"] + [(#\u03BB) "$\\lambda$"] + [(#\u039B) "$\\Lambda$"] + [(#\u03BC) "$\\mu$"] + [(#\u03C0) "$\\pi$"] + [(#\∞) "$\\infty$"] + [(#\à) "\\`{a}"] + [else c]))) + (loop (add1 i))))))) ;; ---------------------------------------- diff --git a/collects/scribblings/scribble/scheme.scrbl b/collects/scribblings/scribble/scheme.scrbl index 9f991404..fd72294a 100644 --- a/collects/scribblings/scribble/scheme.scrbl +++ b/collects/scribblings/scribble/scheme.scrbl @@ -148,7 +148,7 @@ Provided @scheme[for-syntax]; returns @scheme[#t] if @scheme[v] is an @defproc[(make-variable-id [sym (or/c symbol? identifier?)]) variable-id?]{ -Provided @scheme[for-syntax]; like @scheme[element-id-transformer] for +Provided @scheme[for-syntax]; like @scheme[make-element-id-transformer] for a transformer that produces @scheme[sym] typeset as a variable (like @scheme[schemevarfont])---unless it appears under quote or quasiquote, in which case @scheme[sym] is typeset as a symbol.} diff --git a/collects/scribblings/scribble/struct.scrbl b/collects/scribblings/scribble/struct.scrbl index 6a147e32..e2120597 100644 --- a/collects/scribblings/scribble/struct.scrbl +++ b/collects/scribblings/scribble/struct.scrbl @@ -502,7 +502,7 @@ The @scheme[style] field is normally either a macro name for Latex output (see @secref["extra-style"]);} @item{one of the symbols that all renderers recognize: @scheme['tt], - @scheme['italic], @scheme['bold], @scheme['sf], + @scheme['italic], @scheme['bold], @scheme['sf], @scheme['url], @scheme['subscript], @scheme['superscript], @scheme['hspace], or @scheme['newline] (which renders a line break independent of the @scheme[content]);}