Fix#131:
- Raise a syntax error when bogus mode arguments are given.
- Fix a bug where `extend-final` and `augment-final` are not recognized
- Document the `public` mode which was already supported but not
documented.
- Clarify the default mode when `maybe-mode` is not given.
The result of `load-xref` with an on-demand function only made sense
for a single use context, such as a single rendering request. Add an
on-demand callback that can work right for multiple uses.
* scribble/srcdoc: add `class*-doc` and `class-doc` provide forms.
* Add missing require of racket/class which contains the class? predicate.
* Add @history stanza to class*-doc and class-doc scribblings and bump version number in scribble-lib/info.rkt to 1.30.
Also, correct the documentation about the interaction of
`#:sep` and property lists, and make the previous column's
properties used consistently for a separator column.
Add a `link-render-style` syntax property to control the rendering of
section links --- so that HTML output can say "section <number>", and
so that Latex/PDF output can have just the section number hperlinked
(as in acmart).
It seems unfortunate that the link rendering is so hardwired into each
rendering back-end, but maybe this can be made even more configurable
in the future. Meanwhile, Latex macros already provide an additional
layer of rendering control (but not enough, it turns out, to easily
perform the same adjustments as the 'number mode that matches acmart).
For `scriblib/figure` make `figure-ref` and `Figure-ref` similarly
sensitive to the link-rendering style.
For `scriblib/autobib`, change the hyperlinking of references
so that the color can be overridden, and make `scribble/acmart`
override it.
If a value is convertible to 'text, then use that conversion.
Otherwise, convert using `write` instead of always using "???".
Also, correct documentation to include convertible values among
the valid forms of content, and document the new conversion rules
there.
These commands work like natbib's citeauthor and citeyear commands,
and facilities making possessive citations. For example:
> Thanks to @(cite-author foo)'s (@(cite-year foo)) paper on stuff...
These identifiers are added with `define-cite` as keywords, and thus
can be omitted with no downside for backwards compatibility.
@(define-cite cite citet generate-bib
#:cite-author cite-author
#:cite-year cite-year)
Also in this commit:
* Add documentation.
* Add tests for autobib
* Bump version and add history.
In places where module names are typeset, such as `racketmodname`,
there's no way to disable the special treatment of `_` as an
identifier prefix as in `racket`. Even using
`make-element-id-transformer` doesn't work, because the module-name
datum is explcitly disconnected from binding withing `racketmodname`.
The existing scribble/acmart language in this repo felt more like latex than Scribble. This package brings scribble/acmart more inline with the existing `scribble/acmart` package that was already on the package server. In particular, this commit:
* Remove maketitle from scribble/acmart
* Extends the title form to also have the fields in `scribble/base`'s title.
* Support author information. (Like scribble/sigplans authorinfo)
* Removed unneeded functions now redundant due to the author function. Namely, affiliation based ones.
* Factor out common functions to scribble/acmart and scribble/base into private module.
These functions might make sense to be public, but since they were already private in base
I thought it made sense to leave them that way. Additionally, it might make sense to have the
file be something other than private/tag, as private/tag currently requires tag, which is
different than the normal way where its tag that requires private/tag.
* Add short-title to scribble/latex-properties
* Adds an `command-optional` property which is like `command-extras`, but is a single
optional argument placed before the mandatory ones.
* Create email, affiliation, and institution structs so that authors can have multiple of each.
* Add/improve documentation and history (and bump version number).
When an expression in `examples` or `interactions` raises an
exception, the error message is rendered as part of the documentation.
Now, however, unless the expression is wrapped with `eval:error`, an
error is also logged.
Logging an error is a compromise between backward compatibility (for
documents that rely on undeclared but expected errors) and making a
document fail completely (which would be nicer when an error is not
expected).