From 6c51ec9a9c7afec827c30b1359fe7ba4e4b66420 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Fri, 7 Jan 2011 08:59:02 -0700 Subject: [PATCH] better Scribble support for disabling line breaks - make 'no-break element style work consistently - document 'no-break - add `nonbreaking' to `scribble/base' original commit: 315fdf071a2905ff4d634c7b8004e32c0d6a1b58 --- collects/scribble/base.rkt | 4 ++++ collects/scribble/latex-render.rkt | 2 +- collects/scribblings/scribble/base.scrbl | 4 ++++ collects/scribblings/scribble/core.scrbl | 3 +++ 4 files changed, 12 insertions(+), 1 deletion(-) diff --git a/collects/scribble/base.rkt b/collects/scribble/base.rkt index 0f4a7f8e..98732fd0 100644 --- a/collects/scribble/base.rkt +++ b/collects/scribble/base.rkt @@ -276,6 +276,7 @@ (provide/contract [linebreak (-> element?)] + [nonbreaking elem-like-contract] [hspace (-> exact-nonnegative-integer? element?)] [elem (->* () (#:style element-style?) @@ -311,6 +312,9 @@ (define (linebreak) (make-element 'newline '("\n"))) +(define (nonbreaking . str) + (make-element 'no-break (decode-content str))) + (define (elem #:style [style plain] . str) (make-element style (decode-content str))) diff --git a/collects/scribble/latex-render.rkt b/collects/scribble/latex-render.rkt index 8dc4b046..c3647619 100644 --- a/collects/scribble/latex-render.rkt +++ b/collects/scribble/latex-render.rkt @@ -272,7 +272,7 @@ [(bold) (wrap e "textbf" tt?)] [(tt) (wrap e "Scribtexttt" #t)] [(url) (wrap e "nolinkurl" 'exact)] - [(no-break) (core-render e tt?)] + [(no-break) (wrap e "mbox" tt?)] [(sf) (wrap e "textsf" #f)] [(subscript) (wrap e "textsub" #f)] [(superscript) (wrap e "textsuper" #f)] diff --git a/collects/scribblings/scribble/base.scrbl b/collects/scribblings/scribble/base.scrbl index a9bc6551..16c008aa 100644 --- a/collects/scribblings/scribble/base.scrbl +++ b/collects/scribblings/scribble/base.scrbl @@ -346,6 +346,10 @@ See also @racket[verbatim].} Produces an element that forces a line break.} +@def-elem-proc[nonbreaking]{Like @racket[elem], but line breaks are +suppressed while rendering the content.} + + @defproc[(hspace [n exact-nonnegative-integer?]) element?]{ Produces an element containing @racket[n] spaces and style diff --git a/collects/scribblings/scribble/core.scrbl b/collects/scribblings/scribble/core.scrbl index a64b56de..2e30476f 100644 --- a/collects/scribblings/scribble/core.scrbl +++ b/collects/scribblings/scribble/core.scrbl @@ -646,6 +646,9 @@ recognized: @item{@racket['newline] --- Renders a line break independent of the @racket[content].} + @item{@racket['no-break] --- Prevents line breaks when rendering + @racket[content].} + ] The following @tech{style properties} are currently recognized: