scribble-enhanced/scribble-doc/scriblib/scribblings/figure.scrbl
2014-12-02 00:54:52 -05:00

130 lines
4.5 KiB
Racket

#lang scribble/manual
@(require (for-label scribble/core
scribble/decode
scriblib/figure
scheme/base
scheme/contract))
@(define-syntax-rule (sn s) @racket[s])
@title[#:tag "figure"]{Figures}
@defmodule[scriblib/figure]
@deftogether[(
@defproc[(figure [tag string?] [caption content?]
[p pre-flow?] ...
[#:style style style? center-figure-style]
[#:continue? continue? any/c #f])
block?]
@defproc[(figure* [tag string?] [caption content?]
[p pre-flow?] ...
[#:style style style? center-figure-style]
[#:continue? continue? any/c #f])
block?]
@defproc[(figure** [tag string?] [caption content?]
[p pre-flow?] ...
[#:style style style? center-figure-style]
[#:continue? continue? any/c #f])
block?]
@defproc[(figure-here [tag string?] [caption content?]
[pre-flow pre-flow?] ...
[#:style style style? center-figure-style]
[#:continue? continue? any/c #f])
block?]
)]{
Creates a figure. The given @racket[tag] is for use with
@racket[figure-ref] or @racket[Figure-ref]. The @racket[caption] is an
element. The @racket[pre-flow] is decoded as a flow.
For HTML output, the @racket[figure] and @racket[figure*] functions
are the same, while @racket[figure**] allows the content to be wider
than the document body. For two-column Latex output, @racket[figure*]
and @racket[figure**] generate a figure that spans columns.
For Latex output, @racket[figure-here] generates a figure to be included at
the position in the output text where the @racket[figure-here] occurs
in the source text. For HTML output, all @racket[figure] variants
place the figure where the use appears in the source text.
By default, @racket[style] is set so that the content of the figure is
centered. Use @racket[left-figure-style], @racket[center-figure-style],
or @racket[right-figure-style] to specify the alignment.
If @racket[continue?] is a true value, then the figure counter is not
incremented.}
@deftogether[(
@defthing[left-figure-style style?]
@defthing[center-figure-style style?]
@defthing[right-figure-style style?]
@defthing[left style?]
)]{
Implements figure alignments.
The @racket[left] binding is a synonym for @racket[left-figure-style],
provided for backward compatibility.}
@defproc[(figure-ref [tag string?] ...+) element?]{
Generates a reference to one or more figures, using a lowercase word ``figure''.}
@defproc[(Figure-ref [tag string?] ...+) element?]{
Generates a reference to one or more figures, capitalizing the word ``Figure''.}
@defproc[(Figure-target [tag string?]
[#:continue? continue? any/c #f])
element?]{
Generates a new figure label. This function is normally not used
directly, since it is used by @racket[figure].}
@defproc[(suppress-floats) element?]{
Produces an empty element that renders in Latex as
@tt{\suppressfloats}, which discourages the placement of figures in
the column or page of the surrounding text.}
@section{Configuring Output}
Output uses the following style names, which can be adjusted in an
overriding @filepath{.css} or @filepath{.tex} specification:
@itemize[
@item{@sn{Figure}, @sn{FigureMulti}, @sn{FigureMultiWide}, or
@sn{HereFigure} --- used for the outer of three
@racket[nested-flow]s for a figure, depending on whether
@racket[figure], @racket[figure*], @racket[figure**], or
@racket[figure-here] is used to generate the figure.}
@item{@sn{Leftfigure}, @sn{Centerfigure}, or @sn{Rightfigure} ---
used for the middle of three @racket[nested-flow]s for a
figure, depending on the specified style.}
@item{@sn{FigureInside} --- used for the inner of three
@racket[nested-flow]s for a figure.}
@item{@sn{Legend} --- Wraps the caption for a figure.}
@item{@sn{LegendContinued} --- Wraps the caption for a figure that
does not increment the figure counter.}
@item{@sn{FigureTarget} --- Wraps the label anchor and text within a
figure's caption. For Latex output, the corresponding command
is given a second argument, which is just the generated label
(used with @tt{\label} in the command's first argument).}
@item{@sn{FigureRef} --- Wraps a reference to a figure. For Latex
output, the corresponding command is given a second argument,
which is just the target label.}
]