add #:indent to verbatim

svn: r8707
This commit is contained in:
Eli Barzilay 2008-02-18 20:01:23 +00:00
parent 0f99e937fd
commit 6f0ce91461
25 changed files with 90 additions and 82 deletions

View File

@ -39,7 +39,7 @@ contain Scheme strings, and since escape characters are difficult for
people to read, a @litchar{|} character in @scheme[sexpr] is people to read, a @litchar{|} character in @scheme[sexpr] is
converted to a @litchar{"} character before it is parsed. Thus, converted to a @litchar{"} character before it is parsed. Thus,
@verbatim{ @verbatim[#:indent 2]{
<A MZSCHEME="|This goes nowhere.|">Nowhere</A> <A MZSCHEME="|This goes nowhere.|">Nowhere</A>
} }
@ -61,7 +61,7 @@ is executed immediately during HTML rendering. If the result is a
string, the comment is replaced in the input HTML stream with the string, the comment is replaced in the input HTML stream with the
content of the string. Thus, content of the string. Thus,
@verbatim{ @verbatim[#:indent 2]{
<!-- MZSCHEME="(format |<B>Here</B>: ~a| (current-directory))" --> <!-- MZSCHEME="(format |<B>Here</B>: ~a| (current-directory))" -->
} }

View File

@ -48,7 +48,7 @@ re-exported by @schememodname[net/url].}
The basic structure for all URLs, hich is explained in RFC 3986 The basic structure for all URLs, hich is explained in RFC 3986
@cite["RFC3986"]. The following diagram illustrates the parts: @cite["RFC3986"]. The following diagram illustrates the parts:
@verbatim|{ @verbatim[#:indent 2]|{
http://sky@www:801/cgi-bin/finger;xyz?name=shriram;host=nw#top http://sky@www:801/cgi-bin/finger;xyz?name=shriram;host=nw#top
{-1} {2} {3} {4}{---5---------} {6} {----7-------------} {8} {-1} {2} {3} {4}{---5---------} {6} {----7-------------} {8}

View File

@ -187,7 +187,10 @@
(make-element "schemeinput" (list (substring s (cdar spaces) (caar end-spaces)))) (make-element "schemeinput" (list (substring s (cdar spaces) (caar end-spaces))))
(hspace (- (cdar end-spaces) (caar end-spaces))))))))) (hspace (- (cdar end-spaces) (caar end-spaces)))))))))
(define (verbatim s . more) (define (verbatim #:indent [i 0] s . more)
(define indent (if (zero? i)
values
(let ([hs (hspace i)]) (lambda (x) (cons hs x)))))
(define strs (regexp-split #rx"\n" (apply string-append s more))) (define strs (regexp-split #rx"\n" (apply string-append s more)))
(define (str->elts str) (define (str->elts str)
(let ([spaces (regexp-match-positions #rx"(?:^| ) +" str)]) (let ([spaces (regexp-match-positions #rx"(?:^| ) +" str)])
@ -197,8 +200,9 @@
(str->elts (substring str (cdar spaces)))) (str->elts (substring str (cdar spaces))))
(list (make-element 'tt (list str)))))) (list (make-element 'tt (list str))))))
(define (make-line str) (define (make-line str)
(list (make-flow (list (make-paragraph (let* ([line (indent (str->elts str))]
(list (make-element 'tt (str->elts str)))))))) [line (list (make-element 'tt line))])
(list (make-flow (list (make-paragraph line))))))
(make-table #f (map make-line strs))) (make-table #f (map make-line strs)))
(define-syntax indexed-scheme (define-syntax indexed-scheme

View File

@ -634,7 +634,7 @@ control can be placed into struct fields.
As an example, consider the following C code: As an example, consider the following C code:
@verbatim{ @verbatim[#:indent 2]{
typedef struct { int x; char y; } A; typedef struct { int x; char y; } A;
typedef struct { A a; int z; } B; typedef struct { A a; int z; } B;

View File

@ -330,7 +330,7 @@ The built-in container classes include horizontal panels (and panes),
vertical containers, a programmer can achieve most any layout. For vertical containers, a programmer can achieve most any layout. For
example, we can construct a dialog with the following shape: example, we can construct a dialog with the following shape:
@verbatim{ @verbatim[#:indent 2]{
------------------------------------------------------ ------------------------------------------------------
| ------------------------------------- | | ------------------------------------- |
| Your name: | | | | Your name: | | |

View File

@ -21,7 +21,10 @@ When @exec{mzscheme} is run with no command-line arguments (other than
confguration options, like @Flag{j}), then it starts a @tech{REPL} confguration options, like @Flag{j}), then it starts a @tech{REPL}
with a @litchar{> } prompt: with a @litchar{> } prompt:
@verbatim{ Welcome to MzScheme\n > } @verbatim[#:indent 2]{
Welcome to MzScheme
>
}
@margin-note{For information on GNU Readline support, see @margin-note{For information on GNU Readline support, see
@schememodname[readline/rep].} @schememodname[readline/rep].}

View File

@ -18,7 +18,7 @@ executable followed by a module declaration. For example, if
@exec{mzscheme} is installed in @filepath{/usr/local/bin}, then a file @exec{mzscheme} is installed in @filepath{/usr/local/bin}, then a file
containing the following text acts as a ``hello world'' script: containing the following text acts as a ``hello world'' script:
@verbatim{ @verbatim[#:indent 2]{
#! /usr/local/bin/mzscheme #! /usr/local/bin/mzscheme
#lang scheme/base #lang scheme/base
"Hello, world!" "Hello, world!"
@ -39,7 +39,7 @@ executable, a popular alternative is to require that @exec{mzscheme}
is in the user's command path, and then ``trampoline'' using is in the user's command path, and then ``trampoline'' using
@exec{/usr/bin/env}: @exec{/usr/bin/env}:
@verbatim{ @verbatim[#:indent 2]{
#! /usr/bin/env mzscheme #! /usr/bin/env mzscheme
#lang scheme/base #lang scheme/base
"Hello, world!" "Hello, world!"
@ -48,7 +48,7 @@ is in the user's command path, and then ``trampoline'' using
In either case, command-line arguments to a script are available via In either case, command-line arguments to a script are available via
@scheme[current-command-line-arguments]: @scheme[current-command-line-arguments]:
@verbatim{ @verbatim[#:indent 2]{
#! /usr/bin/env mzscheme #! /usr/bin/env mzscheme
#lang scheme/base #lang scheme/base
(printf "Given arguments: ~s\n" (printf "Given arguments: ~s\n"
@ -65,7 +65,7 @@ them using the @scheme[command-line] form provided by
command-line arguments from @scheme[(current-command-line-arguments)] command-line arguments from @scheme[(current-command-line-arguments)]
by default: by default:
@verbatim{ @verbatim[#:indent 2]{
#! /usr/bin/env mzscheme #! /usr/bin/env mzscheme
#lang scheme #lang scheme
@ -91,7 +91,7 @@ that are comments in one language and expressions in the other. This
trampoline is more complicated, but it provides more control over trampoline is more complicated, but it provides more control over
command-line arguments to @scheme{mzscheme}: command-line arguments to @scheme{mzscheme}:
@verbatim|{ @verbatim[#:indent 2]|{
#! /bin/sh #! /bin/sh
#| #|
exec mzscheme -cu "$0" ${1+"$@"} exec mzscheme -cu "$0" ${1+"$@"}

View File

@ -84,8 +84,8 @@ Installs a function to be called on each custodian-registered item and
its closer when MzScheme is about to exit. The registered function its closer when MzScheme is about to exit. The registered function
has the type has the type
@verbatim{ @verbatim[#:indent 2]{
typedef typedef
void (*Scheme_Exit_Closer_Func)(Scheme_Object *o, void (*Scheme_Exit_Closer_Func)(Scheme_Object *o,
Scheme_Close_Custodian_Client *f, Scheme_Close_Custodian_Client *f,
void *d); void *d);

View File

@ -18,7 +18,7 @@ in @cpp{scheme_current_thread->error_buf}. The macro
@cppi{scheme_error_buf} is a shorthand for @cppi{scheme_error_buf} is a shorthand for
@cpp{*scheme_current_thread->error_buf}. @cpp{*scheme_current_thread->error_buf}.
@verbatim{ @verbatim[#:indent 2]{
mz_jmp_buf * volatile save, fresh; mz_jmp_buf * volatile save, fresh;
... ...
save = scheme_current_thread->error_buf; save = scheme_current_thread->error_buf;
@ -84,7 +84,7 @@ visible when implementing a new primitive procedure. When
request by chaining to the previously saved error buffer; otherwise, request by chaining to the previously saved error buffer; otherwise,
call @cppi{scheme_clear_escape}. call @cppi{scheme_clear_escape}.
@verbatim{ @verbatim[#:indent 2]{
mz_jmp_buf * volatile save, fresh; mz_jmp_buf * volatile save, fresh;
save = scheme_current_thread->error_buf; save = scheme_current_thread->error_buf;
scheme_current_thread->error_buf = &fresh; scheme_current_thread->error_buf = &fresh;
@ -120,7 +120,7 @@ exceptions in a variety of situations. It implements the function
application of a thunk. (This code is in application of a thunk. (This code is in
@filepath{collects/mzscheme/examples/catch.c} in the distribution.) @filepath{collects/mzscheme/examples/catch.c} in the distribution.)
@verbatim{ @verbatim[#:indent 2]{
static Scheme_Object *exn_catching_apply, *exn_p, *exn_message; static Scheme_Object *exn_catching_apply, *exn_p, *exn_message;
static void init_exn_catching_apply() static void init_exn_catching_apply()
@ -183,7 +183,7 @@ application of a thunk. (This code is in
In the following example, the above code is used to catch exceptions In the following example, the above code is used to catch exceptions
that occur during while evaluating source code from a string. that occur during while evaluating source code from a string.
@verbatim{ @verbatim[#:indent 2]{
static Scheme_Object *do_eval(void *s, int noargc, Scheme_Object **noargv) static Scheme_Object *do_eval(void *s, int noargc, Scheme_Object **noargv)
{ {
return scheme_eval_string((char *)s, scheme_get_env(scheme_config)); return scheme_eval_string((char *)s, scheme_get_env(scheme_config));

View File

@ -206,7 +206,7 @@ pointer within a function call at any point when a collection can be
triggered. Beware that nested function calls can hide temporary triggered. Beware that nested function calls can hide temporary
pointers; for example, in pointers; for example, in
@verbatim{ @verbatim[#:indent 2]{
scheme_make_pair(scheme_make_pair(scheme_true, scheme_false), scheme_make_pair(scheme_make_pair(scheme_true, scheme_false),
scheme_make_pair(scheme_false, scheme_true)) scheme_make_pair(scheme_false, scheme_true))
} }
@ -216,7 +216,7 @@ a register during the other call to @cpp{scheme_make_pair}; this
pointer must be exposed to the garbage collection and made subject to pointer must be exposed to the garbage collection and made subject to
update. Simply changing the code to update. Simply changing the code to
@verbatim{ @verbatim[#:indent 2]{
tmp = scheme_make_pair(scheme_true, scheme_false); tmp = scheme_make_pair(scheme_true, scheme_false);
scheme_make_pair(tmp, scheme_make_pair(tmp,
scheme_make_pair(scheme_false, scheme_true)) scheme_make_pair(scheme_false, scheme_true))
@ -226,7 +226,7 @@ does not expose all pointers, since @cpp{tmp} must be evaluated before
the second call to @cpp{scheme_make_pair}. In general, the above code the second call to @cpp{scheme_make_pair}. In general, the above code
must be converted to the form must be converted to the form
@verbatim{ @verbatim[#:indent 2]{
tmp1 = scheme_make_pair(scheme_true, scheme_false); tmp1 = scheme_make_pair(scheme_true, scheme_false);
tmp2 = scheme_make_pair(scheme_true, scheme_false); tmp2 = scheme_make_pair(scheme_true, scheme_false);
scheme_make_pair(tmp1, tmp2); scheme_make_pair(tmp1, tmp2);
@ -235,7 +235,7 @@ must be converted to the form
and this is converted form must be instrumented to register @cpp{tmp1} and this is converted form must be instrumented to register @cpp{tmp1}
and @cpp{tmp2}. The final result might be and @cpp{tmp2}. The final result might be
@verbatim{ @verbatim[#:indent 2]{
{ {
Scheme_Object *tmp1 = NULL, *tmp2 = NULL, *result; Scheme_Object *tmp1 = NULL, *tmp2 = NULL, *result;
MZ_GC_DECL_REG(2); MZ_GC_DECL_REG(2);
@ -269,7 +269,7 @@ whereas registering an array of pointers requires three slots. For
example, to register a pointer @cpp{tmp} and an array of 10 example, to register a pointer @cpp{tmp} and an array of 10
@cpp{char*}s: @cpp{char*}s:
@verbatim{ @verbatim[#:indent 2]{
{ {
Scheme_Object *tmp1 = NULL; Scheme_Object *tmp1 = NULL;
char *a[10]; char *a[10];
@ -300,7 +300,7 @@ must be registered with the collector during the entire call to
The name used for a variable need not be immediate. Structure members The name used for a variable need not be immediate. Structure members
can be supplied as well: can be supplied as well:
@verbatim{ @verbatim[#:indent 2]{
{ {
struct { void *s; int v; void *t; } x = {NULL, 0, NULL}; struct { void *s; int v; void *t; } x = {NULL, 0, NULL};
MZ_GC_DECL_REG(2); MZ_GC_DECL_REG(2);
@ -330,7 +330,7 @@ example also illustrates how @cpp{MZ_GC_UNREG} is not needed when
control escapes from the function, such as when control escapes from the function, such as when
@cpp{scheme_signal_error} escapes. @cpp{scheme_signal_error} escapes.
@verbatim{ @verbatim[#:indent 2]{
{ {
Scheme_Object *tmp1 = NULL, *tmp2 = NULL; Scheme_Object *tmp1 = NULL, *tmp2 = NULL;
mzchar *a, *b; mzchar *a, *b;
@ -372,7 +372,7 @@ declarations for the block's variables. In that case, the nested
@cpp{MZ_GC_DECL_REG} must have its own @cpp{MZ_GC_REG} and @cpp{MZ_GC_DECL_REG} must have its own @cpp{MZ_GC_REG} and
@cpp{MZ_GC_UNREG} calls. @cpp{MZ_GC_UNREG} calls.
@verbatim{ @verbatim[#:indent 2]{
{ {
Scheme_Object *accum = NULL; Scheme_Object *accum = NULL;
MZ_GC_DECL_REG(1); MZ_GC_DECL_REG(1);
@ -404,7 +404,7 @@ must be unregistered before it goes out of scope. The
@cppi{MZ_GC_NO_VAR_IN_REG} macro can be used to unregister a variable @cppi{MZ_GC_NO_VAR_IN_REG} macro can be used to unregister a variable
or to initialize a slot as having no variable. or to initialize a slot as having no variable.
@verbatim{ @verbatim[#:indent 2]{
{ {
Scheme_Object *accum = NULL; Scheme_Object *accum = NULL;
MZ_GC_DECL_REG(2); MZ_GC_DECL_REG(2);
@ -527,7 +527,7 @@ The following macros can be used (with care!) to navigate
Example: Example:
@verbatim{ @verbatim[#:indent 2]{
int foo(int c, ...) { int foo(int c, ...) {
int r = 0; int r = 0;
XFORM_START_SKIP; XFORM_START_SKIP;
@ -555,7 +555,7 @@ The following macros can be used (with care!) to navigate
Example: Example:
@verbatim{ @verbatim[#:indent 2]{
int foo(int c, ...) { int foo(int c, ...) {
int r = 0; int r = 0;
{ {
@ -699,7 +699,7 @@ Overrides the GC's auto-determined stack base, and/or disables the
The following example shows a typical use for setting the stack base: The following example shows a typical use for setting the stack base:
@verbatim{ @verbatim[#:indent 4]{
int main(int argc, char **argv) { int main(int argc, char **argv) {
int dummy; int dummy;
scheme_set_stack_base(&dummy, 0); scheme_set_stack_base(&dummy, 0);
@ -777,7 +777,7 @@ finalizers are registered for @var{p}.
The @cpp{fnl_proc} type is not actually defined, but it is equivalent The @cpp{fnl_proc} type is not actually defined, but it is equivalent
to to
@verbatim{ typedef void (*fnl_proc)(void *p, void *data)} @verbatim[#:indent 2]{typedef void (*fnl_proc)(void *p, void *data)}
The @var{f} argument is the callback function; when it is called, it The @var{f} argument is the callback function; when it is called, it
will be passed the value @var{p} and the data pointer @var{data}; will be passed the value @var{p} and the data pointer @var{data};
@ -896,7 +896,7 @@ Forces an immediate garbage-collection.}
Each of the three procedures takes a pointer and returns an integer: Each of the three procedures takes a pointer and returns an integer:
@verbatim{ @verbatim[#:indent 2]{
typedef int (*Size_Proc)(void *obj); typedef int (*Size_Proc)(void *obj);
typedef int (*Mark_Proc)(void *obj); typedef int (*Mark_Proc)(void *obj);
typedef int (*Fixup_Proc)(void *obj); typedef int (*Fixup_Proc)(void *obj);

View File

@ -168,7 +168,7 @@ tables) can be anything.
The public portion of the @cppi{Scheme_Hash_Table} type is defined The public portion of the @cppi{Scheme_Hash_Table} type is defined
roughly as follows: roughly as follows:
@verbatim{ @verbatim[#:indent 2]{
typedef struct Scheme_Hash_Table { typedef struct Scheme_Hash_Table {
Scheme_Object so; /* so.type == scheme_hash_table_type */ Scheme_Object so; /* so.type == scheme_hash_table_type */
/* ... */ /* ... */
@ -234,7 +234,7 @@ two are the same as for hash tables. The last is like
The public portion of the @cppi{Scheme_Bucket_Table} type is defined The public portion of the @cppi{Scheme_Bucket_Table} type is defined
roughly as follows: roughly as follows:
@verbatim{ @verbatim[#:indent 2]{
typedef struct Scheme_Bucket_Table { typedef struct Scheme_Bucket_Table {
Scheme_Object so; /* so.type == scheme_variable_type */ Scheme_Object so; /* so.type == scheme_variable_type */
/* ... */ /* ... */
@ -286,7 +286,7 @@ Returns the current value for @var{key} in @var{table}, or @cpp{NULL}
Returns the bucket for @var{key} in @var{table}. The Returns the bucket for @var{key} in @var{table}. The
@cppi{Scheme_Bucket} structure is defined as: @cppi{Scheme_Bucket} structure is defined as:
@verbatim{ @verbatim[#:indent 2]{
typedef struct Scheme_Bucket { typedef struct Scheme_Bucket {
Scheme_Object so; /* so.type == scheme_bucket_type */ Scheme_Object so; /* so.type == scheme_bucket_type */
/* ... */ /* ... */

View File

@ -78,7 +78,7 @@ the global variable is undefined.
The @cppi{Scheme_Bucket} structure is defined as: The @cppi{Scheme_Bucket} structure is defined as:
@verbatim{ @verbatim[#:indent 2]{
typedef struct Scheme_Bucket { typedef struct Scheme_Bucket {
Scheme_Object so; /* so.type = scheme_variable_type */ Scheme_Object so; /* so.type = scheme_variable_type */
void *key; void *key;

View File

@ -160,7 +160,7 @@ registered using @cppi{scheme_register_extension_global} (see
As an example, the following C code defines an extension that returns As an example, the following C code defines an extension that returns
@scheme["hello world"] when it is loaded: @scheme["hello world"] when it is loaded:
@verbatim{ @verbatim[#:indent 2]{
#include "escheme.h" #include "escheme.h"
Scheme_Object *scheme_initialize(Scheme_Env *env) { Scheme_Object *scheme_initialize(Scheme_Env *env) {
return scheme_make_utf8_string("hello world"); return scheme_make_utf8_string("hello world");

View File

@ -47,7 +47,7 @@ substantial or unbounded work should occasionally call
Creates a primitive procedure value, given the C function pointer Creates a primitive procedure value, given the C function pointer
@var{prim}. The form of @var{prim} is defined by: @var{prim}. The form of @var{prim} is defined by:
@verbatim{ @verbatim[#:indent 2]{
typedef Scheme_Object *(Scheme_Prim)(int argc, typedef Scheme_Object *(Scheme_Prim)(int argc,
Scheme_Object **argv); Scheme_Object **argv);
} }
@ -94,8 +94,8 @@ in @var{vals}; when the C function @var{prim} is invoked, the
generated primitive is passed as the last parameter. The form of generated primitive is passed as the last parameter. The form of
@var{prim} is defined by: @var{prim} is defined by:
@verbatim{ @verbatim[#:indent 2]{
typedef typedef
Scheme_Object *(Scheme_Prim_Closure_Proc)(int argc, Scheme_Object *(Scheme_Prim_Closure_Proc)(int argc,
Scheme_Object **argv, Scheme_Object **argv,
Scheme_Object *prim); Scheme_Object *prim);
@ -117,7 +117,7 @@ Creates an old-style primitive procedure value; when the C function
@var{prim} is invoked, @var{data} is passed as the first parameter. @var{prim} is invoked, @var{data} is passed as the first parameter.
The form of @var{prim} is defined by: The form of @var{prim} is defined by:
@verbatim{ @verbatim[#:indent 2]{
typedef typedef
Scheme_Object *(Scheme_Closed_Prim)(void *data, int argc, Scheme_Object *(Scheme_Closed_Prim)(void *data, int argc,
Scheme_Object **argv); Scheme_Object **argv);

View File

@ -85,7 +85,7 @@ of ``fuel'' that has been consumed since the last call to
@scheme[vector->list] consumes a unit of fuel for each created cons @scheme[vector->list] consumes a unit of fuel for each created cons
cell: cell:
@verbatim{ @verbatim[#:indent 2]{
Scheme_Object *scheme_vector_to_list(Scheme_Object *vec) Scheme_Object *scheme_vector_to_list(Scheme_Object *vec)
{ {
int i; int i;
@ -173,7 +173,7 @@ class. (Any regular event-loop-based callback is appropriate.) The
@cpp{scheme_notify_multithread} pointer is set to @cpp{scheme_notify_multithread} pointer is set to
@cpp{MrEdInstallThreadTimer}. (MrEd no longer work this way, however.) @cpp{MrEdInstallThreadTimer}. (MrEd no longer work this way, however.)
@verbatim{ @verbatim[#:indent 2]{
class MrEdThreadTimer : public wxTimer class MrEdThreadTimer : public wxTimer
{ {
public: public:
@ -240,7 +240,7 @@ ready on any of those file descriptors, the callbacks are removed and
For example, the X Windows version of MrEd formerly set For example, the X Windows version of MrEd formerly set
@cpp{scheme_wakeup_on_input} to this @cpp{MrEdNeedWakeup}: @cpp{scheme_wakeup_on_input} to this @cpp{MrEdNeedWakeup}:
@verbatim{ @verbatim[#:indent 2]{
static XtInputId *scheme_cb_ids = NULL; static XtInputId *scheme_cb_ids = NULL;
static int num_cbs; static int num_cbs;
@ -350,7 +350,7 @@ The following function @cpp{mzsleep} is an appropriate
@cpp{scheme_sleep} function for most any Unix or Windows application. @cpp{scheme_sleep} function for most any Unix or Windows application.
(This is approximately the built-in sleep used by Scheme.) (This is approximately the built-in sleep used by Scheme.)
@verbatim{ @verbatim[#:indent 2]{
void mzsleep(float v, void *fds) void mzsleep(float v, void *fds)
{ {
if (v) { if (v) {
@ -472,7 +472,7 @@ Returns @cpp{1} if a break from @scheme[break-thread] or @cpp{scheme_break_threa
The @cpp{Scheme_Ready_Fun} and @cpp{Scheme_Needs_Wakeup_Fun} The @cpp{Scheme_Ready_Fun} and @cpp{Scheme_Needs_Wakeup_Fun}
types are defined as follows: types are defined as follows:
@verbatim{ @verbatim[#:indent 2]{
typedef int (*Scheme_Ready_Fun)(Scheme_Object *data); typedef int (*Scheme_Ready_Fun)(Scheme_Object *data);
typedef void (*Scheme_Needs_Wakeup_Fun)(Scheme_Object *data, typedef void (*Scheme_Needs_Wakeup_Fun)(Scheme_Object *data,
void *fds); void *fds);
@ -623,7 +623,7 @@ Under Unix, and Mac OS X, this function has no effect.}
The argument types are defined as follows: The argument types are defined as follows:
@verbatim{ @verbatim[#:indent 2]{
typedef int (*Scheme_Ready_Fun)(Scheme_Object *data); typedef int (*Scheme_Ready_Fun)(Scheme_Object *data);
typedef void (*Scheme_Needs_Wakeup_Fun)(Scheme_Object *data, typedef void (*Scheme_Needs_Wakeup_Fun)(Scheme_Object *data,
void *fds); void *fds);
@ -649,7 +649,7 @@ Like @cpp{scheme_add_evt}, but for objects where waiting is based
on a semaphore. Instead of @var{ready} and @var{wakeup} functions, on a semaphore. Instead of @var{ready} and @var{wakeup} functions,
the @var{getsema} function extracts a semaphore for a given object: the @var{getsema} function extracts a semaphore for a given object:
@verbatim{ @verbatim[#:indent 2]{
typedef typedef
Scheme_Object *(*Scheme_Wait_Sema_Fun)(Scheme_Object *data, Scheme_Object *(*Scheme_Wait_Sema_Fun)(Scheme_Object *data,
int *repost); int *repost);

View File

@ -684,7 +684,7 @@ Installs a printer to be used for printing (or writing or displaying)
The type of @var{printer} is defined as follows:\cppIndex{scheme_Type_Printer} The type of @var{printer} is defined as follows:\cppIndex{scheme_Type_Printer}
@verbatim{ @verbatim[#:indent 2]{
typedef void (*Scheme_Type_Printer)(Scheme_Object *v, int dis, typedef void (*Scheme_Type_Printer)(Scheme_Object *v, int dis,
Scheme_Print_Params *pp); Scheme_Print_Params *pp);
} }
@ -732,8 +732,8 @@ is only applied to values that both have tag @var{type}.
The type of @var{equalp}, @var{hash1}, and @var{hash2} are defined as The type of @var{equalp}, @var{hash1}, and @var{hash2} are defined as
follows: follows:
@verbatim{ @verbatim[#:indent 2]{
typedef int (*Scheme_Equal_Proc)(Scheme_Object* obj1, typedef int (*Scheme_Equal_Proc)(Scheme_Object* obj1,
Scheme_Object* obj2, Scheme_Object* obj2,
void* cycle_data); void* cycle_data);
typedef long (*Scheme_Primary_Hash_Proc)(Scheme_Object* obj, typedef long (*Scheme_Primary_Hash_Proc)(Scheme_Object* obj,

View File

@ -69,7 +69,7 @@ DrScheme.}
@link[url:download-drscheme]{Download PLT Scheme}, install, and then @link[url:download-drscheme]{Download PLT Scheme}, install, and then
start @exec{mzscheme} with no command-line arguments: start @exec{mzscheme} with no command-line arguments:
@verbatim{ @verbatim[#:indent 2]{
$ mzscheme $ mzscheme
Welcome to MzScheme Welcome to MzScheme
> >

View File

@ -35,7 +35,7 @@ called from Scheme as
or with an @elem["@"] expression as or with an @elem["@"] expression as
@verbatim|{ @verbatim[#:indent 2]|{
@title[#:tag "how-to"]{How to Design @italic{Great} Programs} @title[#:tag "how-to"]{How to Design @italic{Great} Programs}
}| }|

View File

@ -36,7 +36,7 @@ Some functions @deftech{decode} a sequence of @scheme[_pre-flow] or
function accepts any number of @scheme[_pre-content] arguments, so function accepts any number of @scheme[_pre-content] arguments, so
that in that in
@verbatim|{ @bold{``apple''}}| @verbatim[#:indent 2]|{@bold{``apple''}}|
the @litchar{``apple''} argument is decoded to use fancy quotes, and the @litchar{``apple''} argument is decoded to use fancy quotes, and
then it is bolded. then it is bolded.

View File

@ -25,7 +25,7 @@ To document a collection or @|PLaneT| package:
@filepath{manual.scrbl}.} @filepath{manual.scrbl}.}
@item{Start @filepath{manual.scrbl} like this: @item{Start @filepath{manual.scrbl} like this:
@verbatim|{ @verbatim[#:indent 2]|{
#lang scribble/doc #lang scribble/doc
@(require scribble/manual) @(require scribble/manual)
@ -135,7 +135,7 @@ that precede text to typeset.
Thus, Thus,
@verbatim|{ @verbatim[#:indent 2]|{
@title{My Library} @title{My Library}
@scheme[(list 'testing 1 2 3)] @scheme[(list 'testing 1 2 3)]
@section[#:tag "here"]{You Are Here} @section[#:tag "here"]{You Are Here}
@ -189,7 +189,7 @@ preferred mechanism for linking to information outside of a single
document. Such links require no information about where and how a document. Such links require no information about where and how a
binding is documented elsewhere: binding is documented elsewhere:
@verbatim|{ @verbatim[#:indent 2]|{
#lang scribble/doc #lang scribble/doc
@(require scribble/manual @(require scribble/manual
(for-label scheme)) (for-label scheme))
@ -204,7 +204,7 @@ so it ignores the source formatting of the expression. The
@scheme[schemeblock] form, in contrast, typesets inset Scheme code, @scheme[schemeblock] form, in contrast, typesets inset Scheme code,
and it preserves the expression's formatting from the document source. and it preserves the expression's formatting from the document source.
@verbatim|{ @verbatim[#:indent 2]|{
#lang scribble/doc #lang scribble/doc
@(require scribble/manual @(require scribble/manual
(for-label scheme)) (for-label scheme))
@ -234,7 +234,7 @@ hyperlink with text other than the section title.
The following example illustrates section hyperlinks: The following example illustrates section hyperlinks:
@verbatim|{ @verbatim[#:indent 2]|{
#lang scribble/doc #lang scribble/doc
@(require scribble/manual @(require scribble/manual
(for-label scheme)) (for-label scheme))
@ -273,7 +273,7 @@ prefix, which is based on the target document's main source file. The
following example links to a section in the PLT Scheme reference following example links to a section in the PLT Scheme reference
manual: manual:
@verbatim|{ @verbatim[#:indent 2]|{
#lang scribble/doc #lang scribble/doc
@(require scribble/manual @(require scribble/manual
(for-label scheme)) (for-label scheme))
@ -307,7 +307,7 @@ to import the binding information of @filepath{helper.ss}. Then add a
binding with the module path as seen by a reader. Finally, use binding with the module path as seen by a reader. Finally, use
@scheme[defproc] to document the procedure: @scheme[defproc] to document the procedure:
@verbatim|{ @verbatim[#:indent 2]|{
#lang scribble/doc #lang scribble/doc
@(require scribble/manual @(require scribble/manual
(for-label scheme (for-label scheme
@ -379,7 +379,7 @@ bindings introduced into the document source by
from the previous section, then @filepath{helper.ss} must be imported both from the previous section, then @filepath{helper.ss} must be imported both
via @scheme[require-for-label] and @scheme[require]: via @scheme[require-for-label] and @scheme[require]:
@verbatim|{ @verbatim[#:indent 2]|{
#lang scribble/doc #lang scribble/doc
@(require scribble/manual @(require scribble/manual
scribble/eval ; <--- added scribble/eval ; <--- added
@ -415,7 +415,7 @@ as a sub-part of the enclosing part.
In @filepath{manual.scrbl}: In @filepath{manual.scrbl}:
@verbatim|{ @verbatim[#:indent 2]|{
#lang scribble/doc #lang scribble/doc
@(require scribble/manual) @(require scribble/manual)
@ -430,7 +430,7 @@ In @filepath{manual.scrbl}:
In @filepath{cows.scrbl}: In @filepath{cows.scrbl}:
@verbatim|{ @verbatim[#:indent 2]|{
#lang scribble/doc #lang scribble/doc
@(require scribble/manual) @(require scribble/manual)
@ -441,7 +441,7 @@ In @filepath{cows.scrbl}:
In @filepath{aardvarks.scrbl}: In @filepath{aardvarks.scrbl}:
@verbatim|{ @verbatim[#:indent 2]|{
#lang scribble/doc #lang scribble/doc
@(require scribble/manual @(require scribble/manual
(for-label scheme (for-label scheme
@ -471,7 +471,7 @@ sub-sections.
Revising @filepath{cows.scrbl} from the previous section: Revising @filepath{cows.scrbl} from the previous section:
@verbatim|{ @verbatim[#:indent 2]|{
#lang scribble/doc #lang scribble/doc
@(require scribble/manual) @(require scribble/manual)

View File

@ -27,7 +27,7 @@ alone, but @litchar["@"] forms can escape to S-expression mode.
A module written as A module written as
@verbatim|{ @verbatim[#:indent 2]|{
#lang scribble/doc #lang scribble/doc
@(require scribble/manual) @(require scribble/manual)

View File

@ -131,7 +131,8 @@ representation of literal text. Use this when you have to talk about
the individual characters in a stream of text, as as when documenting the individual characters in a stream of text, as as when documenting
a reader extension.} a reader extension.}
@defproc[(verbatim [str string?]) flow-element?]{Typesets @scheme[str] @defproc[(verbatim [#:indent indent integer? 0] [str string?] ...)
flow-element?]{Typesets @scheme[str]
as a table/paragraph in typewriter font with the linebreaks specified as a table/paragraph in typewriter font with the linebreaks specified
by newline characters in @scheme[str]. ``Here strings'' are often by newline characters in @scheme[str]. ``Here strings'' are often
useful with @scheme[verbatim].} useful with @scheme[verbatim].}

View File

@ -201,7 +201,7 @@ following spaces (or tabs) are part of the comment (similar to
Tip: if you're editing in a Scheme-aware editor (like DrScheme or Tip: if you're editing in a Scheme-aware editor (like DrScheme or
Emacs), it is useful to comment out blocks like this: Emacs), it is useful to comment out blocks like this:
@verbatim|==={ @verbatim[#:indent 2]|==={
@;{ @;{
... ...
;} ;}

View File

@ -57,14 +57,14 @@ when using @scheme[scheme], especially outside of @scheme[defproc] or
@scheme[defform]. Prefix a meta-variable with @litchar{_}; for @scheme[defform]. Prefix a meta-variable with @litchar{_}; for
example, example,
@verbatim|{ @scheme[(rator-expr rand-expr ...)]}| @verbatim[#:indent 2]|{@scheme[(rator-expr rand-expr ...)]}|
would be the wrong way to refer to the grammar of a function call, would be the wrong way to refer to the grammar of a function call,
because it produces @scheme[(rator-expr rand-expr ...)], where because it produces @scheme[(rator-expr rand-expr ...)], where
@schemeidfont{rator-expr} and @schemeidfont{rand-expr} are @schemeidfont{rator-expr} and @schemeidfont{rand-expr} are
typeset as variables. The correct description is typeset as variables. The correct description is
@verbatim|{ @scheme[(_rator-expr _rand-expr ...)]}| @verbatim[#:indent 2]|{@scheme[(_rator-expr _rand-expr ...)]}|
which produces @scheme[(_rator-expr _rand-expr ...)], where which produces @scheme[(_rator-expr _rand-expr ...)], where
@schemeidfont{rator-expr} @schemeidfont{rand-expr} are typeset as @schemeidfont{rator-expr} @schemeidfont{rand-expr} are typeset as

View File

@ -34,15 +34,15 @@ offset of an embedded pict in a larger pict.
In addition to its drawing part, a pict has the following In addition to its drawing part, a pict has the following
@deftech{bounding box} structure: @deftech{bounding box} structure:
@verbatim{ @verbatim[#:indent 7]{
w w
------------------ ------------------
| | a \ | | a \
|------------------| | |------------------| |
| | | h | | | h
|----------last----| | |----------last----| |
| | d / | | d /
------------------ ------------------
} }
That is, the bounding box has a width @math{w} and a height That is, the bounding box has a width @math{w} and a height