Files
klammertext/sks/target/target.k
T

91 lines
2.9 KiB
Plaintext
Raw Normal View History

#[
The targets in the SKS use the LaTeX convention for converting ASCII
characters into standard typographical characters. This is done
by LaTeX by default; other targets must use the transforms parameter
of Parameter_set, as defined for the m_parameters variable of the
Target_registry class. (See file target_registry.cpp.)
The LaTeX transformations supported by the SKS are:
-- -> en-dash
--- -> em-dash
` -> open single quote
' -> close single quote
`` -> open double quote
'' -> close double quote
~ -> non-breaking space
"^" before any punctuation character quotes it (an engine rule, not an SKS
one): the character reaches the output literally, taking no part in the
transforms above -- ^-^- writes two plain hyphens (a --flag in prose), ^~ a
plain tilde. The one exception is the apostrophe: "^" before it opens a
literal span instead (a literal apostrophe is ^0027^), and writing that
pair even in THIS comment would open one -- the span sentinels are placed
before text removal. A target where the raw character would
still be re-interpreted declares its rendering with :resolve -- the tex
target maps a quoted hyphen to {-} (a bare -- in .tex re-forms TeX's dash
ligature) and a quoted tilde to \textasciitilde{} (a raw ~ is TeX's
non-breaking space). Verbatim text (@c, @code, ^'...'^) never needs any
of this: neither the transforms nor the quoting reach it.
]#
@@@state Target_txt_width
:desc Width of the text in the plain text target (txt)
:value 72
@@@
@@@state Target_txt_indent
:desc Width of indentation in the plain text target (txt)
:value 3
@@@
# The txt target is not fully implemented in the SKS yet.
@@@target txt | Plain text with formatting |
-- - |
--- -- |
`` " |
'' " |
` ` |
' ' |
~ ^0020^
:after_apply
phases.txt_format_footnotes ;
phases.txt_insert_captions ;
phases.txt_justify_blocks
@@@
@@@target html | HTML page
# :escape < &lt; & &amp; |
|
--- &^#x2014; |
-- &^#x2013; |
`` “ |
'' ” |
` ‘ |
' ’ |
~ &^#160;
:after_apply
phases.html_format_footnotes
@@@
# No transforms: LaTeX applies the input conventions itself. The :resolve
# entries say how a QUOTED character renders where the raw character would
# still be re-interpreted by TeX: ^- resolves to {-}, not a bare -, or the
# hyphens re-form a run and the dash ligature turns ^-^- into an en-dash;
# ^~ resolves to \textasciitilde{}, since a raw ~ is TeX's non-breaking
# space. Other quoted punctuation either has an :escape entry (its marker
# takes the escape replacement: ^$ renders as \$) or decodes to the raw
# character.
@@@target tex | LaTeX
:escape \ \textbackslash{} & \& { \{ } \} $ \$ % \% _ \_ ^# \^# ^^ \textasciicircum{}
:resolve - {-} ~ \textasciitilde{}
@@@
@@@target pdf | PDF from LaTeX
:includes tex
:after_apply
^:cpp *KLAMMERTEXT_HOME*/sks/document/document tex_to_pdf
@@@