diff --git a/collects/scribble/eval.ss b/collects/scribble/eval.ss index f73ddabb..dbde375c 100644 --- a/collects/scribble/eval.ss +++ b/collects/scribble/eval.ss @@ -144,10 +144,14 @@ (loop (extract s cdr car) (list (syntax->datum (datum->syntax #f (extract s cdr cdr car)))))] [else - (let ([r (with-handlers ([exn:fail? (lambda (e) - (list (exn-message e) - (get-output ev) - (get-error-output ev)))]) + (let ([r (with-handlers ([(lambda (x) + (not (exn:break? x))) + (lambda (e) + (list (if (exn? e) + (exn-message e) + (format "uncaught exception: ~s" e)) + (get-output ev) + (get-error-output ev)))]) (list (let ([v (do-plain-eval ev s #t)]) (make-reader-graph (copy-value v (make-hasheq)))) (get-output ev) diff --git a/collects/scribble/manual.ss b/collects/scribble/manual.ss index e0d38b13..6ce9586f 100644 --- a/collects/scribble/manual.ss +++ b/collects/scribble/manual.ss @@ -2042,6 +2042,7 @@ (define (bib-entry #:key key #:title title + #:is-book? [is-book? #f] #:author [author #f] #:location [location #f] #:date [date #f] @@ -2055,12 +2056,19 @@ (append (decode-content (list author)) (list ", ")) null) - (list 'ldquo) - (decode-content (list title)) + (if is-book? + null + (list 'ldquo)) + (if is-book? + (list (italic title)) + (decode-content (list title))) (list (if location "," - ".") - 'rdquo) + ".")) + + (if is-book? + null + (list 'rdquo)) (if location (cons " " (append diff --git a/collects/scribblings/scribble/manual.scrbl b/collects/scribblings/scribble/manual.scrbl index ca596fd0..a69ccd7b 100644 --- a/collects/scribblings/scribble/manual.scrbl +++ b/collects/scribblings/scribble/manual.scrbl @@ -928,6 +928,7 @@ order as given} @defproc[(bib-entry [#:key key string?] [#:title title any/c] + [#:is-book? is-book? any/c #f] [#:author author any/c] [#:location location any/c] [#:date date any/c] @@ -941,7 +942,8 @@ the entry: @itemize{ @item{@scheme[title] is the title of the cited work. It will be - surrounded by quotes in typeset form.} + surrounded by quotes in typeset form if @scheme[is-book?] is + @scheme[#f], otherwise it is typeset via @scheme[italic].} @item{@scheme[author] lists the authors. Use names in their usual order (as opposed to ``last, first''), and separate multiple