A run of Unicode code points now needs one pair of carets, not one pair
each: ^9053 53EF 9053^ renders the characters adjacently, and a single
character inside such a run stands for itself. An invalid code point is
an error naming the position that wrote it, rather than an apology
rendered into the finished document; noncharacters are refused alongside
surrogates; and a code point that lands on a Klammertext special is safe
through the re-reads that assemble a document. The character tables now
produce the precomposed form, so a diacritic written as ^a" and one typed
directly are the same text to a search or a copy-paste.
"kdesc -u" describes how to write a Unicode character, with tables of
glyphs beside the codes that produce them. It is new and not yet
complete: it predates the sequence form and the typeface klammer below.
A typeface and a style are no longer both called "font". A typeface is a
family resolved by name; a style code is the one letter naming a type
style. So @document takes :serif_typeface and its siblings, a table takes
:style, captions take :caption_style and :caption_size, the uniform scale
is :text_scale, and the command is "kdesc --typeface". This renames
arguments a document may already use; an old name is a located error
rather than a silent omission.
@typeface sets a passage in another typeface for the length of that
passage:
@typeface Noto Sans Egyptian Hieroglyphs | ^132AA 133CF^ :scale 1.5 @
Writing the klammer is the whole declaration -- the document resolves the
typeface, embeds it in what it produces, and carries its license along.
Two typefaces for scripts no text font covers now ship with Klammertext:
Noto Sans Egyptian Hieroglyphs and Noto Sans Cuneiform. Every typeface in
the distribution now carries its license file.
(from dev 61e598698891)
83 lines
1.6 KiB
Plaintext
83 lines
1.6 KiB
Plaintext
@@@argtype document_structure |
|
|
Structure of a document: plain, article, or book
|
|
:pattern plain^|article^|book
|
|
:default plain
|
|
@@@
|
|
|
|
|
|
@@document.k
|
|
:title
|
|
:subtitle
|
|
:page_title
|
|
:author
|
|
|
|
:date
|
|
:version
|
|
:logo
|
|
:favicon
|
|
|
|
#[
|
|
:nav.bool false
|
|
:toc.bool false
|
|
]#
|
|
|
|
:structure.document_structure
|
|
|
|
:text
|
|
:files
|
|
:cache.bool true
|
|
|
|
:css_text
|
|
:css_files
|
|
:frame_background_color black
|
|
:frame_text_color white
|
|
:nav_background_color rgb(80%,85%,90%)
|
|
:nav_text_color black
|
|
:js_text
|
|
:js_files
|
|
|
|
:include_sks_css.bool true
|
|
:include_sks_js.bool true
|
|
:include_fonts.bool true
|
|
|
|
:serif_typeface Crimson Pro
|
|
:sans_typeface Open Sans
|
|
:mono_typeface Inconsolata
|
|
:text_scale 1.0
|
|
|
|
:landscape.bool.tex false
|
|
:paper_size..tex a4paper
|
|
:leading.float.tex 1.05
|
|
:point_size.int.tex 11
|
|
:ragged_right.bool.tex false
|
|
:cover..tex
|
|
:prolog..tex
|
|
:two_column.bool.tex false
|
|
:copyright
|
|
:bottom
|
|
:use_pages_dir.bool.html true
|
|
:create_output_directory.bool true
|
|
:output_directory_name
|
|
:resources_in_file.bool false
|
|
: Top-level document structure
|
|
@@
|
|
|
|
@@document.html,tex :: @eval :cpp *KLAMMERTEXT_HOME*/sks/document/document document @ @@
|
|
|
|
# The following definition of @document.txt is not adequate (it ignores :files,
|
|
# for example), but it enables tests of other txt klammers for now. When one of
|
|
# the arguments is empty, the justifcation postprocess should remove multiple
|
|
# lines, but __VSPACE__ inserts a space character, which prevents the lines
|
|
# removal from the justification function. You can also see the extra space
|
|
# before the *subtitle* value.
|
|
|
|
@@document.txt ::
|
|
@eval "*title*".upper() @ @nl@
|
|
*subtitle*
|
|
|
|
*author* @nl@
|
|
*date*
|
|
|
|
*text*
|
|
@@
|