add 'url style to Scribble

svn: r15059

original commit: 77843f5e8e6605ca77c9cd7fe9f284116ce47196
This commit is contained in:
4 changed files with 52 additions and 46 deletions

View File

@ -979,6 +979,7 @@
[(italic) (render* 'i)] [(italic) (render* 'i)]
[(bold) (render* 'b)] [(bold) (render* 'b)]
[(tt) (render* '([class "stt"]))] [(tt) (render* '([class "stt"]))]
[(url) (render* '([class "url"]))]
[(no-break) (render* '([class "nobreak"]))] [(no-break) (render* '([class "nobreak"]))]
[(sf) `((b ,@(render* '(font ([size "-1"] [face "Helvetica"])))))] [(sf) `((b ,@(render* '(font ([size "-1"] [face "Helvetica"])))))]
[(subscript) (render* 'sub)] [(subscript) (render* 'sub)]

View File

@ -173,6 +173,7 @@
[(italic) (wrap e "textit" #f)] [(italic) (wrap e "textit" #f)]
[(bold) (wrap e "textbf" #f)] [(bold) (wrap e "textbf" #f)]
[(tt) (wrap e "Scribtexttt" #t)] [(tt) (wrap e "Scribtexttt" #t)]
[(url) (wrap e "nolinkurl" 'exact)]
[(no-break) (super render-element e part ri)] [(no-break) (super render-element e part ri)]
[(sf) (wrap e "textsf" #f)] [(sf) (wrap e "textsf" #f)]
[(subscript) (wrap e "textsub" #f)] [(subscript) (wrap e "textsub" #f)]
@ -187,6 +188,8 @@
[(newline) (printf "\\\\")] [(newline) (printf "\\\\")]
[else (error 'latex-render [else (error 'latex-render
"unrecognzied style symbol: ~s" style)])] "unrecognzied style symbol: ~s" style)])]
[(target-url? style)
(wrap e (format "href{~a}" (target-url-addr style)) #f)]
[(string? style) [(string? style)
(wrap e style (regexp-match? #px"^scheme(?!error)" style))] (wrap e style (regexp-match? #px"^scheme(?!error)" style))]
[(and (pair? style) (memq (car style) '(bg-color color))) [(and (pair? style) (memq (car style) '(bg-color color)))
@ -439,50 +442,52 @@
null) null)
(define/private (display-protected s) (define/private (display-protected s)
(let ([len (string-length s)]) (if (eq? (rendering-tt) 'exact)
(let loop ([i 0]) (display s)
(unless (= i len) (let ([len (string-length s)])
(let ([c (string-ref s i)]) (let loop ([i 0])
(display (unless (= i len)
(case c (let ([c (string-ref s i)])
[(#\\) (if (rendering-tt) (display
"{\\char`\\\\}" (case c
"$\\backslash$")] [(#\\) (if (rendering-tt)
[(#\_) (if (rendering-tt) "{\\char`\\\\}"
"{\\char`\\_}" "$\\backslash$")]
"$\\_$")] [(#\_) (if (rendering-tt)
[(#\^) "{\\char'136}"] "{\\char`\\_}"
[(#\>) (if (rendering-tt) "{\\texttt >}" "$>$")] "$\\_$")]
[(#\<) (if (rendering-tt) "{\\texttt <}" "$<$")] [(#\^) "{\\char'136}"]
[(#\|) (if (rendering-tt) "{\\texttt |}" "$|$")] [(#\>) (if (rendering-tt) "{\\texttt >}" "$>$")]
[(#\? #\! #\. #\:) [(#\<) (if (rendering-tt) "{\\texttt <}" "$<$")]
(if (rendering-tt) (format "{\\hbox{\\texttt{~a}}}" c) c)] [(#\|) (if (rendering-tt) "{\\texttt |}" "$|$")]
[(#\~) "$\\sim$"] [(#\? #\! #\. #\:)
[(#\{ #\}) (if (rendering-tt) (if (rendering-tt) (format "{\\hbox{\\texttt{~a}}}" c) c)]
(format "{\\char`\\~a}" c) [(#\~) "$\\sim$"]
(format "\\~a" c))] [(#\{ #\}) (if (rendering-tt)
[(#\# #\% #\& #\$) (format "\\~a" c)] (format "{\\char`\\~a}" c)
[(#\uA0) "~"] (format "\\~a" c))]
[(#\uDF) "{\\ss}"] [(#\# #\% #\& #\$) (format "\\~a" c)]
[(#\u039A) "K"] ; kappa [(#\uA0) "~"]
[(#\u0391) "A"] ; alpha [(#\uDF) "{\\ss}"]
[(#\u039F) "O"] ; omicron [(#\u039A) "K"] ; kappa
[(#\u03A3) "$\\Sigma$"] [(#\u0391) "A"] ; alpha
[(#\u03BA) "$\\kappa$"] [(#\u039F) "O"] ; omicron
[(#\u03B1) "$\\alpha$"] [(#\u03A3) "$\\Sigma$"]
[(#\u03B2) "$\\beta$"] [(#\u03BA) "$\\kappa$"]
[(#\u03B3) "$\\gamma$"] [(#\u03B1) "$\\alpha$"]
[(#\u03BF) "o"] ; omicron [(#\u03B2) "$\\beta$"]
[(#\u03C3) "$\\sigma$"] [(#\u03B3) "$\\gamma$"]
[(#\u03C2) "$\\varsigma$"] [(#\u03BF) "o"] ; omicron
[(#\u03BB) "$\\lambda$"] [(#\u03C3) "$\\sigma$"]
[(#\u039B) "$\\Lambda$"] [(#\u03C2) "$\\varsigma$"]
[(#\u03BC) "$\\mu$"] [(#\u03BB) "$\\lambda$"]
[(#\u03C0) "$\\pi$"] [(#\u039B) "$\\Lambda$"]
[(#\∞) "$\\infty$"] [(#\u03BC) "$\\mu$"]
[(#\à) "\\`{a}"] [(#\u03C0) "$\\pi$"]
[else c]))) [(#\∞) "$\\infty$"]
(loop (add1 i)))))) [(#\à) "\\`{a}"]
[else c])))
(loop (add1 i)))))))
;; ---------------------------------------- ;; ----------------------------------------

View File

@ -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?)]) @defproc[(make-variable-id [sym (or/c symbol? identifier?)])
variable-id?]{ 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 a transformer that produces @scheme[sym] typeset as a variable (like
@scheme[schemevarfont])---unless it appears under quote or quasiquote, @scheme[schemevarfont])---unless it appears under quote or quasiquote,
in which case @scheme[sym] is typeset as a symbol.} in which case @scheme[sym] is typeset as a symbol.}

View File

@ -502,7 +502,7 @@ The @scheme[style] field is normally either
a macro name for Latex output (see @secref["extra-style"]);} a macro name for Latex output (see @secref["extra-style"]);}
@item{one of the symbols that all renderers recognize: @scheme['tt], @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], @scheme['subscript], @scheme['superscript], @scheme['hspace],
or @scheme['newline] (which renders a line break independent of or @scheme['newline] (which renders a line break independent of
the @scheme[content]);} the @scheme[content]);}