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]);}