Added post-processing commands for patterns
This commit is contained in:
parent
2cf1baa6f1
commit
717329f449
36 changed files with 1345 additions and 2056 deletions
|
@ -24,7 +24,6 @@ typedef struct inweb_instructions {
|
|||
int functions_switch; /* |-functions|: print catalogue of functions within sections */
|
||||
int structures_switch; /* |-structures|: print catalogue of structures within sections */
|
||||
int advance_switch; /* |-advance-build|: advance build file for web */
|
||||
int open_pdf_switch; /* |-open-pdf|: open any woven PDF in the OS once it is made */
|
||||
int scan_switch; /* |-scan|: simply show the syntactic scan of the source */
|
||||
struct filename *weave_to_setting; /* |-weave-to X|: the pathname X, if supplied */
|
||||
struct pathname *weave_into_setting; /* |-weave-into X|: the pathname X, if supplied */
|
||||
|
@ -81,7 +80,6 @@ inweb_instructions Configuration::read(int argc, char **argv) {
|
|||
args.functions_switch = FALSE;
|
||||
args.structures_switch = FALSE;
|
||||
args.advance_switch = FALSE;
|
||||
args.open_pdf_switch = NOT_APPLICABLE;
|
||||
args.scan_switch = FALSE;
|
||||
args.verbose_switch = FALSE;
|
||||
args.chosen_web = NULL;
|
||||
|
@ -323,9 +321,6 @@ void Configuration::switch(int id, int val, text_stream *arg, void *state) {
|
|||
case WEAVE_TO_CLSW:
|
||||
args->weave_to_setting = Filenames::from_text(arg);
|
||||
Configuration::set_fundamental_mode(args, WEAVE_MODE); break;
|
||||
case OPEN_CLSW:
|
||||
args->open_pdf_switch = TRUE;
|
||||
Configuration::set_fundamental_mode(args, WEAVE_MODE); break;
|
||||
case WEAVE_AS_CLSW:
|
||||
args->weave_pattern = Str::duplicate(arg);
|
||||
Configuration::set_fundamental_mode(args, WEAVE_MODE); break;
|
||||
|
|
|
@ -20,9 +20,8 @@ typedef struct weave_pattern {
|
|||
struct text_stream *mathematics_plugin; /* name only, not a |weave_pattern *| */
|
||||
struct text_stream *footnotes_plugin; /* name only, not a |weave_pattern *| */
|
||||
|
||||
struct text_stream *tex_command; /* shell command to use for |tex| */
|
||||
struct text_stream *pdftex_command; /* shell command to use for |pdftex| */
|
||||
struct text_stream *open_command; /* shell command to use for |open| */
|
||||
struct text_stream *initial_extension; /* filename extension, that is */
|
||||
struct linked_list *post_commands; /* of |text_stream| */
|
||||
|
||||
int embed_CSS; /* embed CSS directly into any HTML files made? */
|
||||
int show_abbrevs; /* show section range abbreviations in the weave? */
|
||||
|
@ -60,9 +59,8 @@ weave_pattern *Patterns::find(web *W, text_stream *name) {
|
|||
wp->footnotes_plugin = NULL;
|
||||
wp->mathematics_plugin = NULL;
|
||||
wp->default_range = Str::duplicate(I"0");
|
||||
wp->tex_command = Str::duplicate(I"tex");
|
||||
wp->pdftex_command = Str::duplicate(I"pdftex");
|
||||
wp->open_command = Str::duplicate(I"open");
|
||||
wp->initial_extension = NULL;
|
||||
wp->post_commands = NEW_LINKED_LIST(text_stream);
|
||||
wp->commands = 0;
|
||||
wp->name_command_given = FALSE;
|
||||
|
||||
|
@ -148,16 +146,14 @@ void Patterns::scan_pattern_line(text_stream *line, text_file_position *tfp, voi
|
|||
wp->number_sections = Patterns::yes_or_no(value, tfp);
|
||||
} else if (Str::eq_insensitive(key, I"default range")) {
|
||||
wp->default_range = Str::duplicate(value);
|
||||
} else if (Str::eq_insensitive(key, I"initial extension")) {
|
||||
wp->initial_extension = Str::duplicate(value);
|
||||
} else if (Str::eq_insensitive(key, I"mathematics plugin")) {
|
||||
wp->mathematics_plugin = Patterns::plugin_name(value, tfp);
|
||||
} else if (Str::eq_insensitive(key, I"footnotes plugin")) {
|
||||
wp->footnotes_plugin = Patterns::plugin_name(value, tfp);
|
||||
} else if (Str::eq_insensitive(key, I"TeX command")) {
|
||||
wp->tex_command = Str::duplicate(value);
|
||||
} else if (Str::eq_insensitive(key, I"PDFTeX command")) {
|
||||
wp->pdftex_command = Str::duplicate(value);
|
||||
} else if (Str::eq_insensitive(key, I"open command")) {
|
||||
wp->open_command = Str::duplicate(value);
|
||||
} else if (Str::eq_insensitive(key, I"command")) {
|
||||
ADD_TO_LINKED_LIST(Str::duplicate(value), text_stream, wp->post_commands);
|
||||
} else if (Str::eq_insensitive(key, I"bibliographic data")) {
|
||||
match_results mr2 = Regexp::create_mr();
|
||||
if (Regexp::match(&mr2, value, L"(%c+?) = (%c+)")) {
|
||||
|
@ -195,6 +191,47 @@ text_stream *Patterns::plugin_name(text_stream *arg, text_file_position *tfp) {
|
|||
return Str::duplicate(arg);
|
||||
}
|
||||
|
||||
@h Post-processing.
|
||||
In effect, a pattern can hold a shell script to run after each weave (subset)
|
||||
completes.
|
||||
|
||||
=
|
||||
void Patterns::post_process(weave_pattern *pattern, weave_order *wv, int verbosely) {
|
||||
text_stream *T;
|
||||
LOOP_OVER_LINKED_LIST(T, text_stream, pattern->post_commands) {
|
||||
filename *last_F = NULL;
|
||||
TEMPORARY_TEXT(cmd);
|
||||
for (int i=0; i<Str::len(T); i++) {
|
||||
if (Str::includes_at(T, i, I"WOVENPATH")) {
|
||||
Shell::quote_path(cmd, Filenames::up(wv->weave_to));
|
||||
i += 8;
|
||||
} else if (Str::includes_at(T, i, I"WOVEN")) {
|
||||
filename *W = wv->weave_to;
|
||||
i += 5;
|
||||
if (Str::get_at(T, i) == '.') {
|
||||
i++;
|
||||
TEMPORARY_TEXT(ext);
|
||||
while (Characters::isalpha(Str::get_at(T, i)))
|
||||
PUT_TO(ext,Str::get_at(T, i++));
|
||||
W = Filenames::set_extension(W, ext);
|
||||
DISCARD_TEXT(ext);
|
||||
}
|
||||
Shell::quote_file(cmd, W);
|
||||
last_F = W;
|
||||
i--;
|
||||
} else PUT_TO(cmd, Str::get_at(T, i));
|
||||
}
|
||||
if ((Str::includes_at(cmd, 0, I"PROCESS ")) && (last_F)) {
|
||||
RunningTeX::post_process_weave(wv, last_F);
|
||||
} else {
|
||||
if (verbosely) PRINT("(%S)\n", cmd);
|
||||
int rv = Shell::run(cmd);
|
||||
if (rv != 0) Errors::fatal("post-processing command failed");
|
||||
}
|
||||
DISCARD_TEXT(cmd);
|
||||
}
|
||||
}
|
||||
|
||||
@h Obtaining files.
|
||||
Patterns provide not merely some configuration settings (above): they also
|
||||
provide template or style files of various kinds. When Inweb wants to find
|
||||
|
|
|
@ -245,18 +245,13 @@ which for many small webs will be the entire thing.
|
|||
if (r != SWARM_OFF_SWM) ins->swarm_mode = r;
|
||||
@<Assign section numbers for printing purposes@>;
|
||||
if (ins->swarm_mode == SWARM_OFF_SWM) {
|
||||
int shall_we_open = ins->open_pdf_switch;
|
||||
if (shall_we_open == NOT_APPLICABLE) { /* i.e., if it wasn't set at the command line */
|
||||
if (Str::len(pattern->open_command) > 0) shall_we_open = TRUE;
|
||||
else shall_we_open = FALSE;
|
||||
}
|
||||
Swarm::weave_subset(W, ins->chosen_range, shall_we_open, tag, pattern,
|
||||
Swarm::weave_subset(W, ins->chosen_range, FALSE, tag, pattern,
|
||||
ins->weave_to_setting, ins->weave_into_setting,
|
||||
ins->breadcrumb_setting, ins->navigation_setting);
|
||||
ins->breadcrumb_setting, ins->navigation_setting, ins->verbose_switch);
|
||||
} else {
|
||||
Swarm::weave(W, ins->chosen_range, ins->swarm_mode, tag, pattern,
|
||||
ins->weave_to_setting, ins->weave_into_setting,
|
||||
ins->breadcrumb_setting, ins->navigation_setting);
|
||||
ins->breadcrumb_setting, ins->navigation_setting, ins->verbose_switch);
|
||||
}
|
||||
Formats::end_weaving(W, pattern);
|
||||
|
||||
|
|
|
@ -19,7 +19,7 @@ weave_order *swarm_leader = NULL; /* the most inclusive one we weave */
|
|||
|
||||
void Swarm::weave(web *W, text_stream *range, int swarm_mode, theme_tag *tag,
|
||||
weave_pattern *pattern, filename *to, pathname *into,
|
||||
linked_list *breadcrumbs, filename *navigation) {
|
||||
linked_list *breadcrumbs, filename *navigation, int verbosely) {
|
||||
swarm_leader = NULL;
|
||||
chapter *C;
|
||||
section *S;
|
||||
|
@ -29,7 +29,7 @@ void Swarm::weave(web *W, text_stream *range, int swarm_mode, theme_tag *tag,
|
|||
if ((W->md->chaptered == TRUE) && (Reader::range_within(C->md->ch_range, range))) {
|
||||
C->ch_weave = Swarm::weave_subset(W,
|
||||
C->md->ch_range, FALSE, tag, pattern, to, into,
|
||||
breadcrumbs, navigation);
|
||||
breadcrumbs, navigation, verbosely);
|
||||
if (Str::len(range) > 0) swarm_leader = C->ch_weave;
|
||||
}
|
||||
if (swarm_mode == SWARM_SECTIONS_SWM)
|
||||
|
@ -37,7 +37,7 @@ void Swarm::weave(web *W, text_stream *range, int swarm_mode, theme_tag *tag,
|
|||
if (Reader::range_within(S->md->sect_range, range))
|
||||
S->sect_weave = Swarm::weave_subset(W,
|
||||
S->md->sect_range, FALSE, tag, pattern, to, into,
|
||||
breadcrumbs, navigation);
|
||||
breadcrumbs, navigation, verbosely);
|
||||
}
|
||||
|
||||
Swarm::weave_index_templates(W, range, pattern, into, navigation, breadcrumbs);
|
||||
|
@ -50,14 +50,15 @@ the call comes from Program Control).
|
|||
=
|
||||
weave_order *Swarm::weave_subset(web *W, text_stream *range, int open_afterwards,
|
||||
theme_tag *tag, weave_pattern *pattern, filename *to, pathname *into,
|
||||
linked_list *breadcrumbs, filename *navigation) {
|
||||
linked_list *breadcrumbs, filename *navigation, int verbosely) {
|
||||
weave_order *wv = NULL;
|
||||
if (no_inweb_errors == 0) {
|
||||
Analyser::analyse_code(W);
|
||||
@<Compile a set of instructions for the weaver@>;
|
||||
if (Weaver::weave(wv) == 0) /* i.e., the number of lines woven was zero */
|
||||
Errors::fatal("empty weave request");
|
||||
Formats::post_process_weave(wv, open_afterwards); /* e.g., run through TeX */
|
||||
Patterns::post_process(wv->pattern, wv, verbosely);
|
||||
Formats::post_process_weave(wv, open_afterwards);
|
||||
@<Report on the outcome of the weave to the console@>;
|
||||
}
|
||||
return wv;
|
||||
|
@ -128,6 +129,8 @@ typedef struct weave_order {
|
|||
wv->weave_to = to;
|
||||
wv->self_contained = TRUE;
|
||||
} else wv->weave_to = Filenames::in(H, leafname);
|
||||
if (Str::len(pattern->initial_extension) > 0)
|
||||
wv->weave_to = Filenames::set_extension(wv->weave_to, pattern->initial_extension);
|
||||
DISCARD_TEXT(leafname);
|
||||
|
||||
@ From the range and the theme, we work out the weave title, the leafname,
|
||||
|
|
|
@ -141,11 +141,9 @@ int Formats::preform_document(OUTPUT_STREAM, weave_order *wv, web *W,
|
|||
}
|
||||
|
||||
@h Post-processing.
|
||||
Consider what happens when Inweb makes a PDF, via TeX. The initial weave is
|
||||
to a TeX file; it's then "post-processing" which will turn this into a PDF.
|
||||
The following method calls allow such two-stage formats to function; in
|
||||
this case, it would be the PDF format which provides the necessary methods
|
||||
to turn TeX into PDF. The important method is this one:
|
||||
Post-processing is now largely done by commands in the pattern file, rather
|
||||
than here, but we retain method calls to enable formats to do some idiosyncratic
|
||||
post-processing.
|
||||
|
||||
@e POST_PROCESS_POS_MTID
|
||||
|
||||
|
@ -156,34 +154,20 @@ void Formats::post_process_weave(weave_order *wv, int open_afterwards) {
|
|||
}
|
||||
|
||||
@ Optionally, a fancy report can be printed out, to describe what has been
|
||||
done:
|
||||
done. Support for TeX console reporting is hard-wired here because it's
|
||||
handled by //Patterns::post_process// directly.
|
||||
|
||||
@e POST_PROCESS_REPORT_POS_MTID
|
||||
|
||||
=
|
||||
VMETHOD_TYPE(POST_PROCESS_REPORT_POS_MTID, weave_format *wf, weave_order *wv)
|
||||
void Formats::report_on_post_processing(weave_order *wv) {
|
||||
RunningTeX::report_on_post_processing(wv);
|
||||
VMETHOD_CALL(wv->format, POST_PROCESS_REPORT_POS_MTID, wv);
|
||||
}
|
||||
|
||||
@ After post-processing, an index file is sometimes needed. For example, if a
|
||||
big web is woven to a swarm of PDFs, one for each section, then we also want
|
||||
to make an index page in HTML which provides annotated links to those PDFs.
|
||||
|
||||
@e INDEX_PDFS_POS_MTID
|
||||
|
||||
=
|
||||
IMETHOD_TYPE(INDEX_PDFS_POS_MTID, weave_format *wf)
|
||||
int Formats::index_pdfs(text_stream *format) {
|
||||
weave_format *wf = Formats::find_by_name(format);
|
||||
if (wf == NULL) return FALSE;
|
||||
int rv = FALSE;
|
||||
IMETHOD_CALLV(rv, wf, INDEX_PDFS_POS_MTID);
|
||||
return rv;
|
||||
}
|
||||
|
||||
@ And in that index file, we may want to substitute in values for placeholder
|
||||
text like |[[PDF Size]]| in the template file. This is the |detail|.
|
||||
@ For the sake of index files, we may want to substitute in values for
|
||||
placeholder text in the template file.
|
||||
|
||||
@e POST_PROCESS_SUBSTITUTE_POS_MTID
|
||||
|
||||
|
@ -192,7 +176,7 @@ IMETHOD_TYPE(POST_PROCESS_SUBSTITUTE_POS_MTID, weave_format *wf, text_stream *OU
|
|||
weave_order *wv, text_stream *detail, weave_pattern *pattern)
|
||||
int Formats::substitute_post_processing_data(OUTPUT_STREAM, weave_order *wv,
|
||||
text_stream *detail, weave_pattern *pattern) {
|
||||
int rv = FALSE;
|
||||
int rv = RunningTeX::substitute_post_processing_data(OUT, wv, detail);
|
||||
IMETHOD_CALL(rv, wv->format, POST_PROCESS_SUBSTITUTE_POS_MTID, OUT, wv, detail, pattern);
|
||||
return rv;
|
||||
}
|
||||
|
|
|
@ -19,20 +19,11 @@ of the page properly. (In practice we get this here by having code lines which
|
|||
are too wide to display.)
|
||||
|
||||
@ =
|
||||
void RunningTeX::post_process_weave(weave_order *wv, int open_afterwards, int to_DVI) {
|
||||
filename *console_filename = Filenames::set_extension(wv->weave_to, "console");
|
||||
filename *log_filename = Filenames::set_extension(wv->weave_to, "log");
|
||||
filename *pdf_filename = Filenames::set_extension(wv->weave_to, "pdf");
|
||||
|
||||
void RunningTeX::post_process_weave(weave_order *wv, filename *CF) {
|
||||
tex_results *res = CREATE(tex_results);
|
||||
@<Initialise the TeX results@>;
|
||||
wv->post_processing_results = (void *) res;
|
||||
|
||||
@<Call TeX and transcribe its output into a console file@>;
|
||||
wv->post_processing_results = res;
|
||||
@<Read back the console file and parse it for error messages@>;
|
||||
@<Remove the now redundant TeX, console and log files, to reduce clutter@>;
|
||||
|
||||
if (open_afterwards) @<Try to open the PDF file in the host operating system@>;
|
||||
}
|
||||
|
||||
@ We're going to have to read in a console file of TeX output to work out
|
||||
|
@ -53,58 +44,17 @@ typedef struct tex_results {
|
|||
res->tex_error_count = 0;
|
||||
res->page_count = 0;
|
||||
res->pdf_size = 0;
|
||||
res->PDF_filename = pdf_filename;
|
||||
|
||||
@<Call TeX and transcribe its output into a console file@> =
|
||||
TEMPORARY_TEXT(TEMP)
|
||||
filename *tex_rel = Filenames::without_path(wv->weave_to);
|
||||
filename *console_rel = Filenames::without_path(console_filename);
|
||||
|
||||
Shell::plain(TEMP, "cd ");
|
||||
Shell::quote_path(TEMP, Filenames::up(wv->weave_to));
|
||||
Shell::plain(TEMP, "; ");
|
||||
|
||||
text_stream *tool = wv->pattern->pdftex_command;
|
||||
if (to_DVI) tool = wv->pattern->tex_command;
|
||||
WRITE_TO(TEMP, "%S", tool);
|
||||
Shell::plain(TEMP, " -interaction=scrollmode ");
|
||||
Shell::quote_file(TEMP, tex_rel);
|
||||
Shell::plain(TEMP, ">");
|
||||
Shell::quote_file(TEMP, console_rel);
|
||||
Shell::run(TEMP);
|
||||
DISCARD_TEXT(TEMP)
|
||||
res->PDF_filename = Filenames::set_extension(CF, I".pdf");
|
||||
|
||||
@ TeX helpfully reports the size and page count of what it produces, and
|
||||
we're not too proud to scrape that information out of the console file, besides
|
||||
the error messages (which begin with an exclamation mark in column 1).
|
||||
|
||||
@<Read back the console file and parse it for error messages@> =
|
||||
TextFiles::read(console_filename, FALSE,
|
||||
TextFiles::read(CF, FALSE,
|
||||
"can't open console file", TRUE, RunningTeX::scan_console_line, NULL,
|
||||
(void *) res);
|
||||
|
||||
@ The log file we never wanted, but TeX produced it anyway; it's really a
|
||||
verbose form of its console output. Now it can go. So can the console file
|
||||
and even the TeX source, since that was mechanically generated from the
|
||||
web, and so is of no lasting value. The one exception is that we keep the
|
||||
console file in the event of serious errors, since otherwise it's impossible
|
||||
for the user to find out what those errors were.
|
||||
|
||||
@<Remove the now redundant TeX, console and log files, to reduce clutter@> =
|
||||
if (res->tex_error_count == 0) {
|
||||
Shell::rm(console_filename);
|
||||
Shell::rm(log_filename);
|
||||
Shell::rm(wv->weave_to);
|
||||
}
|
||||
|
||||
@ We often want to see the PDF immediately, so:
|
||||
|
||||
@<Try to open the PDF file in the host operating system@> =
|
||||
if (Str::len(wv->pattern->open_command) == 0)
|
||||
Errors::fatal("no way to open PDF (see pattern.txt file)");
|
||||
else
|
||||
Shell::apply_S(wv->pattern->open_command, pdf_filename);
|
||||
|
||||
@ =
|
||||
void RunningTeX::scan_console_line(text_stream *line, text_file_position *tfp,
|
||||
void *res_V) {
|
||||
|
|
|
@ -15,25 +15,18 @@ void TeX::create(void) {
|
|||
@<Create TeX format@> =
|
||||
weave_format *wf = Formats::create_weave_format(I"TeX", I".tex");
|
||||
METHOD_ADD(wf, RENDER_FOR_MTID, TeX::render_TeX);
|
||||
@<Make this format basically TeX@>;
|
||||
METHOD_ADD(wf, CHAPTER_TP_FOR_MTID, TeX::chapter_title_page);
|
||||
METHOD_ADD(wf, PREFORM_DOCUMENT_FOR_MTID, TeX::preform_document);
|
||||
|
||||
@<Create DVI format@> =
|
||||
weave_format *wf = Formats::create_weave_format(I"DVI", I".tex");
|
||||
METHOD_ADD(wf, RENDER_FOR_MTID, TeX::render_DVI);
|
||||
@<Make this format basically TeX@>;
|
||||
METHOD_ADD(wf, POST_PROCESS_POS_MTID, TeX::post_process_DVI);
|
||||
METHOD_ADD(wf, POST_PROCESS_POS_MTID, TeX::post_process_report);
|
||||
METHOD_ADD(wf, POST_PROCESS_SUBSTITUTE_POS_MTID, TeX::post_process_substitute);
|
||||
METHOD_ADD(wf, CHAPTER_TP_FOR_MTID, TeX::chapter_title_page);
|
||||
METHOD_ADD(wf, PREFORM_DOCUMENT_FOR_MTID, TeX::preform_document);
|
||||
|
||||
@<Create PDF format@> =
|
||||
weave_format *wf = Formats::create_weave_format(I"PDF", I".tex");
|
||||
METHOD_ADD(wf, RENDER_FOR_MTID, TeX::render_PDF);
|
||||
@<Make this format basically TeX@>;
|
||||
METHOD_ADD(wf, POST_PROCESS_POS_MTID, TeX::post_process_PDF);
|
||||
METHOD_ADD(wf, POST_PROCESS_SUBSTITUTE_POS_MTID, TeX::post_process_substitute);
|
||||
METHOD_ADD(wf, INDEX_PDFS_POS_MTID, TeX::yes);
|
||||
|
||||
@<Make this format basically TeX@> =
|
||||
METHOD_ADD(wf, CHAPTER_TP_FOR_MTID, TeX::chapter_title_page);
|
||||
METHOD_ADD(wf, PREFORM_DOCUMENT_FOR_MTID, TeX::preform_document);
|
||||
|
||||
|
@ -129,7 +122,8 @@ int TeX::render_visit(tree_node *N, void *state, int L) {
|
|||
|
||||
@<Render chapter header@> =
|
||||
weave_chapter_header_node *C = RETRIEVE_POINTER_weave_chapter_header_node(N->content);
|
||||
TeX::paragraph_heading(trs->wv->format, OUT, trs->wv, FIRST_IN_LINKED_LIST(section, C->chap->sections), NULL, C->chap->md->ch_title, 3, FALSE);
|
||||
if (Str::ne(C->chap->md->ch_range, I"S"))
|
||||
TeX::paragraph_heading(trs->wv->format, OUT, trs->wv, FIRST_IN_LINKED_LIST(section, C->chap->sections), NULL, C->chap->md->ch_title, 3, FALSE);
|
||||
|
||||
@<Render header@> =
|
||||
weave_section_header_node *C = RETRIEVE_POINTER_weave_section_header_node(N->content);
|
||||
|
@ -715,14 +709,6 @@ int TeX::preform_document(weave_format *self, text_stream *OUT, web *W, weave_or
|
|||
@h Post-processing.
|
||||
|
||||
=
|
||||
void TeX::post_process_PDF(weave_format *self, weave_order *wv, int open) {
|
||||
RunningTeX::post_process_weave(wv, open, FALSE);
|
||||
}
|
||||
void TeX::post_process_DVI(weave_format *self, weave_order *wv, int open) {
|
||||
RunningTeX::post_process_weave(wv, open, TRUE);
|
||||
}
|
||||
|
||||
@ =
|
||||
void TeX::post_process_report(weave_format *self, weave_order *wv) {
|
||||
RunningTeX::report_on_post_processing(wv);
|
||||
}
|
||||
|
|
|
@ -97,22 +97,8 @@ sets this to |sections|, causing a swarm of individual HTML files to be produced
|
|||
Lastly, there are commands to do with plugins, covered below, which are also
|
||||
inherited.
|
||||
|
||||
@ And there are a few settings which are not inherited: they apply only to the
|
||||
pattern being defined, not to other patterns based on it.
|
||||
|
||||
= (text as Inweb)
|
||||
tex command: C
|
||||
=
|
||||
tells the weaver that the TeX typesetting system should be invoked with the
|
||||
shell command |C|. Default is |tex|. Similarly for |pdftex command: C|, used
|
||||
when we want to make a PDF rather than a DVI.
|
||||
|
||||
= (text as Inweb)
|
||||
open command: C
|
||||
=
|
||||
tells the weaver to use the shell command |C| if it wants to open the woven
|
||||
file (i.e., on the user's computer) after it finishes. Default is |open|,
|
||||
which works nicely for MacOS.
|
||||
@ Bibliographic data can also be set, but this applies only to the current
|
||||
pattern, and is not inherited from any patterns it is based on.
|
||||
|
||||
= (text as Inweb)
|
||||
bibliographic data: K = V
|
||||
|
@ -123,6 +109,28 @@ the key |K| to the value |V|. For example:
|
|||
bibliographic data: Booklet Title = A formal grammar for Inform 7
|
||||
=
|
||||
|
||||
@ It can be useful to do some post-processing after each woven file is made.
|
||||
For an example, see the |PDFTeX| pattern, which simply uses the |TeX| pattern
|
||||
to make a TeX file, and then runs it through the |pdftex| command-line tool.
|
||||
This is done by giving the necessary commands in the pattern file:
|
||||
= (text as Inweb)
|
||||
name: PDFTeX based on TeX
|
||||
initial extension: .tex
|
||||
command: pdftex -output-directory=WOVENPATH -interaction=scrollmode WOVEN.tex
|
||||
command: rm WOVEN.tex
|
||||
command: rm WOVEN.log
|
||||
=
|
||||
Here |WOVEN| expands to the filename of the file which has just been woven,
|
||||
but stripped of its filename extension.
|
||||
|
||||
Note also the "initial extension" setting. The point of this is that if the
|
||||
user calls Inweb setting |-weave-to Whatever.pdf|, this pattern setting causes
|
||||
Inweb first to weave |Whatever.tex|; the post-processing commands will then
|
||||
make |Whatever.pdf| as expected.
|
||||
|
||||
As soon as any command in the list fails, Inweb halts with an error. To see
|
||||
the exact shell commands being issued, run Inweb with |-verbose|.
|
||||
|
||||
@h Plugins.
|
||||
Plugins are named bundles of resources which are sometimes added to a weave,
|
||||
and sometimes not, depending on its needs; they are placed in the pattern's
|
||||
|
|
|
@ -1,222 +0,0 @@
|
|||
\def\weavesectionsss#1#2#3#4#5{\vfill\eject\noindent{\titlefont #2}\mark{#3}\vskip 0.5in\par\noindent\titlepage}
|
||||
\def\weavesectionss#1#2#3#4#5{\vfill\eject\noindent{\stitlefont #2\hfill #5}\mark{#3}\bigskip\par\noindent\titlepage}
|
||||
\def\weavesections#1#2#3#4#5{\bigskip\goodbreak\noindent{\bf #4#1. #2.}\mark{#3}\quad}
|
||||
\def\weavesection#1#2#3#4#5{\bigskip\goodbreak\noindent{\bf #4#1.}\mark{#3}\quad}
|
||||
\def\tweavesections#1#2#3#4#5{\bigskip\goodbreak\noindent{\bf #5.#4#1. #2.}\quad}
|
||||
\def\tweavesection#1#2#3#4#5{\bigskip\goodbreak\noindent{\bf #5.#4#1.}\quad}
|
||||
\def\nsweavesections#1#2#3#4#5{\noindent{\bf #4#1. #2.}\mark{#3}\quad}
|
||||
\def\nsweavesection#1#2#3#4#5{\noindent{\bf #4#1.}\mark{#3}\quad}
|
||||
|
||||
\raggedbottom
|
||||
|
||||
\nopagenumbers
|
||||
\newif\iftitle
|
||||
\def\titlepage{\global\titletrue}
|
||||
\headline={\iftitle\hfil\global\titlefalse\else\tenrm\hfil{\sourcefont \firstmark\qquad\the\pageno}\fi}
|
||||
|
||||
\titlepage
|
||||
|
||||
\def\quotesource#1{\medskip{\narrower\noindent{\sourcefont #1}\par}\smallskip}
|
||||
\def\cast#1#2{{#1}$\;\rightarrow\;${#2}}
|
||||
\def\comp#1#2{{#1}$\;\sim\;${#2}}
|
||||
\def\al{$\alpha$}
|
||||
\def\be{$\beta$}
|
||||
\def\nonterminal#1{$\langle${\xreffont\pdfliteral direct{1 1 0 0 k}#1\special{PDF:0 g}}$\rangle$}
|
||||
\def\fixed#1{{\bf #1}}
|
||||
\def\from{\par\qquad\quad$\leftarrow$\quad}
|
||||
\def\continuation{\par\qquad\quad\phantom{$\leftarrow$}\quad}
|
||||
|
||||
\font\tentex=cmtex10
|
||||
\font\sourcefont=cmss10
|
||||
\font\xreffont=cmss9
|
||||
\hyphenchar\xreffont=-1
|
||||
\font\usagefont=cmss8
|
||||
|
||||
\font\inchhigh=cminch
|
||||
\font\sinchhigh=cminch at 60pt
|
||||
\font\titlefont=cmss10 at 24pt
|
||||
\font\stitlefont=cmss10 at 20pt
|
||||
\font\sstitlefont=cmss10 at 20pt
|
||||
\font\ssstitlefont=cmr10 at 12pt
|
||||
|
||||
\font\ninerm=cmr9
|
||||
\font\eightrm=cmr8
|
||||
\font\sixrm=cmr6
|
||||
|
||||
\font\ninei=cmmi9
|
||||
\font\eighti=cmmi8
|
||||
\font\sixi=cmmi6
|
||||
\skewchar\ninei='177 \skewchar\eighti='177 \skewchar\sixi='177
|
||||
|
||||
\font\ninesy=cmsy9
|
||||
\font\eightsy=cmsy8
|
||||
\font\sixsy=cmsy6
|
||||
\skewchar\ninesy='60 \skewchar\eightsy='60 \skewchar\sixsy='60
|
||||
|
||||
\font\sevenss=cmss10 at 7pt
|
||||
\font\eightss=cmssq8
|
||||
|
||||
\font\eightssi=cmssqi8
|
||||
|
||||
\font\ninebf=cmbx9
|
||||
\font\eightbf=cmbx8
|
||||
\font\sixbf=cmbx6
|
||||
|
||||
\font\ninett=cmtt9
|
||||
\font\eighttt=cmtt8
|
||||
|
||||
\hyphenchar\tentt=-1 % inhibit hyphenation in typewriter type
|
||||
\hyphenchar\ninett=-1
|
||||
\hyphenchar\eighttt=-1
|
||||
|
||||
\font\ninesl=cmsl9
|
||||
\font\eightsl=cmsl8
|
||||
|
||||
\font\nineit=cmti9
|
||||
\font\eightit=cmti8
|
||||
|
||||
\font\tenu=cmu10 % unslanted text italic
|
||||
\font\magnifiedfiverm=cmr5 at 10pt
|
||||
\font\manual=manfnt % font used for the METAFONT logo, etc.
|
||||
\font\cmman=cmman % font used for miscellaneous Computer Modern variations
|
||||
|
||||
\newskip\ttglue
|
||||
\def\tenpoint{\def\rm{\fam0\tenrm}%
|
||||
\textfont0=\tenrm \scriptfont0=\sevenrm \scriptscriptfont0=\fiverm
|
||||
\textfont1=\teni \scriptfont1=\seveni \scriptscriptfont1=\fivei
|
||||
\textfont2=\tensy \scriptfont2=\sevensy \scriptscriptfont2=\fivesy
|
||||
\textfont3=\tenex \scriptfont3=\tenex \scriptscriptfont3=\tenex
|
||||
\def\it{\fam\itfam\tenit}%
|
||||
\textfont\itfam=\tenit
|
||||
\def\sl{\fam\slfam\tensl}%
|
||||
\textfont\slfam=\tensl
|
||||
\def\bf{\fam\bffam\tenbf}%
|
||||
\textfont\bffam=\tenbf \scriptfont\bffam=\sevenbf
|
||||
\scriptscriptfont\bffam=\fivebf
|
||||
\def\tt{\fam\ttfam\tentt}%
|
||||
\textfont\ttfam=\tentt
|
||||
\tt \ttglue=.5em plus.25em minus.15em
|
||||
\normalbaselineskip=12pt
|
||||
\def\MF{{\manual META}\-{\manual FONT}}%
|
||||
\let\sc=\eightrm
|
||||
\let\big=\tenbig
|
||||
\setbox\strutbox=\hbox{\vrule height8.5pt depth3.5pt width\z@}%
|
||||
\normalbaselines\rm}
|
||||
|
||||
\def\ninepoint{\def\rm{\fam0\ninerm}%
|
||||
\textfont0=\ninerm \scriptfont0=\sixrm \scriptscriptfont0=\fiverm
|
||||
\textfont1=\ninei \scriptfont1=\sixi \scriptscriptfont1=\fivei
|
||||
\textfont2=\ninesy \scriptfont2=\sixsy \scriptscriptfont2=\fivesy
|
||||
\textfont3=\tenex \scriptfont3=\tenex \scriptscriptfont3=\tenex
|
||||
\def\it{\fam\itfam\nineit}%
|
||||
\textfont\itfam=\nineit
|
||||
\def\sl{\fam\slfam\ninesl}%
|
||||
\textfont\slfam=\ninesl
|
||||
\def\bf{\fam\bffam\ninebf}%
|
||||
\textfont\bffam=\ninebf \scriptfont\bffam=\sixbf
|
||||
\scriptscriptfont\bffam=\fivebf
|
||||
\def\tt{\fam\ttfam\ninett}%
|
||||
\textfont\ttfam=\ninett
|
||||
\tt \ttglue=.5em plus.25em minus.15em
|
||||
\normalbaselineskip=11pt
|
||||
\def\MF{{\manual hijk}\-{\manual lmnj}}%
|
||||
\let\sc=\sevenrm
|
||||
\let\big=\ninebig
|
||||
\setbox\strutbox=\hbox{\vrule height8pt depth3pt width\z@}%
|
||||
\normalbaselines\rm}
|
||||
|
||||
\def\ttninepoint{\def\rm{\fam0\ninerm}%
|
||||
\textfont0=\ninerm \scriptfont0=\sixrm \scriptscriptfont0=\fiverm
|
||||
\textfont1=\ninei \scriptfont1=\sixi \scriptscriptfont1=\fivei
|
||||
\textfont2=\ninesy \scriptfont2=\sixsy \scriptscriptfont2=\fivesy
|
||||
\textfont3=\tenex \scriptfont3=\tenex \scriptscriptfont3=\tenex
|
||||
\def\it{\fam\itfam\nineit}%
|
||||
\textfont\itfam=\nineit
|
||||
\def\sl{\fam\slfam\ninesl}%
|
||||
\textfont\slfam=\ninesl
|
||||
\def\bf{\fam\bffam\ninebf}%
|
||||
\textfont\bffam=\ninebf \scriptfont\bffam=\sixbf
|
||||
\scriptscriptfont\bffam=\fivebf
|
||||
\def\tt{\fam\ttfam\ninett}%
|
||||
\textfont\ttfam=\ninett
|
||||
\normalbaselineskip=11pt
|
||||
\normalbaselines\rm}
|
||||
|
||||
\def\eightpoint{\def\rm{\fam0\eightrm}%
|
||||
\textfont0=\eightrm \scriptfont0=\sixrm \scriptscriptfont0=\fiverm
|
||||
\textfont1=\eighti \scriptfont1=\sixi \scriptscriptfont1=\fivei
|
||||
\textfont2=\eightsy \scriptfont2=\sixsy \scriptscriptfont2=\fivesy
|
||||
\textfont3=\tenex \scriptfont3=\tenex \scriptscriptfont3=\tenex
|
||||
\def\it{\fam\itfam\eightit}%
|
||||
\textfont\itfam=\eightit
|
||||
\def\sl{\fam\slfam\eightsl}%
|
||||
\textfont\slfam=\eightsl
|
||||
\def\bf{\fam\bffam\eightbf}%
|
||||
\textfont\bffam=\eightbf \scriptfont\bffam=\sixbf
|
||||
\scriptscriptfont\bffam=\fivebf
|
||||
\def\tt{\fam\ttfam\eighttt}%
|
||||
\textfont\ttfam=\eighttt
|
||||
\tt \ttglue=.5em plus.25em minus.15em
|
||||
\normalbaselineskip=9pt
|
||||
\def\MF{{\manual opqr}\-{\manual stuq}}%
|
||||
\let\sc=\sixrm
|
||||
\let\big=\eightbig
|
||||
\setbox\strutbox=\hbox{\vrule height7pt depth2pt width\z@}%
|
||||
\normalbaselines\rm}
|
||||
|
||||
\def\tenmath{\tenpoint\fam-1 } % use after $ in ninepoint sections
|
||||
\def\tenbig#1{{\hbox{$\left#1\vbox to8.5pt{}\right.\n@space$}}}
|
||||
\def\ninebig#1{{\hbox{$\textfont0=\tenrm\textfont2=\tensy
|
||||
\left#1\vbox to7.25pt{}\right.\n@space$}}}
|
||||
\def\eightbig#1{{\hbox{$\textfont0=\ninerm\textfont2=\ninesy
|
||||
\left#1\vbox to6.5pt{}\right.\n@space$}}}
|
||||
|
||||
\catcode`@=11 % borrow the private macros of PLAIN (with care)
|
||||
|
||||
\def\|{\leavevmode\hbox{\tt\char`\|}} % vertical line
|
||||
|
||||
% macros for verbatim scanning
|
||||
\chardef\other=12
|
||||
\def\ttverbatim{\begingroup\ttninepoint\frenchspacing
|
||||
\catcode`\\=\other
|
||||
\catcode`\{=\other
|
||||
\catcode`\}=\other
|
||||
\catcode`\$=\other
|
||||
\catcode`\&=\other
|
||||
\catcode`\#=\other
|
||||
\catcode`\%=\other
|
||||
\catcode`\~=\other
|
||||
\catcode`\_=\other
|
||||
\catcode`\^=\other
|
||||
\obeyspaces \obeylines \tt}
|
||||
|
||||
\outer\def\begintt{$$\let\par=\endgraf \ttverbatim \parskip=\z@
|
||||
\catcode`\|=0 \rightskip-5pc \ttfinish}
|
||||
{\catcode`\|=0 |catcode`|\=\other % | is temporary escape character
|
||||
|obeylines % end of line is active
|
||||
|gdef|ttfinish#1^^M#2\endtt{#1|vbox{#2}|endgroup|tenpoint$$}}
|
||||
|
||||
\catcode`\|=\active
|
||||
{\obeylines \gdef|{\ttverbatim \spaceskip\ttglue \let^^M=\ \let|=\endgroup}}
|
||||
|
||||
% macros for syntax rules (again, not in Appendix E)
|
||||
\def\[#1]{\silenttrue\xref|#1|\thinspace{\tt#1}\thinspace} % keyword in syntax
|
||||
\def\beginsyntax{\endgraf\nobreak\medskip
|
||||
\begingroup \catcode`<=13 \catcode`[=13
|
||||
\let\par=\endsyntaxline \obeylines}
|
||||
\def\endsyntaxline{\futurelet\next\syntaxswitch}
|
||||
\def\syntaxswitch{\ifx\next\<\let\next=\syntaxrule
|
||||
\else\ifx\next\endsyntax\let\next=\endgroup
|
||||
\else\let\next=\continuerule\fi\fi \next}
|
||||
\def\continuerule{\hfil\break\indent\qquad}
|
||||
\def\endsyntax{\medbreak\noindent}
|
||||
{\catcode`<=13 \catcode`[=13
|
||||
\global\let<=\< \global\let[=\[
|
||||
\gdef\syntaxrule<#1>{\endgraf\indent\silentfalse\xref\<#1>}}
|
||||
\def\is{\ $\longrightarrow$ }
|
||||
\def\alt{\ $\vert$ }
|
||||
|
||||
% macros to demarcate lines quoted from TeX source files
|
||||
\def\beginlines{\par\begingroup\nobreak\medskip\parindent\z@ \obeylines
|
||||
\nobreak \everypar{\strut}}
|
||||
\def\endlines{\endgroup\medbreak\noindent}
|
|
@ -1,261 +0,0 @@
|
|||
/* This is a CSS file for pages woven by the literate programming tool inweb */
|
||||
|
||||
/* We'll start with syntax colouring, since everyone likes to toy with this: */
|
||||
|
||||
.cwebmacrotext { color: #000000; font-weight: bold; } /* The name of a web macro */
|
||||
.functiontext { color: #4040ff; font-weight: bold; } /* When a C function is being defined */
|
||||
.string { color: #408040; } /* A double-quoted C literal string */
|
||||
.character { color: #204020; } /* A single-quoted C literal character */
|
||||
.constant { color: #204020; } /* A named constant */
|
||||
.element { color: #40407f; } /* A C structure element */
|
||||
.identifier { color: #4040ff; } /* An identifier */
|
||||
.reserved { color: #000000; } /* A reserved word */
|
||||
|
||||
/* Comments at the end of lines are rendered like so: */
|
||||
|
||||
.comment {
|
||||
font: "Lucida Grande", "Lucida Sans Unicode", Helvetica, Arial, Verdana, sans-serif;
|
||||
color: #404040;
|
||||
font-style:italic;
|
||||
}
|
||||
|
||||
/* The name of a web macro when being used: */
|
||||
|
||||
.cwebmacro {
|
||||
font-family: "Lucida Grande", "Lucida Sans Unicode", Helvetica, Arial, Verdana, sans-serif;
|
||||
text-decoration: none;
|
||||
color: #000000; font-weight: bold;
|
||||
}
|
||||
|
||||
.cwebmacronumber {
|
||||
font-family: "Lucida Grande", "Lucida Sans Unicode", Helvetica, Arial, Verdana, sans-serif;
|
||||
font-size: 80%;
|
||||
text-decoration: none;
|
||||
color: #000000;
|
||||
}
|
||||
|
||||
/* And when being defined: */
|
||||
|
||||
.cwebmacrodefn {
|
||||
font-family: "Lucida Grande", "Lucida Sans Unicode", Helvetica, Arial, Verdana, sans-serif;
|
||||
text-decoration: none;
|
||||
color: #000000; font-weight: bold;
|
||||
font-weight:bold;
|
||||
}
|
||||
|
||||
/* Now some generalities: */
|
||||
|
||||
body {
|
||||
background-color: #ffffff;
|
||||
margin: 8px;
|
||||
font-family: "Lucida Grande", "Lucida Sans Unicode", Helvetica, Arial, Verdana, sans-serif;
|
||||
font-size: 16px;
|
||||
line-height: 24px;
|
||||
background-color: transparent;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
}
|
||||
|
||||
/* Forms of paragraph: */
|
||||
|
||||
p {
|
||||
margin: 0;
|
||||
padding-top: 5px;
|
||||
padding-bottom: 5px;
|
||||
clear: both;
|
||||
}
|
||||
|
||||
/* Where an inweb paragraph begins: */
|
||||
|
||||
p.inwebparagraph {
|
||||
padding-top: 15px;
|
||||
padding-bottom: 5px;
|
||||
}
|
||||
|
||||
/* If a web macro definition begins in its own paragraph, this is it: */
|
||||
|
||||
p.macrodefinition {
|
||||
padding-top: 0px;
|
||||
padding-bottom: 0px;
|
||||
margin-left: 30px;
|
||||
}
|
||||
|
||||
/* The endnotes at the foot of code: "The function foo_bar is used in ..." */
|
||||
|
||||
p.endnote {
|
||||
font-size: 0.8em;
|
||||
padding-top: 0px;
|
||||
padding-bottom: 0px;
|
||||
margin-left: 30px;
|
||||
text-decoration:none;
|
||||
color: #000000;
|
||||
}
|
||||
|
||||
/* The Purpose slug: */
|
||||
|
||||
p.purpose {
|
||||
font-size: 1em;
|
||||
font-style:italic;
|
||||
margin-left: 15px;
|
||||
}
|
||||
|
||||
/* Blocks of code appear in these */
|
||||
|
||||
pre {
|
||||
font-family: Monaco, monospace;
|
||||
}
|
||||
|
||||
pre.display {
|
||||
padding: 3px;
|
||||
margin-top: 5px;
|
||||
margin-bottom: 5px;
|
||||
margin-left: 30px;
|
||||
margin-right: 10px;
|
||||
background: #f8f8f8;
|
||||
border-width: 1px;
|
||||
border-style: solid solid solid solid;
|
||||
border-color: #ccc;
|
||||
word-wrap: break-word;
|
||||
white-space: pre-wrap;
|
||||
}
|
||||
|
||||
pre.displaydefn {
|
||||
padding: 3px;
|
||||
margin-top: 0px;
|
||||
margin-bottom: 0px;
|
||||
margin-left: 30px;
|
||||
margin-right: 10px;
|
||||
background: #f8f8f8;
|
||||
border-width: 1px;
|
||||
border-style: solid solid solid solid;
|
||||
border-color: #ccc;
|
||||
word-wrap: break-word;
|
||||
white-space: pre-wrap;
|
||||
}
|
||||
|
||||
pre.definitions {
|
||||
padding-top: 0px;
|
||||
margin-top: 0px;
|
||||
margin-left: 30px;
|
||||
margin-right: 10px;
|
||||
word-wrap: break-word;
|
||||
white-space: pre-wrap;
|
||||
}
|
||||
|
||||
/* The following are for breadcrumbs of links: */
|
||||
|
||||
ul, li {
|
||||
list-style-type:none;
|
||||
padding:0;
|
||||
margin:0;
|
||||
}
|
||||
|
||||
.crumbs {
|
||||
border:1px solid #dedede;
|
||||
height:3.45em;
|
||||
}
|
||||
|
||||
.crumbs li {
|
||||
float:left;
|
||||
line-height:2.3em;
|
||||
padding-left:.75em;
|
||||
color:#333;
|
||||
font-size: 1.5em;
|
||||
}
|
||||
|
||||
.crumbs li a {
|
||||
display:block;
|
||||
padding:0 15px 0 0;
|
||||
background:url(crumbs.gif) no-repeat right center;
|
||||
}
|
||||
|
||||
.crumbs li a:link, #crumbs li a:visited {
|
||||
text-decoration:none;
|
||||
color:#333;
|
||||
}
|
||||
|
||||
.crumbs li a:hover, #crumbs li a:focus {
|
||||
color:#dd2c0d;
|
||||
}
|
||||
|
||||
/* This is for items in lists from inweb source: */
|
||||
|
||||
ul.items {
|
||||
margin-top: 3px;
|
||||
margin-bottom: 3px;
|
||||
}
|
||||
|
||||
ul.items li {
|
||||
margin-top: 1px;
|
||||
margin-bottom: 1px;
|
||||
margin-left: 15px;
|
||||
}
|
||||
|
||||
/* And this is for each section's table of contents: */
|
||||
|
||||
ul.toc {
|
||||
margin-top: 3px;
|
||||
margin-bottom: 3px;
|
||||
}
|
||||
|
||||
ul.toc li {
|
||||
float:left;
|
||||
margin-left: 15px;
|
||||
color:#000;
|
||||
}
|
||||
|
||||
ul.toc li a {
|
||||
display:block;
|
||||
}
|
||||
|
||||
ul.toc li a:link, ul.toc li a:visited {
|
||||
text-decoration:none;
|
||||
color:#000;
|
||||
}
|
||||
|
||||
ul.toc li a:hover, ul.toc li a:focus {
|
||||
color:#dd2c0d;
|
||||
}
|
||||
|
||||
hr.tocbar {
|
||||
clear: both;
|
||||
margin-top:3px;
|
||||
margin-bottom:3px;
|
||||
color:#333;
|
||||
border:0
|
||||
background-color:#333;
|
||||
}
|
||||
|
||||
/* This is for cross-reference links ("This code is used in ...") */
|
||||
|
||||
p.endnote:link, p.endnote:visited, p.endnote:hover, p.endnote:focus {
|
||||
text-decoration:none;
|
||||
color:#000;
|
||||
}
|
||||
|
||||
p.endnote a:link, p.endnote a:visited {
|
||||
text-decoration:none;
|
||||
color:#000;
|
||||
}
|
||||
|
||||
p.endnote a:hover, p.endnote a:focus {
|
||||
text-decoration:none;
|
||||
color:#dd2c0d;
|
||||
}
|
||||
|
||||
/* Now for the index page */
|
||||
|
||||
p.heading {
|
||||
margin-top: 2px;
|
||||
margin-bottom: 2px;
|
||||
font-size: 20
|
||||
}
|
||||
p.chapter {
|
||||
font-size: 14
|
||||
}
|
||||
p.tight {
|
||||
font-size: 12
|
||||
}
|
||||
p.tightin {
|
||||
padding-left: 25px;
|
||||
font-size: 12
|
||||
}
|
|
@ -1,2 +0,0 @@
|
|||
name: PDF
|
||||
format: PDF
|
|
@ -1,10 +0,0 @@
|
|||
\phantom{A}
|
||||
\vskip 0.5in
|
||||
\noindent{{\sinchhigh\noindent [[Capitalized Title]]}}
|
||||
\vskip 0.5in
|
||||
\noindent{{\titlefont [[Booklet Title]]}}
|
||||
\vskip 0.3in
|
||||
\noindent{{\stitlefont [[Author]]}}
|
||||
\vskip 0.3in
|
||||
|
||||
[[Weave Content]]
|
|
@ -1,65 +0,0 @@
|
|||
<html>
|
||||
<head>
|
||||
<title>[[Title]]: The Program</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<meta http-equiv="Content-Language" content="en-gb">
|
||||
<link href="inweb.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<ul id="crumbs"><li><b>[[Title]]: The Program</b></li></ul>
|
||||
<table border="0" cellpadding="0" cellspacing="6" width="100%">
|
||||
<tr>
|
||||
<td valign="top">
|
||||
<IMG border="0" alt="[[Title]]" SRC="lemons.jpg">
|
||||
<p></p>
|
||||
<p class="tight">Build [[Build Number]]</p>
|
||||
<p class="tight">[[Author]]</p>
|
||||
<p></p>
|
||||
<p class="tight"><a href="[[Complete Leafname]]"><b>[[Title]] PDF</b></a><br><font color="#666666">([[Complete Extent]], [[Complete PDF Size]])</font></p>
|
||||
</td>
|
||||
<td valign="top" width="100%">
|
||||
<p class="chapter">[[Purpose]]</font></p>
|
||||
<p class="tight">[[Licence]]</font></p>
|
||||
<table width="100%" cellpadding=2 cellspacing=0 border=0>
|
||||
[[Repeat Chapter]]
|
||||
<tr>
|
||||
<td width="100%"><hr></td>
|
||||
<td><hr></td>
|
||||
<td><hr></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="100%"><p class="chapter"><a name="[[Chapter Code]]"><b>[[Chapter Title]]</b> <font color="#666666"></font> </p></td>
|
||||
<td></td>
|
||||
<td nowrap><p class="chapter"><a href="[[Chapter Leafname]]"><img src="download.gif" width="11" height="10" border="0"></a> <a href="[[Chapter Leafname]]">PDF</a> </p></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="100%"><font size="2" face="Geneva,Arial,Helvetica,Swiss,SunSans-Regular">[[Chapter Purpose]]</font></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
[[Repeat Section]]
|
||||
<tr>
|
||||
<td width="100%"><p class="tightin"><a href="[[Section Page]]"><b>[[Section Title]]</b></a> <font color="#666666">([[Section Code]])</font></p></td>
|
||||
<td nowrap><p class="tight"><a href="../[[Section Source]]"><img src="download.gif" width="11" height="10" border="0"></a> <a href="../[[Section Source]]">File</a> ([[Section Lines]] lines) </p></td>
|
||||
<td nowrap><p class="tight"><a href="[[Section Leafname]]"><img src="download.gif" width="11" height="10" border="0"></a> <a href="[[Section Leafname]]">PDF</a> ([[Section Extent]], [[Section PDF Size]]) </p></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="100%"><p class="tightin">[[Section Purpose]]</p></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
[[End Repeat]]
|
||||
[[End Repeat]]
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr>
|
||||
<p class="tight">
|
||||
This is a "web", a term invented by Donald Knuth in the early 1980s for a
|
||||
program written according to the heavily annotated literate programming dogma.
|
||||
For more on "inweb", visit the <a href="http://www.inform7.com/sources/index.html">Inform 7 project</a>.
|
||||
</p>
|
||||
</body>
|
||||
|
||||
</html>
|
8
Patterns/PDFTeX/pattern.txt
Normal file
8
Patterns/PDFTeX/pattern.txt
Normal file
|
@ -0,0 +1,8 @@
|
|||
name: PDFTeX based on TeX
|
||||
initial extension: .tex
|
||||
command: pdftex -output-directory=WOVENPATH -interaction=scrollmode WOVEN.tex >WOVEN.console
|
||||
command: PROCESS WOVEN.log
|
||||
command: rm WOVEN.log
|
||||
command: rm WOVEN.console
|
||||
command: bbedit WOVEN.tex
|
||||
command: open WOVEN.pdf
|
|
@ -1,11 +1,20 @@
|
|||
[[Plugins]]
|
||||
\phantom{A}
|
||||
\vskip 0.5in
|
||||
\noindent{{\sinchhigh\noindent [[Capitalized Title]]}}
|
||||
\noindent{{\titlefont [[Title]]}}
|
||||
\vskip 0.5in
|
||||
\noindent{{\titlefont [[Booklet Title]]}}
|
||||
\vskip 0.3in
|
||||
\noindent{{\stitlefont [[Author]]}}
|
||||
\vskip 0.3in
|
||||
|
||||
[[Repeat Chapter]]
|
||||
\noindent{{\stitlefont [[Chapter Title]]}}
|
||||
\vskip 0.1in
|
||||
\par\noindent {\it [[Chapter Purpose]]}
|
||||
[[Repeat Section]]
|
||||
\vskip 0.2in
|
||||
\noindent{{\sstitlefont [[Section Title]]}}
|
||||
\vskip 0.1in
|
||||
\par\noindent {\it [[Section Purpose]]}
|
||||
|
||||
[[End Repeat]]
|
||||
[[End Repeat]]
|
||||
|
||||
[[Weave Content]]
|
|
@ -1,6 +1,6 @@
|
|||
# Inweb 7
|
||||
|
||||
v7-alpha.1+1A30 'Escape to Danger' (25 April 2020)
|
||||
v7-alpha.1+1A31 'Escape to Danger' (26 April 2020)
|
||||
|
||||
## About Inweb
|
||||
|
||||
|
|
2027
Tangled/inweb.c
2027
Tangled/inweb.c
File diff suppressed because it is too large
Load diff
|
@ -1,3 +1,3 @@
|
|||
Prerelease: alpha.1
|
||||
Build Date: 25 April 2020
|
||||
Build Number: 1A30
|
||||
Build Date: 26 April 2020
|
||||
Build Number: 1A31
|
||||
|
|
|
@ -195,16 +195,16 @@ as equivalent to <span class="extract"><span class="extract-syntax">frog.jpg</sp
|
|||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">filename</span><span class="plain-syntax"> *</span><span class="function-syntax">Filenames::set_extension</span><span class="plain-syntax">(</span><span class="reserved-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">F</span><span class="plain-syntax">, </span><span class="reserved-syntax">char</span><span class="plain-syntax"> *</span><span class="identifier-syntax">extension</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">filename</span><span class="plain-syntax"> *</span><span class="function-syntax">Filenames::set_extension</span><span class="plain-syntax">(</span><span class="reserved-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">F</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">extension</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">NEWLEAF</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_THROUGH_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">pos</span><span class="plain-syntax">, </span><span class="identifier-syntax">F</span><span class="plain-syntax">-></span><span class="element-syntax">leafname</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax"> </span><span class="identifier-syntax">c</span><span class="plain-syntax"> = </span><a href="4-sm.html#SP13" class="function-link"><span class="function-syntax">Str::get</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pos</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">c</span><span class="plain-syntax"> == </span><span class="character-syntax">'.'</span><span class="plain-syntax">) </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">PUT_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">NEWLEAF</span><span class="plain-syntax">, </span><span class="identifier-syntax">c</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">extension</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">extension</span><span class="plain-syntax">[0] == </span><span class="character-syntax">'.'</span><span class="plain-syntax">) </span><span class="identifier-syntax">extension</span><span class="plain-syntax">++;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">extension</span><span class="plain-syntax">[0]) </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">NEWLEAF</span><span class="plain-syntax">, </span><span class="string-syntax">".%s"</span><span class="plain-syntax">, </span><span class="identifier-syntax">extension</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="4-sm.html#SP8" class="function-link"><span class="function-syntax">Str::len</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">extension</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="4-sm.html#SP13" class="function-link"><span class="function-syntax">Str::get_first_char</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">extension</span><span class="plain-syntax">) != </span><span class="character-syntax">'.'</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">NEWLEAF</span><span class="plain-syntax">, </span><span class="string-syntax">"."</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">NEWLEAF</span><span class="plain-syntax">, </span><span class="string-syntax">"%S"</span><span class="plain-syntax">, </span><span class="identifier-syntax">extension</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">N</span><span class="plain-syntax"> = </span><a href="3-fln.html#SP2" class="function-link"><span class="function-syntax">Filenames::in</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">F</span><span class="plain-syntax">-></span><span class="element-syntax">pathname_of_location</span><span class="plain-syntax">, </span><span class="identifier-syntax">NEWLEAF</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">NEWLEAF</span><span class="plain-syntax">);</span>
|
||||
|
|
|
@ -194,7 +194,7 @@ thing plus a little extra, for efficiency's sake.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Str::len</span><button class="popup" onclick="togglePopup('usagePopup9')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup9">Usage of <span class="code-font"><span class="function-syntax">Str::len</span></span>:<br><a href="4-sm.html#SP3">§3</a>, <a href="4-sm.html#SP7">§7</a>, <a href="4-sm.html#SP10">§10</a>, <a href="4-sm.html#SP11">§11</a>, <a href="4-sm.html#SP12">§12</a>, <a href="4-sm.html#SP13">§13</a>, <a href="4-sm.html#SP14">§14</a>, <a href="4-sm.html#SP15">§15</a>, <a href="4-sm.html#SP17">§17</a>, <a href="4-sm.html#SP19">§19</a>, <a href="4-sm.html#SP20">§20</a>, <a href="4-sm.html#SP21">§21</a>, <a href="4-sm.html#SP22">§22</a>, <a href="4-sm.html#SP24">§24</a>, <a href="4-sm.html#SP25">§25</a>, <a href="4-sm.html#SP26">§26</a><br>Debugging Log - <a href="2-dl.html#SP9">§9</a><br>Command Line Arguments - <a href="3-cla.html#SP13">§13</a>, <a href="3-cla.html#SP14">§14</a>, <a href="3-cla.html#SP14_1">§14.1</a><br>Pathnames - <a href="3-pth.html#SP4">§4</a>, <a href="3-pth.html#SP5">§5</a>, <a href="3-pth.html#SP7">§7</a>, <a href="3-pth.html#SP8">§8</a><br>Filenames - <a href="3-fln.html#SP2">§2</a>, <a href="3-fln.html#SP3">§3</a>, <a href="3-fln.html#SP5">§5</a>, <a href="3-fln.html#SP9">§9</a><br>Tries and Avinues - <a href="4-taa.html#SP2_1">§2.1</a><br>Pattern Matching - <a href="4-pm.html#SP3">§3</a>, <a href="4-pm.html#SP4">§4</a>, <a href="4-pm.html#SP10">§10</a>, <a href="4-pm.html#SP11_3">§11.3</a>, <a href="4-pm.html#SP14">§14</a><br>HTML - <a href="5-htm.html#SP7">§7</a>, <a href="5-htm.html#SP15">§15</a><br>Epub Ebooks - <a href="5-ee.html#SP7_1">§7.1</a>, <a href="5-ee.html#SP7_2_3">§7.2.3</a>, <a href="5-ee.html#SP7_2_4">§7.2.4</a><br>Version Numbers - <a href="7-vn.html#SP7">§7</a>, <a href="7-vn.html#SP7_1">§7.1</a>, <a href="7-vn.html#SP10">§10</a><br>Web Structure - <a href="8-ws.html#SP5_4">§5.4</a>, <a href="8-ws.html#SP5_4_1">§5.4.1</a>, <a href="8-ws.html#SP5_4_1_1">§5.4.1.1</a>, <a href="8-ws.html#SP5_4_1_2">§5.4.1.2</a>, <a href="8-ws.html#SP7_3">§7.3</a>, <a href="8-ws.html#SP7_3_3_1">§7.3.3.1</a>, <a href="8-ws.html#SP7_2_2_3_1">§7.2.2.3.1</a>, <a href="8-ws.html#SP7_2_2_4">§7.2.2.4</a><br>Bibliographic Data for Webs - <a href="8-bdfw.html#SP5">§5</a>, <a href="8-bdfw.html#SP6">§6</a><br>Build Files - <a href="8-bf.html#SP3">§3</a>, <a href="8-bf.html#SP4">§4</a>, <a href="8-bf.html#SP5">§5</a>, <a href="8-bf.html#SP6">§6</a>, <a href="8-bf.html#SP9">§9</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Str::len</span><button class="popup" onclick="togglePopup('usagePopup9')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup9">Usage of <span class="code-font"><span class="function-syntax">Str::len</span></span>:<br><a href="4-sm.html#SP3">§3</a>, <a href="4-sm.html#SP7">§7</a>, <a href="4-sm.html#SP10">§10</a>, <a href="4-sm.html#SP11">§11</a>, <a href="4-sm.html#SP12">§12</a>, <a href="4-sm.html#SP13">§13</a>, <a href="4-sm.html#SP14">§14</a>, <a href="4-sm.html#SP15">§15</a>, <a href="4-sm.html#SP17">§17</a>, <a href="4-sm.html#SP19">§19</a>, <a href="4-sm.html#SP20">§20</a>, <a href="4-sm.html#SP21">§21</a>, <a href="4-sm.html#SP22">§22</a>, <a href="4-sm.html#SP24">§24</a>, <a href="4-sm.html#SP25">§25</a>, <a href="4-sm.html#SP26">§26</a><br>Debugging Log - <a href="2-dl.html#SP9">§9</a><br>Command Line Arguments - <a href="3-cla.html#SP13">§13</a>, <a href="3-cla.html#SP14">§14</a>, <a href="3-cla.html#SP14_1">§14.1</a><br>Pathnames - <a href="3-pth.html#SP4">§4</a>, <a href="3-pth.html#SP5">§5</a>, <a href="3-pth.html#SP7">§7</a>, <a href="3-pth.html#SP8">§8</a><br>Filenames - <a href="3-fln.html#SP2">§2</a>, <a href="3-fln.html#SP3">§3</a>, <a href="3-fln.html#SP5">§5</a>, <a href="3-fln.html#SP8">§8</a>, <a href="3-fln.html#SP9">§9</a><br>Tries and Avinues - <a href="4-taa.html#SP2_1">§2.1</a><br>Pattern Matching - <a href="4-pm.html#SP3">§3</a>, <a href="4-pm.html#SP4">§4</a>, <a href="4-pm.html#SP10">§10</a>, <a href="4-pm.html#SP11_3">§11.3</a>, <a href="4-pm.html#SP14">§14</a><br>HTML - <a href="5-htm.html#SP7">§7</a>, <a href="5-htm.html#SP15">§15</a><br>Epub Ebooks - <a href="5-ee.html#SP7_1">§7.1</a>, <a href="5-ee.html#SP7_2_3">§7.2.3</a>, <a href="5-ee.html#SP7_2_4">§7.2.4</a><br>Version Numbers - <a href="7-vn.html#SP7">§7</a>, <a href="7-vn.html#SP7_1">§7.1</a>, <a href="7-vn.html#SP10">§10</a><br>Web Structure - <a href="8-ws.html#SP5_4">§5.4</a>, <a href="8-ws.html#SP5_4_1">§5.4.1</a>, <a href="8-ws.html#SP5_4_1_1">§5.4.1.1</a>, <a href="8-ws.html#SP5_4_1_2">§5.4.1.2</a>, <a href="8-ws.html#SP7_3">§7.3</a>, <a href="8-ws.html#SP7_3_3_1">§7.3.3.1</a>, <a href="8-ws.html#SP7_2_2_3_1">§7.2.2.3.1</a>, <a href="8-ws.html#SP7_2_2_4">§7.2.2.4</a><br>Bibliographic Data for Webs - <a href="8-bdfw.html#SP5">§5</a>, <a href="8-bdfw.html#SP6">§6</a><br>Build Files - <a href="8-bf.html#SP3">§3</a>, <a href="8-bf.html#SP4">§4</a>, <a href="8-bf.html#SP5">§5</a>, <a href="8-bf.html#SP6">§6</a>, <a href="8-bf.html#SP9">§9</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="2-str.html#SP38" class="function-link"><span class="function-syntax">Streams::get_position</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
|
@ -283,7 +283,7 @@ at those positions may well not be, of course.)
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="2-str.html#SP40" class="function-link"><span class="function-syntax">Streams::get_char_at_index</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="identifier-syntax">index</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="identifier-syntax">wchar_t</span><span class="plain-syntax"> </span><span class="function-syntax">Str::get_first_char</span><button class="popup" onclick="togglePopup('usagePopup17')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup17">Usage of <span class="code-font"><span class="function-syntax">Str::get_first_char</span></span>:<br><a href="4-sm.html#SP16">§16</a><br>Version Numbers - <a href="7-vn.html#SP10">§10</a><br>Web Structure - <a href="8-ws.html#SP7">§7</a>, <a href="8-ws.html#SP7_3_3">§7.3.3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">wchar_t</span><span class="plain-syntax"> </span><span class="function-syntax">Str::get_first_char</span><button class="popup" onclick="togglePopup('usagePopup17')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup17">Usage of <span class="code-font"><span class="function-syntax">Str::get_first_char</span></span>:<br><a href="4-sm.html#SP16">§16</a><br>Filenames - <a href="3-fln.html#SP8">§8</a><br>Version Numbers - <a href="7-vn.html#SP10">§10</a><br>Web Structure - <a href="8-ws.html#SP7">§7</a>, <a href="8-ws.html#SP7_3_3">§7.3.3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="4-sm.html#SP13" class="function-link"><span class="function-syntax">Str::get</span></a><span class="plain-syntax">(</span><a href="4-sm.html#SP10" class="function-link"><span class="function-syntax">Str::at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
|
|
BIN
docs/goldbach/goldbach.pdf
Normal file
BIN
docs/goldbach/goldbach.pdf
Normal file
Binary file not shown.
|
@ -224,15 +224,24 @@
|
|||
|
||||
\phantom{A}
|
||||
\vskip 0.5in
|
||||
\noindent{{\sinchhigh\noindent THE GOLDBACH CONJECTURE}}
|
||||
\noindent{{\titlefont The Goldbach Conjecture}}
|
||||
\vskip 0.5in
|
||||
\noindent{{\titlefont Complete Program}}
|
||||
\vskip 0.3in
|
||||
\noindent{{\stitlefont Graham Nelson}}
|
||||
\vskip 0.3in
|
||||
|
||||
\noindent{{\stitlefont Sections}}
|
||||
\vskip 0.1in
|
||||
\par\noindent {\it }
|
||||
\vskip 0.2in
|
||||
\noindent{{\sstitlefont Summing Primes}}
|
||||
\vskip 0.1in
|
||||
\par\noindent {\it Here we verify the conjecture for small numbers.}
|
||||
|
||||
\vskip 0.2in
|
||||
\noindent{{\sstitlefont The Sieve of Eratosthenes}}
|
||||
\vskip 0.1in
|
||||
\par\noindent {\it A fairly fast way to determine if small numbers are prime, given storage.}
|
||||
|
||||
|
||||
% Weave of 'Complete Program' generated by Inweb
|
||||
\weavesectionsss{}{Sections}{Sections\quad$\P$}{\P}{S/sp}%
|
||||
\weavesectionss{}{Summing Primes}{Summing Primes\quad$\P$}{\P}{}%
|
||||
\smallskip\par\noindent{\it Here we verify the conjecture for small numbers.}\smallskip\noindent
|
||||
\weavesection{1}{Dunno}{\quad$\S$1}{\S}{S/sp}%
|
||||
|
|
|
@ -69,7 +69,6 @@ command line: there will only ever be one of these.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">functions_switch</span><span class="plain-syntax">; </span><span class="comment-syntax"> </span><span class="extract"><span class="extract-syntax">-functions</span></span><span class="comment-syntax">: print catalogue of functions within sections</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">structures_switch</span><span class="plain-syntax">; </span><span class="comment-syntax"> </span><span class="extract"><span class="extract-syntax">-structures</span></span><span class="comment-syntax">: print catalogue of structures within sections</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">advance_switch</span><span class="plain-syntax">; </span><span class="comment-syntax"> </span><span class="extract"><span class="extract-syntax">-advance-build</span></span><span class="comment-syntax">: advance build file for web</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">open_pdf_switch</span><span class="plain-syntax">; </span><span class="comment-syntax"> </span><span class="extract"><span class="extract-syntax">-open-pdf</span></span><span class="comment-syntax">: open any woven PDF in the OS once it is made</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">scan_switch</span><span class="plain-syntax">; </span><span class="comment-syntax"> </span><span class="extract"><span class="extract-syntax">-scan</span></span><span class="comment-syntax">: simply show the syntactic scan of the source</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">weave_to_setting</span><span class="plain-syntax">; </span><span class="comment-syntax"> </span><span class="extract"><span class="extract-syntax">-weave-to X</span></span><span class="comment-syntax">: the pathname X, if supplied</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">weave_into_setting</span><span class="plain-syntax">; </span><span class="comment-syntax"> </span><span class="extract"><span class="extract-syntax">-weave-into X</span></span><span class="comment-syntax">: the pathname X, if supplied</span>
|
||||
|
@ -130,7 +129,6 @@ then declare them.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">args</span><span class="plain-syntax">.</span><span class="element-syntax">functions_switch</span><span class="plain-syntax"> = </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">args</span><span class="plain-syntax">.</span><span class="element-syntax">structures_switch</span><span class="plain-syntax"> = </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">args</span><span class="plain-syntax">.</span><span class="element-syntax">advance_switch</span><span class="plain-syntax"> = </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">args</span><span class="plain-syntax">.</span><span class="element-syntax">open_pdf_switch</span><span class="plain-syntax"> = </span><span class="constant-syntax">NOT_APPLICABLE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">args</span><span class="plain-syntax">.</span><span class="element-syntax">scan_switch</span><span class="plain-syntax"> = </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">args</span><span class="plain-syntax">.</span><span class="element-syntax">verbose_switch</span><span class="plain-syntax"> = </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">args</span><span class="plain-syntax">.</span><span class="element-syntax">chosen_web</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
|
@ -369,9 +367,6 @@ provides automatically.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">WEAVE_TO_CLSW:</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">args</span><span class="plain-syntax">-></span><span class="element-syntax">weave_to_setting</span><span class="plain-syntax"> = </span><a href="../foundation-module/3-fln.html#SP3" class="function-link"><span class="function-syntax">Filenames::from_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">arg</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="1-cnf.html#SP7" class="function-link"><span class="function-syntax">Configuration::set_fundamental_mode</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">args</span><span class="plain-syntax">, </span><span class="constant-syntax">WEAVE_MODE</span><span class="plain-syntax">); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">OPEN_CLSW:</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">args</span><span class="plain-syntax">-></span><span class="element-syntax">open_pdf_switch</span><span class="plain-syntax"> = </span><span class="constant-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><a href="1-cnf.html#SP7" class="function-link"><span class="function-syntax">Configuration::set_fundamental_mode</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">args</span><span class="plain-syntax">, </span><span class="constant-syntax">WEAVE_MODE</span><span class="plain-syntax">); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">WEAVE_AS_CLSW:</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">args</span><span class="plain-syntax">-></span><span class="element-syntax">weave_pattern</span><span class="plain-syntax"> = </span><a href="../foundation-module/4-sm.html#SP3" class="function-link"><span class="function-syntax">Str::duplicate</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">arg</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="1-cnf.html#SP7" class="function-link"><span class="function-syntax">Configuration::set_fundamental_mode</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">args</span><span class="plain-syntax">, </span><span class="constant-syntax">WEAVE_MODE</span><span class="plain-syntax">); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
|
|
|
@ -349,18 +349,13 @@ which for many small webs will be the entire thing.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">r</span><span class="plain-syntax"> != </span><span class="constant-syntax">SWARM_OFF_SWM</span><span class="plain-syntax">) </span><span class="identifier-syntax">ins</span><span class="plain-syntax">-></span><span class="identifier-syntax">swarm_mode</span><span class="plain-syntax"> = </span><span class="identifier-syntax">r</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-pc.html#SP7_4_3_1" class="named-paragraph-link"><span class="named-paragraph">Assign section numbers for printing purposes</span><span class="named-paragraph-number">7.4.3.1</span></span></a><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ins</span><span class="plain-syntax">-></span><span class="element-syntax">swarm_mode</span><span class="plain-syntax"> == </span><span class="constant-syntax">SWARM_OFF_SWM</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">shall_we_open</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ins</span><span class="plain-syntax">-></span><span class="identifier-syntax">open_pdf_switch</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">shall_we_open</span><span class="plain-syntax"> == </span><span class="constant-syntax">NOT_APPLICABLE</span><span class="plain-syntax">) { </span><span class="comment-syntax"> i.e., if it wasn't set at the command line</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP8" class="function-link"><span class="function-syntax">Str::len</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pattern</span><span class="plain-syntax">-></span><span class="element-syntax">open_command</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">shall_we_open</span><span class="plain-syntax"> = </span><span class="constant-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">shall_we_open</span><span class="plain-syntax"> = </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><a href="1-ts.html#SP2" class="function-link"><span class="function-syntax">Swarm::weave_subset</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="identifier-syntax">ins</span><span class="plain-syntax">-></span><span class="element-syntax">chosen_range</span><span class="plain-syntax">, </span><span class="identifier-syntax">shall_we_open</span><span class="plain-syntax">, </span><span class="identifier-syntax">tag</span><span class="plain-syntax">, </span><span class="identifier-syntax">pattern</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><a href="1-ts.html#SP2" class="function-link"><span class="function-syntax">Swarm::weave_subset</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="identifier-syntax">ins</span><span class="plain-syntax">-></span><span class="element-syntax">chosen_range</span><span class="plain-syntax">, </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">, </span><span class="identifier-syntax">tag</span><span class="plain-syntax">, </span><span class="identifier-syntax">pattern</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">ins</span><span class="plain-syntax">-></span><span class="element-syntax">weave_to_setting</span><span class="plain-syntax">, </span><span class="identifier-syntax">ins</span><span class="plain-syntax">-></span><span class="element-syntax">weave_into_setting</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">ins</span><span class="plain-syntax">-></span><span class="element-syntax">breadcrumb_setting</span><span class="plain-syntax">, </span><span class="identifier-syntax">ins</span><span class="plain-syntax">-></span><span class="element-syntax">navigation_setting</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">ins</span><span class="plain-syntax">-></span><span class="element-syntax">breadcrumb_setting</span><span class="plain-syntax">, </span><span class="identifier-syntax">ins</span><span class="plain-syntax">-></span><span class="element-syntax">navigation_setting</span><span class="plain-syntax">, </span><span class="identifier-syntax">ins</span><span class="plain-syntax">-></span><span class="element-syntax">verbose_switch</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><a href="1-ts.html#SP1" class="function-link"><span class="function-syntax">Swarm::weave</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="identifier-syntax">ins</span><span class="plain-syntax">-></span><span class="element-syntax">chosen_range</span><span class="plain-syntax">, </span><span class="identifier-syntax">ins</span><span class="plain-syntax">-></span><span class="element-syntax">swarm_mode</span><span class="plain-syntax">, </span><span class="identifier-syntax">tag</span><span class="plain-syntax">, </span><span class="identifier-syntax">pattern</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">ins</span><span class="plain-syntax">-></span><span class="element-syntax">weave_to_setting</span><span class="plain-syntax">, </span><span class="identifier-syntax">ins</span><span class="plain-syntax">-></span><span class="element-syntax">weave_into_setting</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">ins</span><span class="plain-syntax">-></span><span class="element-syntax">breadcrumb_setting</span><span class="plain-syntax">, </span><span class="identifier-syntax">ins</span><span class="plain-syntax">-></span><span class="element-syntax">navigation_setting</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">ins</span><span class="plain-syntax">-></span><span class="element-syntax">breadcrumb_setting</span><span class="plain-syntax">, </span><span class="identifier-syntax">ins</span><span class="plain-syntax">-></span><span class="element-syntax">navigation_setting</span><span class="plain-syntax">, </span><span class="identifier-syntax">ins</span><span class="plain-syntax">-></span><span class="element-syntax">verbose_switch</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><a href="5-fm.html#SP4" class="function-link"><span class="function-syntax">Formats::end_weaving</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="identifier-syntax">pattern</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
|
|
|
@ -46,7 +46,7 @@ function togglePopup(material_id) {
|
|||
<!--Weave of 'Patterns' generated by Inweb-->
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="index.html">inweb</a></li><li><a href="index.html#1">Chapter 1: Top Level</a></li><li><b>Patterns</b></li></ul><p class="purpose">Managing weave patterns, which are bundled configuration settings for weaving.</p>
|
||||
|
||||
<ul class="toc"><li><a href="1-ptt.html#SP1">§1. Reading in</a></li><li><a href="1-ptt.html#SP5">§5. Obtaining files</a></li></ul><hr class="tocbar">
|
||||
<ul class="toc"><li><a href="1-ptt.html#SP1">§1. Reading in</a></li><li><a href="1-ptt.html#SP5">§5. Post-processing</a></li><li><a href="1-ptt.html#SP6">§6. Obtaining files</a></li></ul><hr class="tocbar">
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP1"></a><b>§1. Reading in. </b>Patterns are stored as directories in the file system, and are identified by
|
||||
names such as <span class="extract"><span class="extract-syntax">HTML</span></span>. On request, we need to find the directory corresponding
|
||||
|
@ -66,9 +66,8 @@ to such a name, and to read it in. This structure holds the result:
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">mathematics_plugin</span><span class="plain-syntax">; </span><span class="comment-syntax"> name only, not a </span><span class="extract"><span class="extract-syntax">weave_pattern *</span></span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">footnotes_plugin</span><span class="plain-syntax">; </span><span class="comment-syntax"> name only, not a </span><span class="extract"><span class="extract-syntax">weave_pattern *</span></span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tex_command</span><span class="plain-syntax">; </span><span class="comment-syntax"> shell command to use for </span><span class="extract"><span class="extract-syntax">tex</span></span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pdftex_command</span><span class="plain-syntax">; </span><span class="comment-syntax"> shell command to use for </span><span class="extract"><span class="extract-syntax">pdftex</span></span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">open_command</span><span class="plain-syntax">; </span><span class="comment-syntax"> shell command to use for </span><span class="extract"><span class="extract-syntax">open</span></span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">initial_extension</span><span class="plain-syntax">; </span><span class="comment-syntax"> filename extension, that is</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">post_commands</span><span class="plain-syntax">; </span><span class="comment-syntax"> of </span><span class="extract"><span class="extract-syntax">text_stream</span></span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">embed_CSS</span><span class="plain-syntax">; </span><span class="comment-syntax"> embed CSS directly into any HTML files made?</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">show_abbrevs</span><span class="plain-syntax">; </span><span class="comment-syntax"> show section range abbreviations in the weave?</span>
|
||||
|
@ -82,7 +81,7 @@ to such a name, and to read it in. This structure holds the result:
|
|||
<span class="plain-syntax"> </span><span class="constant-syntax">MEMORY_MANAGEMENT</span>
|
||||
<span class="plain-syntax">} </span><span class="reserved-syntax">weave_pattern</span><span class="plain-syntax">;</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>The structure weave_pattern is accessed in 1/pc, 1/ts, 5/fm, 5/tf, 5/hf, 5/wp, 5/rtt and here.</li></ul>
|
||||
<ul class="endnotetexts"><li>The structure weave_pattern is accessed in 1/pc, 1/ts, 5/fm, 5/tf, 5/hf, 5/wp and here.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP2"></a><b>§2. </b>When a given web needs a pattern with a given name, this is where it comes.
|
||||
</p>
|
||||
|
||||
|
@ -111,9 +110,8 @@ to such a name, and to read it in. This structure holds the result:
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">wp</span><span class="plain-syntax">-></span><span class="element-syntax">footnotes_plugin</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wp</span><span class="plain-syntax">-></span><span class="element-syntax">mathematics_plugin</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wp</span><span class="plain-syntax">-></span><span class="element-syntax">default_range</span><span class="plain-syntax"> = </span><a href="../foundation-module/4-sm.html#SP3" class="function-link"><span class="function-syntax">Str::duplicate</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"0"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wp</span><span class="plain-syntax">-></span><span class="element-syntax">tex_command</span><span class="plain-syntax"> = </span><a href="../foundation-module/4-sm.html#SP3" class="function-link"><span class="function-syntax">Str::duplicate</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"tex"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wp</span><span class="plain-syntax">-></span><span class="element-syntax">pdftex_command</span><span class="plain-syntax"> = </span><a href="../foundation-module/4-sm.html#SP3" class="function-link"><span class="function-syntax">Str::duplicate</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"pdftex"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wp</span><span class="plain-syntax">-></span><span class="element-syntax">open_command</span><span class="plain-syntax"> = </span><a href="../foundation-module/4-sm.html#SP3" class="function-link"><span class="function-syntax">Str::duplicate</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"open"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wp</span><span class="plain-syntax">-></span><span class="element-syntax">initial_extension</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wp</span><span class="plain-syntax">-></span><span class="element-syntax">post_commands</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NEW_LINKED_LIST</span><span class="plain-syntax">(</span><span class="reserved-syntax">text_stream</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wp</span><span class="plain-syntax">-></span><span class="element-syntax">commands</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wp</span><span class="plain-syntax">-></span><span class="element-syntax">name_command_given</span><span class="plain-syntax"> = </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
</pre>
|
||||
|
@ -209,16 +207,14 @@ following routine:
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">wp</span><span class="plain-syntax">-></span><span class="element-syntax">number_sections</span><span class="plain-syntax"> = </span><a href="1-ptt.html#SP4" class="function-link"><span class="function-syntax">Patterns::yes_or_no</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">value</span><span class="plain-syntax">, </span><span class="identifier-syntax">tfp</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq_insensitive</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">key</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"default range"</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wp</span><span class="plain-syntax">-></span><span class="element-syntax">default_range</span><span class="plain-syntax"> = </span><a href="../foundation-module/4-sm.html#SP3" class="function-link"><span class="function-syntax">Str::duplicate</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">value</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq_insensitive</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">key</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"initial extension"</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wp</span><span class="plain-syntax">-></span><span class="element-syntax">initial_extension</span><span class="plain-syntax"> = </span><a href="../foundation-module/4-sm.html#SP3" class="function-link"><span class="function-syntax">Str::duplicate</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">value</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq_insensitive</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">key</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"mathematics plugin"</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wp</span><span class="plain-syntax">-></span><span class="element-syntax">mathematics_plugin</span><span class="plain-syntax"> = </span><a href="1-ptt.html#SP4" class="function-link"><span class="function-syntax">Patterns::plugin_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">value</span><span class="plain-syntax">, </span><span class="identifier-syntax">tfp</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq_insensitive</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">key</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"footnotes plugin"</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wp</span><span class="plain-syntax">-></span><span class="element-syntax">footnotes_plugin</span><span class="plain-syntax"> = </span><a href="1-ptt.html#SP4" class="function-link"><span class="function-syntax">Patterns::plugin_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">value</span><span class="plain-syntax">, </span><span class="identifier-syntax">tfp</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq_insensitive</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">key</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"TeX command"</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wp</span><span class="plain-syntax">-></span><span class="element-syntax">tex_command</span><span class="plain-syntax"> = </span><a href="../foundation-module/4-sm.html#SP3" class="function-link"><span class="function-syntax">Str::duplicate</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">value</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq_insensitive</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">key</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"PDFTeX command"</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wp</span><span class="plain-syntax">-></span><span class="element-syntax">pdftex_command</span><span class="plain-syntax"> = </span><a href="../foundation-module/4-sm.html#SP3" class="function-link"><span class="function-syntax">Str::duplicate</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">value</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq_insensitive</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">key</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"open command"</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wp</span><span class="plain-syntax">-></span><span class="element-syntax">open_command</span><span class="plain-syntax"> = </span><a href="../foundation-module/4-sm.html#SP3" class="function-link"><span class="function-syntax">Str::duplicate</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">value</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq_insensitive</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">key</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"command"</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">ADD_TO_LINKED_LIST</span><span class="plain-syntax">(</span><a href="../foundation-module/4-sm.html#SP3" class="function-link"><span class="function-syntax">Str::duplicate</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">value</span><span class="plain-syntax">), </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax">, </span><span class="identifier-syntax">wp</span><span class="plain-syntax">-></span><span class="element-syntax">post_commands</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq_insensitive</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">key</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"bibliographic data"</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">match_results</span><span class="plain-syntax"> </span><span class="identifier-syntax">mr2</span><span class="plain-syntax"> = </span><a href="../foundation-module/4-pm.html#SP9" class="function-link"><span class="function-syntax">Regexp::create_mr</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-pm.html#SP10" class="function-link"><span class="function-syntax">Regexp::match</span></a><span class="plain-syntax">(&</span><span class="identifier-syntax">mr2</span><span class="plain-syntax">, </span><span class="identifier-syntax">value</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"(%c+?) = (%c+)"</span><span class="plain-syntax">)) {</span>
|
||||
|
@ -258,7 +254,48 @@ following routine:
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="../foundation-module/4-sm.html#SP3" class="function-link"><span class="function-syntax">Str::duplicate</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">arg</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP5"></a><b>§5. Obtaining files. </b>Patterns provide not merely some configuration settings (above): they also
|
||||
<p class="commentary firstcommentary"><a id="SP5"></a><b>§5. Post-processing. </b>In effect, a pattern can hold a shell script to run after each weave (subset)
|
||||
completes.
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Patterns::post_process</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">Patterns::post_process</span></span>:<br>The Swarm - <a href="1-ts.html#SP2">§2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">weave_pattern</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pattern</span><span class="plain-syntax">, </span><span class="reserved-syntax">weave_order</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wv</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">verbosely</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">T</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">T</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax">, </span><span class="identifier-syntax">pattern</span><span class="plain-syntax">-></span><span class="element-syntax">post_commands</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">last_F</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">cmd</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><a href="../foundation-module/4-sm.html#SP8" class="function-link"><span class="function-syntax">Str::len</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">T</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP26" class="function-link"><span class="function-syntax">Str::includes_at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">T</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"WOVENPATH"</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><a href="../foundation-module/3-shl.html#SP1" class="function-link"><span class="function-syntax">Shell::quote_path</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">cmd</span><span class="plain-syntax">, </span><a href="../foundation-module/3-fln.html#SP6" class="function-link"><span class="function-syntax">Filenames::up</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">wv</span><span class="plain-syntax">-></span><span class="element-syntax">weave_to</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax"> += </span><span class="constant-syntax">8</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP26" class="function-link"><span class="function-syntax">Str::includes_at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">T</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"WOVEN"</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">W</span><span class="plain-syntax"> = </span><span class="identifier-syntax">wv</span><span class="plain-syntax">-></span><span class="element-syntax">weave_to</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax"> += </span><span class="constant-syntax">5</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP13" class="function-link"><span class="function-syntax">Str::get_at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">T</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">) == </span><span class="character-syntax">'.'</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">++;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">ext</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">while</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-chr.html#SP1" class="function-link"><span class="function-syntax">Characters::isalpha</span></a><span class="plain-syntax">(</span><a href="../foundation-module/4-sm.html#SP13" class="function-link"><span class="function-syntax">Str::get_at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">T</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">)))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">PUT_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">ext</span><span class="plain-syntax">,</span><a href="../foundation-module/4-sm.html#SP13" class="function-link"><span class="function-syntax">Str::get_at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">T</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">++));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax"> = </span><a href="../foundation-module/3-fln.html#SP8" class="function-link"><span class="function-syntax">Filenames::set_extension</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="identifier-syntax">ext</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">ext</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><a href="../foundation-module/3-shl.html#SP1" class="function-link"><span class="function-syntax">Shell::quote_file</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">cmd</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">last_F</span><span class="plain-syntax"> = </span><span class="identifier-syntax">W</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">--;</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">PUT_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">cmd</span><span class="plain-syntax">, </span><a href="../foundation-module/4-sm.html#SP13" class="function-link"><span class="function-syntax">Str::get_at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">T</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="../foundation-module/4-sm.html#SP26" class="function-link"><span class="function-syntax">Str::includes_at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">cmd</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"PROCESS "</span><span class="plain-syntax">)) && (</span><span class="identifier-syntax">last_F</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><a href="5-rtt.html#SP2" class="function-link"><span class="function-syntax">RunningTeX::post_process_weave</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">wv</span><span class="plain-syntax">, </span><span class="identifier-syntax">last_F</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">verbosely</span><span class="plain-syntax">) </span><span class="identifier-syntax">PRINT</span><span class="plain-syntax">(</span><span class="string-syntax">"(%S)\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">cmd</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">rv</span><span class="plain-syntax"> = </span><a href="../foundation-module/3-shl.html#SP5" class="function-link"><span class="function-syntax">Shell::run</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">cmd</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">rv</span><span class="plain-syntax"> != </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><a href="../foundation-module/3-em.html#SP2" class="function-link"><span class="function-syntax">Errors::fatal</span></a><span class="plain-syntax">(</span><span class="string-syntax">"post-processing command failed"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">cmd</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP6"></a><b>§6. Obtaining files. </b>Patterns provide not merely some configuration settings (above): they also
|
||||
provide template or style files of various kinds. When Inweb wants to find
|
||||
a pattern file with a given leafname, it looks for it in the pattern
|
||||
directory. If that fails, it then looks in the directory of the pattern
|
||||
|
@ -270,7 +307,7 @@ from each other then this routine will lock up into an infinite loop.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">filename</span><span class="plain-syntax"> *</span><span class="function-syntax">Patterns::obtain_filename</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">Patterns::obtain_filename</span></span>:<br>The Swarm - <a href="1-ts.html#SP4">§4</a><br>Format Methods - <a href="5-fm.html#SP5">§5</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">weave_pattern</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pattern</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">leafname</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">filename</span><span class="plain-syntax"> *</span><span class="function-syntax">Patterns::obtain_filename</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">Patterns::obtain_filename</span></span>:<br>The Swarm - <a href="1-ts.html#SP4">§4</a><br>Format Methods - <a href="5-fm.html#SP5">§5</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">weave_pattern</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pattern</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">leafname</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP21" class="function-link"><span class="function-syntax">Str::prefix_eq</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">leafname</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"../"</span><span class="plain-syntax">, </span><span class="constant-syntax">3</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><a href="../foundation-module/4-sm.html#SP25" class="function-link"><span class="function-syntax">Str::delete_first_character</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">leafname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="../foundation-module/4-sm.html#SP25" class="function-link"><span class="function-syntax">Str::delete_first_character</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">leafname</span><span class="plain-syntax">);</span>
|
||||
|
@ -278,15 +315,15 @@ from each other then this routine will lock up into an infinite loop.
|
|||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">F</span><span class="plain-syntax"> = </span><a href="../foundation-module/3-fln.html#SP2" class="function-link"><span class="function-syntax">Filenames::in</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pattern</span><span class="plain-syntax">-></span><span class="element-syntax">pattern_location</span><span class="plain-syntax">, </span><span class="identifier-syntax">leafname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-tf.html#SP1" class="function-link"><span class="function-syntax">TextFiles::exists</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">F</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">F</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">pattern</span><span class="plain-syntax">-></span><span class="element-syntax">based_on</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="1-ptt.html#SP5" class="function-link"><span class="function-syntax">Patterns::obtain_filename</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pattern</span><span class="plain-syntax">-></span><span class="element-syntax">based_on</span><span class="plain-syntax">, </span><span class="identifier-syntax">leafname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">pattern</span><span class="plain-syntax">-></span><span class="element-syntax">based_on</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="1-ptt.html#SP6" class="function-link"><span class="function-syntax">Patterns::obtain_filename</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pattern</span><span class="plain-syntax">-></span><span class="element-syntax">based_on</span><span class="plain-syntax">, </span><span class="identifier-syntax">leafname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP6"></a><b>§6. </b>And similarly, but with an intermediate directory:
|
||||
<p class="commentary firstcommentary"><a id="SP7"></a><b>§7. </b>And similarly, but with an intermediate directory:
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">filename</span><span class="plain-syntax"> *</span><span class="function-syntax">Patterns::find_asset</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">Patterns::find_asset</span></span>:<br>HTML Formats - <a href="5-hf.html#SP5_13">§5.13</a>, <a href="5-hf.html#SP11">§11</a><br>Weave Plugins - <a href="5-wp.html#SP4">§4</a>, <a href="5-wp.html#SP6">§6</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">weave_pattern</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pattern</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">dirname</span><span class="plain-syntax">,</span>
|
||||
<span class="reserved-syntax">filename</span><span class="plain-syntax"> *</span><span class="function-syntax">Patterns::find_asset</span><button class="popup" onclick="togglePopup('usagePopup7')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup7">Usage of <span class="code-font"><span class="function-syntax">Patterns::find_asset</span></span>:<br>HTML Formats - <a href="5-hf.html#SP5_13">§5.13</a>, <a href="5-hf.html#SP11">§11</a><br>Weave Plugins - <a href="5-wp.html#SP4">§4</a>, <a href="5-wp.html#SP6">§6</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">weave_pattern</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pattern</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">dirname</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">leafname</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">weave_pattern</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wp</span><span class="plain-syntax"> = </span><span class="identifier-syntax">pattern</span><span class="plain-syntax">; </span><span class="identifier-syntax">wp</span><span class="plain-syntax">; </span><span class="identifier-syntax">wp</span><span class="plain-syntax"> = </span><span class="identifier-syntax">wp</span><span class="plain-syntax">-></span><span class="element-syntax">based_on</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><a href="../foundation-module/3-pth.html#SP4" class="function-link"><span class="function-syntax">Pathnames::down</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">wp</span><span class="plain-syntax">-></span><span class="element-syntax">pattern_location</span><span class="plain-syntax">, </span><span class="identifier-syntax">dirname</span><span class="plain-syntax">);</span>
|
||||
|
@ -296,7 +333,7 @@ from each other then this routine will lock up into an infinite loop.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP7"></a><b>§7. </b></p>
|
||||
<p class="commentary firstcommentary"><a id="SP8"></a><b>§8. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">typedef</span><span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">css_file_transformation</span><span class="plain-syntax"> {</span>
|
||||
|
@ -304,7 +341,7 @@ from each other then this routine will lock up into an infinite loop.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">trans</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">} </span><span class="reserved-syntax">css_file_transformation</span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Patterns::copy_file_into_weave</span><button class="popup" onclick="togglePopup('usagePopup7')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup7">Usage of <span class="code-font"><span class="function-syntax">Patterns::copy_file_into_weave</span></span>:<br>HTML Formats - <a href="5-hf.html#SP5_10">§5.10</a>, <a href="5-hf.html#SP5_11">§5.11</a><br>Weave Plugins - <a href="5-wp.html#SP5_1">§5.1</a>, <a href="5-wp.html#SP6">§6</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">web</span><span class="plain-syntax"> *</span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="reserved-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">F</span><span class="plain-syntax">, </span><span class="reserved-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">trans</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Patterns::copy_file_into_weave</span><button class="popup" onclick="togglePopup('usagePopup8')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup8">Usage of <span class="code-font"><span class="function-syntax">Patterns::copy_file_into_weave</span></span>:<br>HTML Formats - <a href="5-hf.html#SP5_10">§5.10</a>, <a href="5-hf.html#SP5_11">§5.11</a><br>Weave Plugins - <a href="5-wp.html#SP5_1">§5.1</a>, <a href="5-wp.html#SP6">§6</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">web</span><span class="plain-syntax"> *</span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="reserved-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">F</span><span class="plain-syntax">, </span><span class="reserved-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">trans</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">H</span><span class="plain-syntax"> = </span><span class="identifier-syntax">W</span><span class="plain-syntax">-></span><span class="element-syntax">redirect_weaves_to</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">H</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">H</span><span class="plain-syntax"> = </span><a href="2-tr.html#SP7" class="function-link"><span class="function-syntax">Reader::woven_folder</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">P</span><span class="plain-syntax">) </span><span class="identifier-syntax">H</span><span class="plain-syntax"> = </span><span class="identifier-syntax">P</span><span class="plain-syntax">;</span>
|
||||
|
@ -317,12 +354,12 @@ from each other then this routine will lock up into an infinite loop.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">cft</span><span class="plain-syntax">.</span><span class="element-syntax">OUT</span><span class="plain-syntax"> = &</span><span class="identifier-syntax">css_S</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">cft</span><span class="plain-syntax">.</span><span class="element-syntax">trans</span><span class="plain-syntax"> = </span><span class="identifier-syntax">trans</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><a href="../foundation-module/4-tf.html#SP5" class="function-link"><span class="function-syntax">TextFiles::read</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">F</span><span class="plain-syntax">, </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">, </span><span class="string-syntax">"can't open CSS file"</span><span class="plain-syntax">, </span><span class="constant-syntax">TRUE</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><a href="1-ptt.html#SP7" class="function-link"><span class="function-syntax">Patterns::transform_CSS</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, (</span><span class="reserved-syntax">void</span><span class="plain-syntax"> *) &</span><span class="identifier-syntax">cft</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="1-ptt.html#SP8" class="function-link"><span class="function-syntax">Patterns::transform_CSS</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, (</span><span class="reserved-syntax">void</span><span class="plain-syntax"> *) &</span><span class="identifier-syntax">cft</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">STREAM_CLOSE</span><span class="plain-syntax">(</span><span class="identifier-syntax">cft</span><span class="plain-syntax">.</span><span class="element-syntax">OUT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><a href="../foundation-module/3-shl.html#SP3" class="function-link"><span class="function-syntax">Shell::copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">F</span><span class="plain-syntax">, </span><span class="identifier-syntax">H</span><span class="plain-syntax">, </span><span class="string-syntax">""</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Patterns::transform_CSS</span><button class="popup" onclick="togglePopup('usagePopup8')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup8">Usage of <span class="code-font"><span class="function-syntax">Patterns::transform_CSS</span></span>:<br>Weave Plugins - <a href="5-wp.html#SP6">§6</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">line</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_file_position</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tfp</span><span class="plain-syntax">, </span><span class="reserved-syntax">void</span><span class="plain-syntax"> *</span><span class="identifier-syntax">X</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Patterns::transform_CSS</span><button class="popup" onclick="togglePopup('usagePopup9')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup9">Usage of <span class="code-font"><span class="function-syntax">Patterns::transform_CSS</span></span>:<br>Weave Plugins - <a href="5-wp.html#SP6">§6</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">line</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_file_position</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tfp</span><span class="plain-syntax">, </span><span class="reserved-syntax">void</span><span class="plain-syntax"> *</span><span class="identifier-syntax">X</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">css_file_transformation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cft</span><span class="plain-syntax"> = (</span><span class="reserved-syntax">css_file_transformation</span><span class="plain-syntax"> *) </span><span class="identifier-syntax">X</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">OUT</span><span class="plain-syntax"> = </span><span class="identifier-syntax">cft</span><span class="plain-syntax">-></span><span class="element-syntax">OUT</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">match_results</span><span class="plain-syntax"> </span><span class="identifier-syntax">mr</span><span class="plain-syntax"> = </span><a href="../foundation-module/4-pm.html#SP9" class="function-link"><span class="function-syntax">Regexp::create_mr</span></a><span class="plain-syntax">();</span>
|
||||
|
@ -342,10 +379,10 @@ from each other then this routine will lock up into an infinite loop.
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>The structure css_file_transformation is accessed in 5/ptf, 5/tf, 5/hf, 5/df, 5/wp, 6/rw and here.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP8"></a><b>§8. </b></p>
|
||||
<p class="commentary firstcommentary"><a id="SP9"></a><b>§9. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Patterns::include_plugins</span><button class="popup" onclick="togglePopup('usagePopup9')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup9">Usage of <span class="code-font"><span class="function-syntax">Patterns::include_plugins</span></span>:<br>The Collater - <a href="3-tc.html#SP5_1_8_4">§5.1.8.4</a></span></button><span class="plain-syntax">(</span><span class="constant-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">web</span><span class="plain-syntax"> *</span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="reserved-syntax">weave_pattern</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pattern</span><span class="plain-syntax">, </span><span class="reserved-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">from</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Patterns::include_plugins</span><button class="popup" onclick="togglePopup('usagePopup10')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup10">Usage of <span class="code-font"><span class="function-syntax">Patterns::include_plugins</span></span>:<br>The Collater - <a href="3-tc.html#SP5_1_8_4">§5.1.8.4</a></span></button><span class="plain-syntax">(</span><span class="constant-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">web</span><span class="plain-syntax"> *</span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="reserved-syntax">weave_pattern</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pattern</span><span class="plain-syntax">, </span><span class="reserved-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">from</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">weave_pattern</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><span class="plain-syntax"> = </span><span class="identifier-syntax">pattern</span><span class="plain-syntax">; </span><span class="identifier-syntax">p</span><span class="plain-syntax">; </span><span class="identifier-syntax">p</span><span class="plain-syntax"> = </span><span class="identifier-syntax">p</span><span class="plain-syntax">-></span><span class="element-syntax">based_on</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">weave_plugin</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wp</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">wp</span><span class="plain-syntax">, </span><span class="reserved-syntax">weave_plugin</span><span class="plain-syntax">, </span><span class="identifier-syntax">p</span><span class="plain-syntax">-></span><span class="element-syntax">plugins</span><span class="plain-syntax">)</span>
|
||||
|
|
|
@ -65,7 +65,7 @@ of Chapter 25 of "On the Banks of Plum Creek".
|
|||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Swarm::weave</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">Swarm::weave</span></span>:<br>Program Control - <a href="1-pc.html#SP7_4_3">§7.4.3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">web</span><span class="plain-syntax"> *</span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">range</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">swarm_mode</span><span class="plain-syntax">, </span><span class="reserved-syntax">theme_tag</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tag</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">weave_pattern</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pattern</span><span class="plain-syntax">, </span><span class="reserved-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">to</span><span class="plain-syntax">, </span><span class="reserved-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">into</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">breadcrumbs</span><span class="plain-syntax">, </span><span class="reserved-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">navigation</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">breadcrumbs</span><span class="plain-syntax">, </span><span class="reserved-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">navigation</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">verbosely</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">swarm_leader</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">chapter</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">section</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax">;</span>
|
||||
|
@ -75,7 +75,7 @@ of Chapter 25 of "On the Banks of Plum Creek".
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">W</span><span class="plain-syntax">-></span><span class="element-syntax">md</span><span class="plain-syntax">-></span><span class="element-syntax">chaptered</span><span class="plain-syntax"> == </span><span class="constant-syntax">TRUE</span><span class="plain-syntax">) && (</span><a href="2-tr.html#SP10" class="function-link"><span class="function-syntax">Reader::range_within</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">md</span><span class="plain-syntax">-></span><span class="element-syntax">ch_range</span><span class="plain-syntax">, </span><span class="identifier-syntax">range</span><span class="plain-syntax">))) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">ch_weave</span><span class="plain-syntax"> = </span><a href="1-ts.html#SP2" class="function-link"><span class="function-syntax">Swarm::weave_subset</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">md</span><span class="plain-syntax">-></span><span class="element-syntax">ch_range</span><span class="plain-syntax">, </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">, </span><span class="identifier-syntax">tag</span><span class="plain-syntax">, </span><span class="identifier-syntax">pattern</span><span class="plain-syntax">, </span><span class="identifier-syntax">to</span><span class="plain-syntax">, </span><span class="identifier-syntax">into</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">breadcrumbs</span><span class="plain-syntax">, </span><span class="identifier-syntax">navigation</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">breadcrumbs</span><span class="plain-syntax">, </span><span class="identifier-syntax">navigation</span><span class="plain-syntax">, </span><span class="identifier-syntax">verbosely</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP8" class="function-link"><span class="function-syntax">Str::len</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">range</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">swarm_leader</span><span class="plain-syntax"> = </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">ch_weave</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">swarm_mode</span><span class="plain-syntax"> == </span><span class="constant-syntax">SWARM_SECTIONS_SWM</span><span class="plain-syntax">)</span>
|
||||
|
@ -83,7 +83,7 @@ of Chapter 25 of "On the Banks of Plum Creek".
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-tr.html#SP10" class="function-link"><span class="function-syntax">Reader::range_within</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">-></span><span class="element-syntax">md</span><span class="plain-syntax">-></span><span class="element-syntax">sect_range</span><span class="plain-syntax">, </span><span class="identifier-syntax">range</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">S</span><span class="plain-syntax">-></span><span class="element-syntax">sect_weave</span><span class="plain-syntax"> = </span><a href="1-ts.html#SP2" class="function-link"><span class="function-syntax">Swarm::weave_subset</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">S</span><span class="plain-syntax">-></span><span class="element-syntax">md</span><span class="plain-syntax">-></span><span class="element-syntax">sect_range</span><span class="plain-syntax">, </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">, </span><span class="identifier-syntax">tag</span><span class="plain-syntax">, </span><span class="identifier-syntax">pattern</span><span class="plain-syntax">, </span><span class="identifier-syntax">to</span><span class="plain-syntax">, </span><span class="identifier-syntax">into</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">breadcrumbs</span><span class="plain-syntax">, </span><span class="identifier-syntax">navigation</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">breadcrumbs</span><span class="plain-syntax">, </span><span class="identifier-syntax">navigation</span><span class="plain-syntax">, </span><span class="identifier-syntax">verbosely</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
||||
<span class="plain-syntax"> </span><a href="1-ts.html#SP4" class="function-link"><span class="function-syntax">Swarm::weave_index_templates</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="identifier-syntax">range</span><span class="plain-syntax">, </span><span class="identifier-syntax">pattern</span><span class="plain-syntax">, </span><span class="identifier-syntax">into</span><span class="plain-syntax">, </span><span class="identifier-syntax">navigation</span><span class="plain-syntax">, </span><span class="identifier-syntax">breadcrumbs</span><span class="plain-syntax">);</span>
|
||||
|
@ -97,14 +97,15 @@ the call comes from Program Control).
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">weave_order</span><span class="plain-syntax"> *</span><span class="function-syntax">Swarm::weave_subset</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">Swarm::weave_subset</span></span>:<br><a href="1-ts.html#SP1">§1</a><br>Program Control - <a href="1-pc.html#SP7_4_3">§7.4.3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">web</span><span class="plain-syntax"> *</span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">range</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">open_afterwards</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">theme_tag</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tag</span><span class="plain-syntax">, </span><span class="reserved-syntax">weave_pattern</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pattern</span><span class="plain-syntax">, </span><span class="reserved-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">to</span><span class="plain-syntax">, </span><span class="reserved-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">into</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">breadcrumbs</span><span class="plain-syntax">, </span><span class="reserved-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">navigation</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">breadcrumbs</span><span class="plain-syntax">, </span><span class="reserved-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">navigation</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">verbosely</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">weave_order</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wv</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">no_inweb_errors</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="3-ta.html#SP4" class="function-link"><span class="function-syntax">Analyser::analyse_code</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-ts.html#SP2_2" class="named-paragraph-link"><span class="named-paragraph">Compile a set of instructions for the weaver</span><span class="named-paragraph-number">2.2</span></span></a><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="3-tw.html#SP1" class="function-link"><span class="function-syntax">Weaver::weave</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">wv</span><span class="plain-syntax">) == </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="comment-syntax"> i.e., the number of lines woven was zero</span>
|
||||
<span class="plain-syntax"> </span><a href="../foundation-module/3-em.html#SP2" class="function-link"><span class="function-syntax">Errors::fatal</span></a><span class="plain-syntax">(</span><span class="string-syntax">"empty weave request"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="5-fm.html#SP8" class="function-link"><span class="function-syntax">Formats::post_process_weave</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">wv</span><span class="plain-syntax">, </span><span class="identifier-syntax">open_afterwards</span><span class="plain-syntax">); </span><span class="comment-syntax"> e.g., run through TeX</span>
|
||||
<span class="plain-syntax"> </span><a href="1-ptt.html#SP5" class="function-link"><span class="function-syntax">Patterns::post_process</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">wv</span><span class="plain-syntax">-></span><span class="element-syntax">pattern</span><span class="plain-syntax">, </span><span class="identifier-syntax">wv</span><span class="plain-syntax">, </span><span class="identifier-syntax">verbosely</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="5-fm.html#SP8" class="function-link"><span class="function-syntax">Formats::post_process_weave</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">wv</span><span class="plain-syntax">, </span><span class="identifier-syntax">open_afterwards</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-ts.html#SP2_3" class="named-paragraph-link"><span class="named-paragraph">Report on the outcome of the weave to the console</span><span class="named-paragraph-number">2.3</span></span></a><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">wv</span><span class="plain-syntax">;</span>
|
||||
|
@ -180,6 +181,8 @@ the call comes from Program Control).
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">wv</span><span class="plain-syntax">-></span><span class="element-syntax">weave_to</span><span class="plain-syntax"> = </span><span class="identifier-syntax">to</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wv</span><span class="plain-syntax">-></span><span class="element-syntax">self_contained</span><span class="plain-syntax"> = </span><span class="constant-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">wv</span><span class="plain-syntax">-></span><span class="element-syntax">weave_to</span><span class="plain-syntax"> = </span><a href="../foundation-module/3-fln.html#SP2" class="function-link"><span class="function-syntax">Filenames::in</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">H</span><span class="plain-syntax">, </span><span class="identifier-syntax">leafname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP8" class="function-link"><span class="function-syntax">Str::len</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pattern</span><span class="plain-syntax">-></span><span class="element-syntax">initial_extension</span><span class="plain-syntax">) > </span><span class="constant-syntax">0</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wv</span><span class="plain-syntax">-></span><span class="element-syntax">weave_to</span><span class="plain-syntax"> = </span><a href="../foundation-module/3-fln.html#SP8" class="function-link"><span class="function-syntax">Filenames::set_extension</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">wv</span><span class="plain-syntax">-></span><span class="element-syntax">weave_to</span><span class="plain-syntax">, </span><span class="identifier-syntax">pattern</span><span class="plain-syntax">-></span><span class="element-syntax">initial_extension</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">leafname</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="1-ts.html#SP2">§2</a>.</li></ul>
|
||||
|
@ -298,7 +301,7 @@ and details of any cover-sheet to use.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">into</span><span class="plain-syntax">, </span><span class="reserved-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">nav</span><span class="plain-syntax">, </span><span class="reserved-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">crumbs</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (!(</span><a href="../foundation-module/8-bdfw.html#SP6" class="function-link"><span class="function-syntax">Bibliographic::data_exists</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">-></span><span class="element-syntax">md</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Version Number"</span><span class="plain-syntax">)))</span>
|
||||
<span class="plain-syntax"> </span><a href="../foundation-module/8-bdfw.html#SP7" class="function-link"><span class="function-syntax">Bibliographic::set_datum</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">-></span><span class="element-syntax">md</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Version Number"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">" "</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">INF</span><span class="plain-syntax"> = </span><a href="1-ptt.html#SP5" class="function-link"><span class="function-syntax">Patterns::obtain_filename</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pattern</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"template-index.html"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">INF</span><span class="plain-syntax"> = </span><a href="1-ptt.html#SP6" class="function-link"><span class="function-syntax">Patterns::obtain_filename</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pattern</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"template-index.html"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">INF</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">H</span><span class="plain-syntax"> = </span><span class="identifier-syntax">W</span><span class="plain-syntax">-></span><span class="element-syntax">redirect_weaves_to</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">H</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">H</span><span class="plain-syntax"> = </span><a href="2-tr.html#SP7" class="function-link"><span class="function-syntax">Reader::woven_folder</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">);</span>
|
||||
|
|
|
@ -383,7 +383,7 @@ tangled for.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">pathname</span><span class="plain-syntax"> *</span><span class="function-syntax">Reader::woven_folder</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">Reader::woven_folder</span></span>:<br>The Swarm - <a href="1-ts.html#SP2_2">§2.2</a>, <a href="1-ts.html#SP4">§4</a><br>Patterns - <a href="1-ptt.html#SP7">§7</a><br>HTML Formats - <a href="5-hf.html#SP11">§11</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">web</span><span class="plain-syntax"> *</span><span class="identifier-syntax">W</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">pathname</span><span class="plain-syntax"> *</span><span class="function-syntax">Reader::woven_folder</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">Reader::woven_folder</span></span>:<br>The Swarm - <a href="1-ts.html#SP2_2">§2.2</a>, <a href="1-ts.html#SP4">§4</a><br>Patterns - <a href="1-ptt.html#SP8">§8</a><br>HTML Formats - <a href="5-hf.html#SP11">§11</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">web</span><span class="plain-syntax"> *</span><span class="identifier-syntax">W</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax"> = </span><a href="../foundation-module/3-pth.html#SP4" class="function-link"><span class="function-syntax">Pathnames::down</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">-></span><span class="element-syntax">md</span><span class="plain-syntax">-></span><span class="element-syntax">path_to_web</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Woven"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/3-pth.html#SP9" class="function-link"><span class="function-syntax">Pathnames::create_in_file_system</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">) == </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><a href="../foundation-module/3-em.html#SP2" class="function-link"><span class="function-syntax">Errors::fatal_with_path</span></a><span class="plain-syntax">(</span><span class="string-syntax">"unable to create Woven subdirectory"</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
|
||||
|
|
|
@ -534,7 +534,7 @@ use this.)
|
|||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><a href="5-wp.html#SP4" class="function-link"><span class="function-syntax">WeavePlugins::begin_inclusions</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="1-ptt.html#SP8" class="function-link"><span class="function-syntax">Patterns::include_plugins</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">cls</span><span class="plain-syntax">-></span><span class="element-syntax">for_web</span><span class="plain-syntax">, </span><span class="identifier-syntax">cls</span><span class="plain-syntax">-></span><span class="element-syntax">nav_pattern</span><span class="plain-syntax">, </span><span class="identifier-syntax">cls</span><span class="plain-syntax">-></span><span class="element-syntax">into_file</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="1-ptt.html#SP9" class="function-link"><span class="function-syntax">Patterns::include_plugins</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">cls</span><span class="plain-syntax">-></span><span class="element-syntax">for_web</span><span class="plain-syntax">, </span><span class="identifier-syntax">cls</span><span class="plain-syntax">-></span><span class="element-syntax">nav_pattern</span><span class="plain-syntax">, </span><span class="identifier-syntax">cls</span><span class="plain-syntax">-></span><span class="element-syntax">into_file</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">cls</span><span class="plain-syntax">-></span><span class="element-syntax">wv</span><span class="plain-syntax">) </span><a href="1-ts.html#SP3" class="function-link"><span class="function-syntax">Swarm::include_plugins</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">cls</span><span class="plain-syntax">-></span><span class="element-syntax">for_web</span><span class="plain-syntax">, </span><span class="identifier-syntax">cls</span><span class="plain-syntax">-></span><span class="element-syntax">wv</span><span class="plain-syntax">, </span><span class="identifier-syntax">cls</span><span class="plain-syntax">-></span><span class="element-syntax">into_file</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-tc.html#SP5_1_8">§5.1.8</a>.</li></ul>
|
||||
|
@ -565,7 +565,7 @@ use this.)
|
|||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">swarm_leader</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="5-fm.html#SP11" class="function-link"><span class="function-syntax">Formats::substitute_post_processing_data</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">substituted</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="5-fm.html#SP10" class="function-link"><span class="function-syntax">Formats::substitute_post_processing_data</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">substituted</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">swarm_leader</span><span class="plain-syntax">, </span><span class="identifier-syntax">detail</span><span class="plain-syntax">, </span><span class="identifier-syntax">cls</span><span class="plain-syntax">-></span><span class="element-syntax">nav_pattern</span><span class="plain-syntax">) == </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">substituted</span><span class="plain-syntax">, </span><span class="string-syntax">"%S for complete web"</span><span class="plain-syntax">, </span><span class="identifier-syntax">detail</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
|
@ -595,7 +595,7 @@ use this.)
|
|||
<span class="plain-syntax"> </span><a href="../foundation-module/4-sm.html#SP17" class="function-link"><span class="function-syntax">Str::copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">substituted</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">md</span><span class="plain-syntax">-></span><span class="element-syntax">ch_range</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP22" class="function-link"><span class="function-syntax">Str::eq_wide_string</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">detail</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"Purpose"</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><a href="../foundation-module/4-sm.html#SP17" class="function-link"><span class="function-syntax">Str::copy</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">substituted</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">md</span><span class="plain-syntax">-></span><span class="element-syntax">rubric</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="5-fm.html#SP11" class="function-link"><span class="function-syntax">Formats::substitute_post_processing_data</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">substituted</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="5-fm.html#SP10" class="function-link"><span class="function-syntax">Formats::substitute_post_processing_data</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">substituted</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="identifier-syntax">ch_weave</span><span class="plain-syntax">, </span><span class="identifier-syntax">detail</span><span class="plain-syntax">, </span><span class="identifier-syntax">cls</span><span class="plain-syntax">-></span><span class="element-syntax">nav_pattern</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> ;</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
|
@ -640,7 +640,7 @@ use this.)
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">denom</span><span class="plain-syntax"> = </span><span class="identifier-syntax">S</span><span class="plain-syntax">-></span><span class="element-syntax">sect_paragraphs</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">denom</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">denom</span><span class="plain-syntax"> = </span><span class="constant-syntax">1</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">substituted</span><span class="plain-syntax">, </span><span class="string-syntax">"%d"</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</span><span class="plain-syntax">-></span><span class="element-syntax">sect_extent</span><span class="plain-syntax">/</span><span class="identifier-syntax">denom</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="5-fm.html#SP11" class="function-link"><span class="function-syntax">Formats::substitute_post_processing_data</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">substituted</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="5-fm.html#SP10" class="function-link"><span class="function-syntax">Formats::substitute_post_processing_data</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">substituted</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">S</span><span class="plain-syntax">-></span><span class="identifier-syntax">sect_weave</span><span class="plain-syntax">, </span><span class="identifier-syntax">detail</span><span class="plain-syntax">, </span><span class="identifier-syntax">cls</span><span class="plain-syntax">-></span><span class="element-syntax">nav_pattern</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> ;</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
|
|
|
@ -68,7 +68,7 @@ through optional method calls.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">wf</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">weave_format</span><span class="plain-syntax"> *</span><span class="function-syntax">Formats::find_by_name</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">Formats::find_by_name</span></span>:<br><a href="5-fm.html#SP10">§10</a><br>Patterns - <a href="1-ptt.html#SP3">§3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">weave_format</span><span class="plain-syntax"> *</span><span class="function-syntax">Formats::find_by_name</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">Formats::find_by_name</span></span>:<br>Patterns - <a href="1-ptt.html#SP3">§3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">weave_format</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wf</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">wf</span><span class="plain-syntax">, </span><span class="reserved-syntax">weave_format</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq_insensitive</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="identifier-syntax">wf</span><span class="plain-syntax">-></span><span class="element-syntax">format_name</span><span class="plain-syntax">))</span>
|
||||
|
@ -148,7 +148,7 @@ actual content.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">weave_format</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wf</span><span class="plain-syntax"> = </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">wv</span><span class="plain-syntax">-></span><span class="element-syntax">format</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">template</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">template</span><span class="plain-syntax">, </span><span class="string-syntax">"template-body%S"</span><span class="plain-syntax">, </span><span class="identifier-syntax">wf</span><span class="plain-syntax">-></span><span class="element-syntax">woven_extension</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">F</span><span class="plain-syntax"> = </span><a href="1-ptt.html#SP5" class="function-link"><span class="function-syntax">Patterns::obtain_filename</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">wv</span><span class="plain-syntax">-></span><span class="element-syntax">pattern</span><span class="plain-syntax">, </span><span class="identifier-syntax">template</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">F</span><span class="plain-syntax"> = </span><a href="1-ptt.html#SP6" class="function-link"><span class="function-syntax">Patterns::obtain_filename</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">wv</span><span class="plain-syntax">-></span><span class="element-syntax">pattern</span><span class="plain-syntax">, </span><span class="identifier-syntax">template</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">interior</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">VMETHOD_CALL</span><span class="plain-syntax">(</span><span class="identifier-syntax">wf</span><span class="plain-syntax">, </span><span class="constant-syntax">RENDER_FOR_MTID</span><span class="plain-syntax">, </span><span class="identifier-syntax">interior</span><span class="plain-syntax">, </span><span class="identifier-syntax">tree</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="../foundation-module/8-bdfw.html#SP7" class="function-link"><span class="function-syntax">Bibliographic::set_datum</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">wv</span><span class="plain-syntax">-></span><span class="element-syntax">weave_web</span><span class="plain-syntax">-></span><span class="element-syntax">md</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Weave Content"</span><span class="plain-syntax">, </span><span class="identifier-syntax">interior</span><span class="plain-syntax">);</span>
|
||||
|
@ -193,11 +193,9 @@ should ignore it.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">rv</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP8"></a><b>§8. Post-processing. </b>Consider what happens when Inweb makes a PDF, via TeX. The initial weave is
|
||||
to a TeX file; it's then "post-processing" which will turn this into a PDF.
|
||||
The following method calls allow such two-stage formats to function; in
|
||||
this case, it would be the PDF format which provides the necessary methods
|
||||
to turn TeX into PDF. The important method is this one:
|
||||
<p class="commentary firstcommentary"><a id="SP8"></a><b>§8. Post-processing. </b>Post-processing is now largely done by commands in the pattern file, rather
|
||||
than here, but we retain method calls to enable formats to do some idiosyncratic
|
||||
post-processing.
|
||||
</p>
|
||||
|
||||
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">POST_PROCESS_POS_MTID</span>
|
||||
|
@ -209,7 +207,8 @@ to turn TeX into PDF. The important method is this one:
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP9"></a><b>§9. </b>Optionally, a fancy report can be printed out, to describe what has been
|
||||
done:
|
||||
done. Support for TeX console reporting is hard-wired here because it's
|
||||
handled by <a href="1-ptt.html#SP5" class="internal">Patterns::post_process</a> directly.
|
||||
</p>
|
||||
|
||||
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">POST_PROCESS_REPORT_POS_MTID</span>
|
||||
|
@ -217,28 +216,12 @@ done:
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">VMETHOD_TYPE</span><span class="plain-syntax">(</span><span class="constant-syntax">POST_PROCESS_REPORT_POS_MTID</span><span class="plain-syntax">, </span><span class="reserved-syntax">weave_format</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wf</span><span class="plain-syntax">, </span><span class="reserved-syntax">weave_order</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wv</span><span class="plain-syntax">)</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Formats::report_on_post_processing</span><button class="popup" onclick="togglePopup('usagePopup10')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup10">Usage of <span class="code-font"><span class="function-syntax">Formats::report_on_post_processing</span></span>:<br>The Swarm - <a href="1-ts.html#SP2_3">§2.3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">weave_order</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wv</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="5-rtt.html#SP4" class="function-link"><span class="function-syntax">RunningTeX::report_on_post_processing</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">wv</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">VMETHOD_CALL</span><span class="plain-syntax">(</span><span class="identifier-syntax">wv</span><span class="plain-syntax">-></span><span class="element-syntax">format</span><span class="plain-syntax">, </span><span class="constant-syntax">POST_PROCESS_REPORT_POS_MTID</span><span class="plain-syntax">, </span><span class="identifier-syntax">wv</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP10"></a><b>§10. </b>After post-processing, an index file is sometimes needed. For example, if a
|
||||
big web is woven to a swarm of PDFs, one for each section, then we also want
|
||||
to make an index page in HTML which provides annotated links to those PDFs.
|
||||
</p>
|
||||
|
||||
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">INDEX_PDFS_POS_MTID</span>
|
||||
</pre>
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">IMETHOD_TYPE</span><span class="plain-syntax">(</span><span class="constant-syntax">INDEX_PDFS_POS_MTID</span><span class="plain-syntax">, </span><span class="reserved-syntax">weave_format</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wf</span><span class="plain-syntax">)</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Formats::index_pdfs</span><span class="plain-syntax">(</span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">format</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">weave_format</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wf</span><span class="plain-syntax"> = </span><a href="5-fm.html#SP1" class="function-link"><span class="function-syntax">Formats::find_by_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">format</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">wf</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">rv</span><span class="plain-syntax"> = </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">IMETHOD_CALLV</span><span class="plain-syntax">(</span><span class="identifier-syntax">rv</span><span class="plain-syntax">, </span><span class="identifier-syntax">wf</span><span class="plain-syntax">, </span><span class="constant-syntax">INDEX_PDFS_POS_MTID</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">rv</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP11"></a><b>§11. </b>And in that index file, we may want to substitute in values for placeholder
|
||||
text like <span class="extract"><span class="extract-syntax">[[PDF Size]]</span></span> in the template file. This is the <span class="extract"><span class="extract-syntax">detail</span></span>.
|
||||
<p class="commentary firstcommentary"><a id="SP10"></a><b>§10. </b>For the sake of index files, we may want to substitute in values for
|
||||
placeholder text in the template file.
|
||||
</p>
|
||||
|
||||
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">POST_PROCESS_SUBSTITUTE_POS_MTID</span>
|
||||
|
@ -248,7 +231,7 @@ text like <span class="extract"><span class="extract-syntax">[[PDF Size]]</span>
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">weave_order</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wv</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">detail</span><span class="plain-syntax">, </span><span class="reserved-syntax">weave_pattern</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pattern</span><span class="plain-syntax">)</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Formats::substitute_post_processing_data</span><button class="popup" onclick="togglePopup('usagePopup11')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup11">Usage of <span class="code-font"><span class="function-syntax">Formats::substitute_post_processing_data</span></span>:<br>The Collater - <a href="3-tc.html#SP5_1_8_6">§5.1.8.6</a>, <a href="3-tc.html#SP5_1_8_7_1">§5.1.8.7.1</a>, <a href="3-tc.html#SP5_1_8_8_1">§5.1.8.8.1</a></span></button><span class="plain-syntax">(</span><span class="constant-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">weave_order</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wv</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">detail</span><span class="plain-syntax">, </span><span class="reserved-syntax">weave_pattern</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pattern</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">rv</span><span class="plain-syntax"> = </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">rv</span><span class="plain-syntax"> = </span><a href="5-rtt.html#SP5" class="function-link"><span class="function-syntax">RunningTeX::substitute_post_processing_data</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">wv</span><span class="plain-syntax">, </span><span class="identifier-syntax">detail</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">IMETHOD_CALL</span><span class="plain-syntax">(</span><span class="identifier-syntax">rv</span><span class="plain-syntax">, </span><span class="identifier-syntax">wv</span><span class="plain-syntax">-></span><span class="element-syntax">format</span><span class="plain-syntax">, </span><span class="constant-syntax">POST_PROCESS_SUBSTITUTE_POS_MTID</span><span class="plain-syntax">, </span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">wv</span><span class="plain-syntax">, </span><span class="identifier-syntax">detail</span><span class="plain-syntax">, </span><span class="identifier-syntax">pattern</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">rv</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
|
|
@ -344,7 +344,7 @@ ePub respectively:
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">RF</span><span class="plain-syntax"> = </span><a href="../foundation-module/3-fln.html#SP3" class="function-link"><span class="function-syntax">Filenames::from_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">figname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN</span><span class="plain-syntax">(</span><span class="string-syntax">"center"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="../foundation-module/5-htm.html#SP14" class="function-link"><span class="function-syntax">HTML::image_to_dimensions</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">RF</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">w</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">h</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="1-ptt.html#SP7" class="function-link"><span class="function-syntax">Patterns::copy_file_into_weave</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">hrs</span><span class="plain-syntax">-></span><span class="element-syntax">wv</span><span class="plain-syntax">-></span><span class="element-syntax">weave_web</span><span class="plain-syntax">, </span><span class="identifier-syntax">F</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="1-ptt.html#SP8" class="function-link"><span class="function-syntax">Patterns::copy_file_into_weave</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">hrs</span><span class="plain-syntax">-></span><span class="element-syntax">wv</span><span class="plain-syntax">-></span><span class="element-syntax">weave_web</span><span class="plain-syntax">, </span><span class="identifier-syntax">F</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"center"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"\n"</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
|
@ -357,7 +357,7 @@ ePub respectively:
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">F</span><span class="plain-syntax"> = </span><a href="../foundation-module/3-fln.html#SP2" class="function-link"><span class="function-syntax">Filenames::in</span></a><span class="plain-syntax">(</span>
|
||||
<span class="plain-syntax"> </span><a href="../foundation-module/3-pth.html#SP4" class="function-link"><span class="function-syntax">Pathnames::down</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">hrs</span><span class="plain-syntax">-></span><span class="element-syntax">wv</span><span class="plain-syntax">-></span><span class="identifier-syntax">weave_web</span><span class="plain-syntax">-></span><span class="element-syntax">md</span><span class="plain-syntax">-></span><span class="element-syntax">path_to_web</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Audio"</span><span class="plain-syntax">),</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="identifier-syntax">audio_name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="1-ptt.html#SP7" class="function-link"><span class="function-syntax">Patterns::copy_file_into_weave</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">hrs</span><span class="plain-syntax">-></span><span class="element-syntax">wv</span><span class="plain-syntax">-></span><span class="element-syntax">weave_web</span><span class="plain-syntax">, </span><span class="identifier-syntax">F</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="1-ptt.html#SP8" class="function-link"><span class="function-syntax">Patterns::copy_file_into_weave</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">hrs</span><span class="plain-syntax">-></span><span class="element-syntax">wv</span><span class="plain-syntax">-></span><span class="element-syntax">weave_web</span><span class="plain-syntax">, </span><span class="identifier-syntax">F</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN</span><span class="plain-syntax">(</span><span class="string-syntax">"center"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"<audio controls>\n"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"<source src=\"%S\" type=\"audio/mpeg\">\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">audio_name</span><span class="plain-syntax">);</span>
|
||||
|
@ -537,7 +537,7 @@ that service uses to identify the video/audio in question.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="identifier-syntax">h</span><span class="plain-syntax"> > </span><span class="constant-syntax">0</span><span class="plain-syntax">) { </span><a href="../foundation-module/4-sm.html#SP15" class="function-link"><span class="function-syntax">Str::clear</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">CH</span><span class="plain-syntax">); </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">CH</span><span class="plain-syntax">, </span><span class="string-syntax">"%d"</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">h</span><span class="plain-syntax">); }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">embed_leaf</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">embed_leaf</span><span class="plain-syntax">, </span><span class="string-syntax">"%S.html"</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">service</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">F</span><span class="plain-syntax"> = </span><a href="1-ptt.html#SP6" class="function-link"><span class="function-syntax">Patterns::find_asset</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">hrs</span><span class="plain-syntax">-></span><span class="element-syntax">wv</span><span class="plain-syntax">-></span><span class="element-syntax">pattern</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Embedding"</span><span class="plain-syntax">, </span><span class="identifier-syntax">embed_leaf</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">F</span><span class="plain-syntax"> = </span><a href="1-ptt.html#SP7" class="function-link"><span class="function-syntax">Patterns::find_asset</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">hrs</span><span class="plain-syntax">-></span><span class="element-syntax">wv</span><span class="plain-syntax">-></span><span class="element-syntax">pattern</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Embedding"</span><span class="plain-syntax">, </span><span class="identifier-syntax">embed_leaf</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">embed_leaf</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">F</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="1-pc.html#SP8" class="function-link"><span class="function-syntax">Main::error_in_web</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"This is not a supported service"</span><span class="plain-syntax">, </span><span class="identifier-syntax">hrs</span><span class="plain-syntax">-></span><span class="element-syntax">wv</span><span class="plain-syntax">-></span><span class="element-syntax">current_weave_line</span><span class="plain-syntax">);</span>
|
||||
|
@ -930,7 +930,7 @@ that service uses to identify the video/audio in question.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">plugin_name</span><span class="plain-syntax"> = </span><span class="identifier-syntax">hrs</span><span class="plain-syntax">-></span><span class="element-syntax">wv</span><span class="plain-syntax">-></span><span class="element-syntax">pattern</span><span class="plain-syntax">-></span><span class="element-syntax">mathematics_plugin</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP8" class="function-link"><span class="function-syntax">Str::len</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">plugin_name</span><span class="plain-syntax">) == </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="5-tf.html#SP19" class="function-link"><span class="function-syntax">TeX::remove_math_mode</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">content</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="5-tf.html#SP18" class="function-link"><span class="function-syntax">TeX::remove_math_mode</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">content</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="5-hf.html#SP10" class="function-link"><span class="function-syntax">HTMLFormat::escape_text</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">R</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
|
@ -1060,7 +1060,7 @@ which is itself inside a list entry"; and so on.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">T</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">T</span><span class="plain-syntax">, </span><span class="string-syntax">"%S"</span><span class="plain-syntax">, </span><a href="../foundation-module/8-bdfw.html#SP6" class="function-link"><span class="function-syntax">Bibliographic::get_datum</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">-></span><span class="element-syntax">md</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Title"</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax">-></span><span class="element-syntax">as_ebook</span><span class="plain-syntax"> = </span><a href="../foundation-module/5-ee.html#SP5" class="function-link"><span class="function-syntax">Epub::new</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">T</span><span class="plain-syntax">, </span><span class="string-syntax">"P"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">CSS</span><span class="plain-syntax"> = </span><a href="1-ptt.html#SP6" class="function-link"><span class="function-syntax">Patterns::find_asset</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pattern</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Base"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Base.css"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">CSS</span><span class="plain-syntax"> = </span><a href="1-ptt.html#SP7" class="function-link"><span class="function-syntax">Patterns::find_asset</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pattern</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Base"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Base.css"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="../foundation-module/5-ee.html#SP5" class="function-link"><span class="function-syntax">Epub::use_CSS_throughout</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">-></span><span class="element-syntax">as_ebook</span><span class="plain-syntax">, </span><span class="identifier-syntax">CSS</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="../foundation-module/5-ee.html#SP5" class="function-link"><span class="function-syntax">Epub::attach_metadata</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">-></span><span class="element-syntax">as_ebook</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"identifier"</span><span class="plain-syntax">, </span><span class="identifier-syntax">T</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">T</span><span class="plain-syntax">)</span>
|
||||
|
|
|
@ -67,20 +67,11 @@ are too wide to display.)
|
|||
<p class="commentary firstcommentary"><a id="SP2"></a><b>§2. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RunningTeX::post_process_weave</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">RunningTeX::post_process_weave</span></span>:<br>TeX Format - <a href="5-tf.html#SP16">§16</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">weave_order</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wv</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">open_afterwards</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">to_DVI</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">console_filename</span><span class="plain-syntax"> = </span><a href="../foundation-module/3-fln.html#SP8" class="function-link"><span class="function-syntax">Filenames::set_extension</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">wv</span><span class="plain-syntax">-></span><span class="element-syntax">weave_to</span><span class="plain-syntax">, </span><span class="string-syntax">"console"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">log_filename</span><span class="plain-syntax"> = </span><a href="../foundation-module/3-fln.html#SP8" class="function-link"><span class="function-syntax">Filenames::set_extension</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">wv</span><span class="plain-syntax">-></span><span class="element-syntax">weave_to</span><span class="plain-syntax">, </span><span class="string-syntax">"log"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pdf_filename</span><span class="plain-syntax"> = </span><a href="../foundation-module/3-fln.html#SP8" class="function-link"><span class="function-syntax">Filenames::set_extension</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">wv</span><span class="plain-syntax">-></span><span class="element-syntax">weave_to</span><span class="plain-syntax">, </span><span class="string-syntax">"pdf"</span><span class="plain-syntax">);</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RunningTeX::post_process_weave</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">RunningTeX::post_process_weave</span></span>:<br>Patterns - <a href="1-ptt.html#SP5">§5</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">weave_order</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wv</span><span class="plain-syntax">, </span><span class="reserved-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">CF</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">tex_results</span><span class="plain-syntax"> *</span><span class="identifier-syntax">res</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CREATE</span><span class="plain-syntax">(</span><span class="reserved-syntax">tex_results</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-rtt.html#SP2_2" class="named-paragraph-link"><span class="named-paragraph">Initialise the TeX results</span><span class="named-paragraph-number">2.2</span></span></a><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wv</span><span class="plain-syntax">-></span><span class="element-syntax">post_processing_results</span><span class="plain-syntax"> = (</span><span class="reserved-syntax">void</span><span class="plain-syntax"> *) </span><span class="identifier-syntax">res</span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-rtt.html#SP2_3" class="named-paragraph-link"><span class="named-paragraph">Call TeX and transcribe its output into a console file</span><span class="named-paragraph-number">2.3</span></span></a><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-rtt.html#SP2_4" class="named-paragraph-link"><span class="named-paragraph">Read back the console file and parse it for error messages</span><span class="named-paragraph-number">2.4</span></span></a><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-rtt.html#SP2_5" class="named-paragraph-link"><span class="named-paragraph">Remove the now redundant TeX, console and log files, to reduce clutter</span><span class="named-paragraph-number">2.5</span></span></a><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">open_afterwards</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="5-rtt.html#SP2_6" class="named-paragraph-link"><span class="named-paragraph">Try to open the PDF file in the host operating system</span><span class="named-paragraph-number">2.6</span></span></a><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wv</span><span class="plain-syntax">-></span><span class="element-syntax">post_processing_results</span><span class="plain-syntax"> = </span><span class="identifier-syntax">res</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-rtt.html#SP2_3" class="named-paragraph-link"><span class="named-paragraph">Read back the console file and parse it for error messages</span><span class="named-paragraph-number">2.3</span></span></a><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP2_1"></a><b>§2.1. </b>We're going to have to read in a console file of TeX output to work out
|
||||
|
@ -106,82 +97,27 @@ what happened, and this structure will store what we find:
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">res</span><span class="plain-syntax">-></span><span class="element-syntax">tex_error_count</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">res</span><span class="plain-syntax">-></span><span class="element-syntax">page_count</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">res</span><span class="plain-syntax">-></span><span class="element-syntax">pdf_size</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">res</span><span class="plain-syntax">-></span><span class="element-syntax">PDF_filename</span><span class="plain-syntax"> = </span><span class="identifier-syntax">pdf_filename</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">res</span><span class="plain-syntax">-></span><span class="element-syntax">PDF_filename</span><span class="plain-syntax"> = </span><a href="../foundation-module/3-fln.html#SP8" class="function-link"><span class="function-syntax">Filenames::set_extension</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">CF</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">".pdf"</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-rtt.html#SP2">§2</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP2_3"></a><b>§2.3. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Call TeX and transcribe its output into a console file</span><span class="named-paragraph-number">2.3</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">TEMP</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tex_rel</span><span class="plain-syntax"> = </span><a href="../foundation-module/3-fln.html#SP7" class="function-link"><span class="function-syntax">Filenames::without_path</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">wv</span><span class="plain-syntax">-></span><span class="element-syntax">weave_to</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">console_rel</span><span class="plain-syntax"> = </span><a href="../foundation-module/3-fln.html#SP7" class="function-link"><span class="function-syntax">Filenames::without_path</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">console_filename</span><span class="plain-syntax">);</span>
|
||||
|
||||
<span class="plain-syntax"> </span><a href="../foundation-module/3-shl.html#SP1" class="function-link"><span class="function-syntax">Shell::plain</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">TEMP</span><span class="plain-syntax">, </span><span class="string-syntax">"cd "</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="../foundation-module/3-shl.html#SP1" class="function-link"><span class="function-syntax">Shell::quote_path</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">TEMP</span><span class="plain-syntax">, </span><a href="../foundation-module/3-fln.html#SP6" class="function-link"><span class="function-syntax">Filenames::up</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">wv</span><span class="plain-syntax">-></span><span class="element-syntax">weave_to</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="../foundation-module/3-shl.html#SP1" class="function-link"><span class="function-syntax">Shell::plain</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">TEMP</span><span class="plain-syntax">, </span><span class="string-syntax">"; "</span><span class="plain-syntax">);</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tool</span><span class="plain-syntax"> = </span><span class="identifier-syntax">wv</span><span class="plain-syntax">-></span><span class="element-syntax">pattern</span><span class="plain-syntax">-></span><span class="element-syntax">pdftex_command</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">to_DVI</span><span class="plain-syntax">) </span><span class="identifier-syntax">tool</span><span class="plain-syntax"> = </span><span class="identifier-syntax">wv</span><span class="plain-syntax">-></span><span class="element-syntax">pattern</span><span class="plain-syntax">-></span><span class="element-syntax">tex_command</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">TEMP</span><span class="plain-syntax">, </span><span class="string-syntax">"%S"</span><span class="plain-syntax">, </span><span class="identifier-syntax">tool</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="../foundation-module/3-shl.html#SP1" class="function-link"><span class="function-syntax">Shell::plain</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">TEMP</span><span class="plain-syntax">, </span><span class="string-syntax">" -interaction=scrollmode "</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="../foundation-module/3-shl.html#SP1" class="function-link"><span class="function-syntax">Shell::quote_file</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">TEMP</span><span class="plain-syntax">, </span><span class="identifier-syntax">tex_rel</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="../foundation-module/3-shl.html#SP1" class="function-link"><span class="function-syntax">Shell::plain</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">TEMP</span><span class="plain-syntax">, </span><span class="string-syntax">">"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="../foundation-module/3-shl.html#SP1" class="function-link"><span class="function-syntax">Shell::quote_file</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">TEMP</span><span class="plain-syntax">, </span><span class="identifier-syntax">console_rel</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="../foundation-module/3-shl.html#SP5" class="function-link"><span class="function-syntax">Shell::run</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">TEMP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">TEMP</span><span class="plain-syntax">)</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-rtt.html#SP2">§2</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP2_4"></a><b>§2.4. </b>TeX helpfully reports the size and page count of what it produces, and
|
||||
<p class="commentary firstcommentary"><a id="SP2_3"></a><b>§2.3. </b>TeX helpfully reports the size and page count of what it produces, and
|
||||
we're not too proud to scrape that information out of the console file, besides
|
||||
the error messages (which begin with an exclamation mark in column 1).
|
||||
</p>
|
||||
|
||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Read back the console file and parse it for error messages</span><span class="named-paragraph-number">2.4</span></span><span class="comment-syntax"> =</span>
|
||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Read back the console file and parse it for error messages</span><span class="named-paragraph-number">2.3</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><a href="../foundation-module/4-tf.html#SP5" class="function-link"><span class="function-syntax">TextFiles::read</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">console_filename</span><span class="plain-syntax">, </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><a href="../foundation-module/4-tf.html#SP5" class="function-link"><span class="function-syntax">TextFiles::read</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">CF</span><span class="plain-syntax">, </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"can't open console file"</span><span class="plain-syntax">, </span><span class="constant-syntax">TRUE</span><span class="plain-syntax">, </span><a href="5-rtt.html#SP3" class="function-link"><span class="function-syntax">RunningTeX::scan_console_line</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> (</span><span class="reserved-syntax">void</span><span class="plain-syntax"> *) </span><span class="identifier-syntax">res</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-rtt.html#SP2">§2</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP2_5"></a><b>§2.5. </b>The log file we never wanted, but TeX produced it anyway; it's really a
|
||||
verbose form of its console output. Now it can go. So can the console file
|
||||
and even the TeX source, since that was mechanically generated from the
|
||||
web, and so is of no lasting value. The one exception is that we keep the
|
||||
console file in the event of serious errors, since otherwise it's impossible
|
||||
for the user to find out what those errors were.
|
||||
</p>
|
||||
|
||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Remove the now redundant TeX, console and log files, to reduce clutter</span><span class="named-paragraph-number">2.5</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">res</span><span class="plain-syntax">-></span><span class="element-syntax">tex_error_count</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="../foundation-module/3-shl.html#SP3" class="function-link"><span class="function-syntax">Shell::rm</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">console_filename</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="../foundation-module/3-shl.html#SP3" class="function-link"><span class="function-syntax">Shell::rm</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">log_filename</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="../foundation-module/3-shl.html#SP3" class="function-link"><span class="function-syntax">Shell::rm</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">wv</span><span class="plain-syntax">-></span><span class="element-syntax">weave_to</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-rtt.html#SP2">§2</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP2_6"></a><b>§2.6. </b>We often want to see the PDF immediately, so:
|
||||
</p>
|
||||
|
||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Try to open the PDF file in the host operating system</span><span class="named-paragraph-number">2.6</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP8" class="function-link"><span class="function-syntax">Str::len</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">wv</span><span class="plain-syntax">-></span><span class="element-syntax">pattern</span><span class="plain-syntax">-></span><span class="element-syntax">open_command</span><span class="plain-syntax">) == </span><span class="constant-syntax">0</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><a href="../foundation-module/3-em.html#SP2" class="function-link"><span class="function-syntax">Errors::fatal</span></a><span class="plain-syntax">(</span><span class="string-syntax">"no way to open PDF (see pattern.txt file)"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span>
|
||||
<span class="plain-syntax"> </span><a href="../foundation-module/3-shl.html#SP2" class="function-link"><span class="function-syntax">Shell::apply_S</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">wv</span><span class="plain-syntax">-></span><span class="element-syntax">pattern</span><span class="plain-syntax">-></span><span class="element-syntax">open_command</span><span class="plain-syntax">, </span><span class="identifier-syntax">pdf_filename</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-rtt.html#SP2">§2</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP3"></a><b>§3. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RunningTeX::scan_console_line</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">RunningTeX::scan_console_line</span></span>:<br><a href="5-rtt.html#SP2_4">§2.4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">line</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_file_position</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tfp</span><span class="plain-syntax">,</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RunningTeX::scan_console_line</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">RunningTeX::scan_console_line</span></span>:<br><a href="5-rtt.html#SP2_3">§2.3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">line</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_file_position</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tfp</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">void</span><span class="plain-syntax"> *</span><span class="identifier-syntax">res_V</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">tex_results</span><span class="plain-syntax"> *</span><span class="identifier-syntax">res</span><span class="plain-syntax"> = (</span><span class="reserved-syntax">tex_results</span><span class="plain-syntax"> *) </span><span class="identifier-syntax">res_V</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">match_results</span><span class="plain-syntax"> </span><span class="identifier-syntax">mr</span><span class="plain-syntax"> = </span><a href="../foundation-module/4-pm.html#SP9" class="function-link"><span class="function-syntax">Regexp::create_mr</span></a><span class="plain-syntax">();</span>
|
||||
|
@ -201,7 +137,7 @@ for the user to find out what those errors were.
|
|||
<p class="commentary firstcommentary"><a id="SP4"></a><b>§4. Reporting. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RunningTeX::report_on_post_processing</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">RunningTeX::report_on_post_processing</span></span>:<br>TeX Format - <a href="5-tf.html#SP17">§17</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">weave_order</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wv</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RunningTeX::report_on_post_processing</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">RunningTeX::report_on_post_processing</span></span>:<br>Format Methods - <a href="5-fm.html#SP9">§9</a><br>TeX Format - <a href="5-tf.html#SP16">§16</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">weave_order</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wv</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">tex_results</span><span class="plain-syntax"> *</span><span class="identifier-syntax">res</span><span class="plain-syntax"> = </span><span class="identifier-syntax">wv</span><span class="plain-syntax">-></span><span class="element-syntax">post_processing_results</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">res</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">PRINT</span><span class="plain-syntax">(</span><span class="string-syntax">": %dpp %dK"</span><span class="plain-syntax">, </span><span class="identifier-syntax">res</span><span class="plain-syntax">-></span><span class="identifier-syntax">page_count</span><span class="plain-syntax">, </span><span class="identifier-syntax">res</span><span class="plain-syntax">-></span><span class="element-syntax">pdf_size</span><span class="plain-syntax">/1024);</span>
|
||||
|
@ -216,7 +152,7 @@ for the user to find out what those errors were.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">RunningTeX::substitute_post_processing_data</span><button class="popup" onclick="togglePopup('usagePopup4')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup4">Usage of <span class="code-font"><span class="function-syntax">RunningTeX::substitute_post_processing_data</span></span>:<br>TeX Format - <a href="5-tf.html#SP18">§18</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">to</span><span class="plain-syntax">, </span><span class="reserved-syntax">weave_order</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wv</span><span class="plain-syntax">,</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">RunningTeX::substitute_post_processing_data</span><button class="popup" onclick="togglePopup('usagePopup4')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup4">Usage of <span class="code-font"><span class="function-syntax">RunningTeX::substitute_post_processing_data</span></span>:<br>Format Methods - <a href="5-fm.html#SP10">§10</a><br>TeX Format - <a href="5-tf.html#SP17">§17</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">to</span><span class="plain-syntax">, </span><span class="reserved-syntax">weave_order</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wv</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">detail</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">wv</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">tex_results</span><span class="plain-syntax"> *</span><span class="identifier-syntax">res</span><span class="plain-syntax"> = </span><span class="identifier-syntax">wv</span><span class="plain-syntax">-></span><span class="element-syntax">post_processing_results</span><span class="plain-syntax">;</span>
|
||||
|
|
|
@ -46,7 +46,7 @@ function togglePopup(material_id) {
|
|||
<!--Weave of 'TeX Format' generated by Inweb-->
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="index.html">inweb</a></li><li><a href="index.html#5">Chapter 5: Formats</a></li><li><b>TeX Format</b></li></ul><p class="purpose">To provide for weaving in the standard maths and science typesetting software, TeX.</p>
|
||||
|
||||
<ul class="toc"><li><a href="5-tf.html#SP1">§1. Creation</a></li><li><a href="5-tf.html#SP2">§2. Methods</a></li><li><a href="5-tf.html#SP16">§16. Post-processing</a></li><li><a href="5-tf.html#SP19">§19. Removing math mode</a></li></ul><hr class="tocbar">
|
||||
<ul class="toc"><li><a href="5-tf.html#SP1">§1. Creation</a></li><li><a href="5-tf.html#SP2">§2. Methods</a></li><li><a href="5-tf.html#SP16">§16. Post-processing</a></li><li><a href="5-tf.html#SP18">§18. Removing math mode</a></li></ul><hr class="tocbar">
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP1"></a><b>§1. Creation. </b></p>
|
||||
|
||||
|
@ -63,7 +63,8 @@ function togglePopup(material_id) {
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">weave_format</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wf</span><span class="plain-syntax"> = </span><a href="5-fm.html#SP1" class="function-link"><span class="function-syntax">Formats::create_weave_format</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"TeX"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">".tex"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">wf</span><span class="plain-syntax">, </span><span class="constant-syntax">RENDER_FOR_MTID</span><span class="plain-syntax">, </span><a href="5-tf.html#SP2" class="function-link"><span class="function-syntax">TeX::render_TeX</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-tf.html#SP1_1_1" class="named-paragraph-link"><span class="named-paragraph">Make this format basically TeX</span><span class="named-paragraph-number">1.1.1</span></span></a><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">wf</span><span class="plain-syntax">, </span><span class="constant-syntax">CHAPTER_TP_FOR_MTID</span><span class="plain-syntax">, </span><a href="5-tf.html#SP6" class="function-link"><span class="function-syntax">TeX::chapter_title_page</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">wf</span><span class="plain-syntax">, </span><span class="constant-syntax">PREFORM_DOCUMENT_FOR_MTID</span><span class="plain-syntax">, </span><a href="5-tf.html#SP15" class="function-link"><span class="function-syntax">TeX::preform_document</span></a><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-tf.html#SP1">§1</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP1_2"></a><b>§1.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Create DVI format</span><span class="named-paragraph-number">1.2</span></span><span class="comment-syntax"> =</span>
|
||||
|
@ -72,10 +73,8 @@ function togglePopup(material_id) {
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">weave_format</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wf</span><span class="plain-syntax"> = </span><a href="5-fm.html#SP1" class="function-link"><span class="function-syntax">Formats::create_weave_format</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"DVI"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">".tex"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">wf</span><span class="plain-syntax">, </span><span class="constant-syntax">RENDER_FOR_MTID</span><span class="plain-syntax">, </span><a href="5-tf.html#SP2" class="function-link"><span class="function-syntax">TeX::render_DVI</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-tf.html#SP1_1_1" class="named-paragraph-link"><span class="named-paragraph">Make this format basically TeX</span><span class="named-paragraph-number">1.1.1</span></span></a><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">wf</span><span class="plain-syntax">, </span><span class="constant-syntax">POST_PROCESS_POS_MTID</span><span class="plain-syntax">, </span><a href="5-tf.html#SP16" class="function-link"><span class="function-syntax">TeX::post_process_DVI</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">wf</span><span class="plain-syntax">, </span><span class="constant-syntax">POST_PROCESS_POS_MTID</span><span class="plain-syntax">, </span><a href="5-tf.html#SP17" class="function-link"><span class="function-syntax">TeX::post_process_report</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">wf</span><span class="plain-syntax">, </span><span class="constant-syntax">POST_PROCESS_SUBSTITUTE_POS_MTID</span><span class="plain-syntax">, </span><a href="5-tf.html#SP18" class="function-link"><span class="function-syntax">TeX::post_process_substitute</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">wf</span><span class="plain-syntax">, </span><span class="constant-syntax">CHAPTER_TP_FOR_MTID</span><span class="plain-syntax">, </span><a href="5-tf.html#SP6" class="function-link"><span class="function-syntax">TeX::chapter_title_page</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">wf</span><span class="plain-syntax">, </span><span class="constant-syntax">PREFORM_DOCUMENT_FOR_MTID</span><span class="plain-syntax">, </span><a href="5-tf.html#SP15" class="function-link"><span class="function-syntax">TeX::preform_document</span></a><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-tf.html#SP1">§1</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP1_3"></a><b>§1.3. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Create PDF format</span><span class="named-paragraph-number">1.3</span></span><span class="comment-syntax"> =</span>
|
||||
|
@ -84,20 +83,10 @@ function togglePopup(material_id) {
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">weave_format</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wf</span><span class="plain-syntax"> = </span><a href="5-fm.html#SP1" class="function-link"><span class="function-syntax">Formats::create_weave_format</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"PDF"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">".tex"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">wf</span><span class="plain-syntax">, </span><span class="constant-syntax">RENDER_FOR_MTID</span><span class="plain-syntax">, </span><a href="5-tf.html#SP2" class="function-link"><span class="function-syntax">TeX::render_PDF</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-tf.html#SP1_1_1" class="named-paragraph-link"><span class="named-paragraph">Make this format basically TeX</span><span class="named-paragraph-number">1.1.1</span></span></a><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">wf</span><span class="plain-syntax">, </span><span class="constant-syntax">POST_PROCESS_POS_MTID</span><span class="plain-syntax">, </span><a href="5-tf.html#SP16" class="function-link"><span class="function-syntax">TeX::post_process_PDF</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">wf</span><span class="plain-syntax">, </span><span class="constant-syntax">POST_PROCESS_SUBSTITUTE_POS_MTID</span><span class="plain-syntax">, </span><a href="5-tf.html#SP18" class="function-link"><span class="function-syntax">TeX::post_process_substitute</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">wf</span><span class="plain-syntax">, </span><span class="constant-syntax">INDEX_PDFS_POS_MTID</span><span class="plain-syntax">, </span><a href="5-tf.html#SP3" class="function-link"><span class="function-syntax">TeX::yes</span></a><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-tf.html#SP1">§1</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP1_1_1"></a><b>§1.1.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Make this format basically TeX</span><span class="named-paragraph-number">1.1.1</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">wf</span><span class="plain-syntax">, </span><span class="constant-syntax">CHAPTER_TP_FOR_MTID</span><span class="plain-syntax">, </span><a href="5-tf.html#SP6" class="function-link"><span class="function-syntax">TeX::chapter_title_page</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">METHOD_ADD</span><span class="plain-syntax">(</span><span class="identifier-syntax">wf</span><span class="plain-syntax">, </span><span class="constant-syntax">PREFORM_DOCUMENT_FOR_MTID</span><span class="plain-syntax">, </span><a href="5-tf.html#SP15" class="function-link"><span class="function-syntax">TeX::preform_document</span></a><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-tf.html#SP1_1">§1.1</a>, <a href="5-tf.html#SP1_2">§1.2</a>, <a href="5-tf.html#SP1_3">§1.3</a>.</li></ul>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-tf.html#SP1">§1</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP2"></a><b>§2. Methods. </b>For documentation, see "Weave Fornats".
|
||||
</p>
|
||||
|
||||
|
@ -202,7 +191,8 @@ function togglePopup(material_id) {
|
|||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">weave_chapter_header_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RETRIEVE_POINTER_weave_chapter_header_node</span><span class="plain-syntax">(</span><span class="identifier-syntax">N</span><span class="plain-syntax">-></span><span class="element-syntax">content</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="5-tf.html#SP7" class="function-link"><span class="function-syntax">TeX::paragraph_heading</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">trs</span><span class="plain-syntax">-></span><span class="element-syntax">wv</span><span class="plain-syntax">-></span><span class="element-syntax">format</span><span class="plain-syntax">, </span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">trs</span><span class="plain-syntax">-></span><span class="element-syntax">wv</span><span class="plain-syntax">, </span><span class="identifier-syntax">FIRST_IN_LINKED_LIST</span><span class="plain-syntax">(</span><span class="reserved-syntax">section</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">chap</span><span class="plain-syntax">-></span><span class="element-syntax">sections</span><span class="plain-syntax">), </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">chap</span><span class="plain-syntax">-></span><span class="element-syntax">md</span><span class="plain-syntax">-></span><span class="element-syntax">ch_title</span><span class="plain-syntax">, </span><span class="constant-syntax">3</span><span class="plain-syntax">, </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::ne</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">chap</span><span class="plain-syntax">-></span><span class="element-syntax">md</span><span class="plain-syntax">-></span><span class="element-syntax">ch_range</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"S"</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><a href="5-tf.html#SP7" class="function-link"><span class="function-syntax">TeX::paragraph_heading</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">trs</span><span class="plain-syntax">-></span><span class="element-syntax">wv</span><span class="plain-syntax">-></span><span class="element-syntax">format</span><span class="plain-syntax">, </span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">trs</span><span class="plain-syntax">-></span><span class="element-syntax">wv</span><span class="plain-syntax">, </span><span class="identifier-syntax">FIRST_IN_LINKED_LIST</span><span class="plain-syntax">(</span><span class="reserved-syntax">section</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">chap</span><span class="plain-syntax">-></span><span class="element-syntax">sections</span><span class="plain-syntax">), </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">chap</span><span class="plain-syntax">-></span><span class="element-syntax">md</span><span class="plain-syntax">-></span><span class="element-syntax">ch_title</span><span class="plain-syntax">, </span><span class="constant-syntax">3</span><span class="plain-syntax">, </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-tf.html#SP2">§2</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP2_4"></a><b>§2.4. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Render header</span><span class="named-paragraph-number">2.4</span></span><span class="comment-syntax"> =</span>
|
||||
|
@ -605,14 +595,14 @@ to a given width, into the text at the current position.
|
|||
<p class="commentary firstcommentary"><a id="SP3"></a><b>§3. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">TeX::yes</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">TeX::yes</span></span>:<br><a href="5-tf.html#SP1_3">§1.3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">weave_format</span><span class="plain-syntax"> *</span><span class="identifier-syntax">self</span><span class="plain-syntax">, </span><span class="reserved-syntax">weave_order</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wv</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">TeX::yes</span><span class="plain-syntax">(</span><span class="reserved-syntax">weave_format</span><span class="plain-syntax"> *</span><span class="identifier-syntax">self</span><span class="plain-syntax">, </span><span class="reserved-syntax">weave_order</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wv</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="constant-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP4"></a><b>§4. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">TeX::subheading</span><button class="popup" onclick="togglePopup('usagePopup7')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup7">Usage of <span class="code-font"><span class="function-syntax">TeX::subheading</span></span>:<br><a href="5-tf.html#SP2_5">§2.5</a>, <a href="5-tf.html#SP2_6">§2.6</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">weave_format</span><span class="plain-syntax"> *</span><span class="identifier-syntax">self</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="reserved-syntax">weave_order</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wv</span><span class="plain-syntax">,</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">TeX::subheading</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">TeX::subheading</span></span>:<br><a href="5-tf.html#SP2_5">§2.5</a>, <a href="5-tf.html#SP2_6">§2.6</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">weave_format</span><span class="plain-syntax"> *</span><span class="identifier-syntax">self</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="reserved-syntax">weave_order</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wv</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">level</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">comment</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">head</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">switch</span><span class="plain-syntax"> (</span><span class="identifier-syntax">level</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="constant-syntax">1</span><span class="plain-syntax">:</span>
|
||||
|
@ -651,7 +641,7 @@ to a given width, into the text at the current position.
|
|||
<p class="commentary firstcommentary"><a id="SP6"></a><b>§6. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">TeX::chapter_title_page</span><button class="popup" onclick="togglePopup('usagePopup8')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup8">Usage of <span class="code-font"><span class="function-syntax">TeX::chapter_title_page</span></span>:<br><a href="5-tf.html#SP1_1_1">§1.1.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">weave_format</span><span class="plain-syntax"> *</span><span class="identifier-syntax">self</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="reserved-syntax">weave_order</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wv</span><span class="plain-syntax">,</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">TeX::chapter_title_page</span><button class="popup" onclick="togglePopup('usagePopup7')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup7">Usage of <span class="code-font"><span class="function-syntax">TeX::chapter_title_page</span></span>:<br><a href="5-tf.html#SP1_1">§1.1</a>, <a href="5-tf.html#SP1_2">§1.2</a>, <a href="5-tf.html#SP1_3">§1.3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">weave_format</span><span class="plain-syntax"> *</span><span class="identifier-syntax">self</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="reserved-syntax">weave_order</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wv</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">chapter</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%S\\medskip\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">-></span><span class="element-syntax">md</span><span class="plain-syntax">-></span><span class="element-syntax">rubric</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">section</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax">;</span>
|
||||
|
@ -666,7 +656,7 @@ to a given width, into the text at the current position.
|
|||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P_literal</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">TeX::paragraph_heading</span><button class="popup" onclick="togglePopup('usagePopup9')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup9">Usage of <span class="code-font"><span class="function-syntax">TeX::paragraph_heading</span></span>:<br><a href="5-tf.html#SP2_3">§2.3</a>, <a href="5-tf.html#SP2_4">§2.4</a>, <a href="5-tf.html#SP2_10">§2.10</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">weave_format</span><span class="plain-syntax"> *</span><span class="identifier-syntax">self</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="reserved-syntax">weave_order</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wv</span><span class="plain-syntax">,</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">TeX::paragraph_heading</span><button class="popup" onclick="togglePopup('usagePopup8')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup8">Usage of <span class="code-font"><span class="function-syntax">TeX::paragraph_heading</span></span>:<br><a href="5-tf.html#SP2_3">§2.3</a>, <a href="5-tf.html#SP2_4">§2.4</a>, <a href="5-tf.html#SP2_10">§2.10</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">weave_format</span><span class="plain-syntax"> *</span><span class="identifier-syntax">self</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="reserved-syntax">weave_order</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wv</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">section</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="reserved-syntax">paragraph</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">heading_text</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">weight</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">no_skip</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">TeX_macro</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-tf.html#SP7_1" class="named-paragraph-link"><span class="named-paragraph">Choose which TeX macro to use in order to typeset the new paragraph heading</span><span class="named-paragraph-number">7.1</span></span></a><span class="plain-syntax">;</span>
|
||||
|
@ -777,7 +767,7 @@ mode once again:
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">TeX::source_code</span><button class="popup" onclick="togglePopup('usagePopup10')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup10">Usage of <span class="code-font"><span class="function-syntax">TeX::source_code</span></span>:<br><a href="5-tf.html#SP2_27">§2.27</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">weave_format</span><span class="plain-syntax"> *</span><span class="identifier-syntax">self</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="reserved-syntax">weave_order</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wv</span><span class="plain-syntax">,</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">TeX::source_code</span><button class="popup" onclick="togglePopup('usagePopup9')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup9">Usage of <span class="code-font"><span class="function-syntax">TeX::source_code</span></span>:<br><a href="5-tf.html#SP2_27">§2.27</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">weave_format</span><span class="plain-syntax"> *</span><span class="identifier-syntax">self</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="reserved-syntax">weave_order</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wv</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">matter</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">colouring</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">starts</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">current_colour</span><span class="plain-syntax"> = </span><span class="constant-syntax">PLAIN_COLOUR</span><span class="plain-syntax">, </span><span class="identifier-syntax">colour_wanted</span><span class="plain-syntax"> = </span><span class="constant-syntax">PLAIN_COLOUR</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"> < </span><a href="../foundation-module/4-sm.html#SP8" class="function-link"><span class="function-syntax">Str::len</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">matter</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
|
@ -813,7 +803,7 @@ messy alignment system:
|
|||
<p class="commentary firstcommentary"><a id="SP9"></a><b>§9. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">TeX::change_colour_PDF</span><button class="popup" onclick="togglePopup('usagePopup11')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup11">Usage of <span class="code-font"><span class="function-syntax">TeX::change_colour_PDF</span></span>:<br><a href="5-tf.html#SP2_32">§2.32</a>, <a href="5-tf.html#SP8_1">§8.1</a>, <a href="5-tf.html#SP10">§10</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">col</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">in_code</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">TeX::change_colour_PDF</span><button class="popup" onclick="togglePopup('usagePopup10')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup10">Usage of <span class="code-font"><span class="function-syntax">TeX::change_colour_PDF</span></span>:<br><a href="5-tf.html#SP2_32">§2.32</a>, <a href="5-tf.html#SP8_1">§8.1</a>, <a href="5-tf.html#SP10">§10</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">col</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">in_code</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">char</span><span class="plain-syntax"> *</span><span class="identifier-syntax">inout</span><span class="plain-syntax"> = </span><span class="string-syntax">""</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">in_code</span><span class="plain-syntax">) </span><span class="identifier-syntax">inout</span><span class="plain-syntax"> = </span><span class="string-syntax">"|"</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">switch</span><span class="plain-syntax"> (</span><span class="identifier-syntax">col</span><span class="plain-syntax">) {</span>
|
||||
|
@ -838,10 +828,10 @@ or DVI, only the middle one is.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">TeX::para_macro_PDF_1</span><button class="popup" onclick="togglePopup('usagePopup12')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup12">Usage of <span class="code-font"><span class="function-syntax">TeX::para_macro_PDF_1</span></span>:<br><a href="5-tf.html#SP2_17">§2.17</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">weave_format</span><span class="plain-syntax"> *</span><span class="identifier-syntax">self</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="reserved-syntax">weave_order</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wv</span><span class="plain-syntax">,</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">TeX::para_macro_PDF_1</span><button class="popup" onclick="togglePopup('usagePopup11')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup11">Usage of <span class="code-font"><span class="function-syntax">TeX::para_macro_PDF_1</span></span>:<br><a href="5-tf.html#SP2_17">§2.17</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">weave_format</span><span class="plain-syntax"> *</span><span class="identifier-syntax">self</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="reserved-syntax">weave_order</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wv</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">para_macro</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pmac</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">defn</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">TeX::para_macro</span><button class="popup" onclick="togglePopup('usagePopup13')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup13">Usage of <span class="code-font"><span class="function-syntax">TeX::para_macro</span></span>:<br><a href="5-tf.html#SP2_17">§2.17</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">weave_format</span><span class="plain-syntax"> *</span><span class="identifier-syntax">self</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="reserved-syntax">weave_order</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wv</span><span class="plain-syntax">,</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">TeX::para_macro</span><button class="popup" onclick="togglePopup('usagePopup12')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup12">Usage of <span class="code-font"><span class="function-syntax">TeX::para_macro</span></span>:<br><a href="5-tf.html#SP2_17">§2.17</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">weave_format</span><span class="plain-syntax"> *</span><span class="identifier-syntax">self</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="reserved-syntax">weave_order</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wv</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">para_macro</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pmac</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">defn</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">defn</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"|\\pdfdest num %d fit "</span><span class="plain-syntax">,</span>
|
||||
|
@ -860,7 +850,7 @@ or DVI, only the middle one is.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"\\pdfendlink|"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">TeX::para_macro_PDF_2</span><button class="popup" onclick="togglePopup('usagePopup14')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup14">Usage of <span class="code-font"><span class="function-syntax">TeX::para_macro_PDF_2</span></span>:<br><a href="5-tf.html#SP2_17">§2.17</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">weave_format</span><span class="plain-syntax"> *</span><span class="identifier-syntax">self</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="reserved-syntax">weave_order</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wv</span><span class="plain-syntax">,</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">TeX::para_macro_PDF_2</span><button class="popup" onclick="togglePopup('usagePopup13')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup13">Usage of <span class="code-font"><span class="function-syntax">TeX::para_macro_PDF_2</span></span>:<br><a href="5-tf.html#SP2_17">§2.17</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">weave_format</span><span class="plain-syntax"> *</span><span class="identifier-syntax">self</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="reserved-syntax">weave_order</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wv</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">para_macro</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pmac</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">defn</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
|
@ -874,7 +864,7 @@ or DVI, only the middle one is.
|
|||
<p class="commentary firstcommentary"><a id="SP12"></a><b>§12. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">TeX::commentary_text</span><button class="popup" onclick="togglePopup('usagePopup15')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup15">Usage of <span class="code-font"><span class="function-syntax">TeX::commentary_text</span></span>:<br><a href="5-tf.html#SP2_22">§2.22</a>, <a href="5-tf.html#SP4">§4</a>, <a href="5-tf.html#SP15_2">§15.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">weave_format</span><span class="plain-syntax"> *</span><span class="identifier-syntax">self</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="reserved-syntax">weave_order</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wv</span><span class="plain-syntax">,</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">TeX::commentary_text</span><button class="popup" onclick="togglePopup('usagePopup14')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup14">Usage of <span class="code-font"><span class="function-syntax">TeX::commentary_text</span></span>:<br><a href="5-tf.html#SP2_22">§2.22</a>, <a href="5-tf.html#SP4">§4</a>, <a href="5-tf.html#SP15_2">§15.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">weave_format</span><span class="plain-syntax"> *</span><span class="identifier-syntax">self</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="reserved-syntax">weave_order</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wv</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">id</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">math_mode</span><span class="plain-syntax"> = </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"> < </span><a href="../foundation-module/4-sm.html#SP8" class="function-link"><span class="function-syntax">Str::len</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">); </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
|
@ -919,7 +909,7 @@ the special Preform grammar document.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">TeX::preform_document</span><button class="popup" onclick="togglePopup('usagePopup16')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup16">Usage of <span class="code-font"><span class="function-syntax">TeX::preform_document</span></span>:<br><a href="5-tf.html#SP1_1_1">§1.1.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">weave_format</span><span class="plain-syntax"> *</span><span class="identifier-syntax">self</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="reserved-syntax">web</span><span class="plain-syntax"> *</span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="reserved-syntax">weave_order</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wv</span><span class="plain-syntax">,</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">TeX::preform_document</span><button class="popup" onclick="togglePopup('usagePopup15')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup15">Usage of <span class="code-font"><span class="function-syntax">TeX::preform_document</span></span>:<br><a href="5-tf.html#SP1_1">§1.1</a>, <a href="5-tf.html#SP1_2">§1.2</a>, <a href="5-tf.html#SP1_3">§1.3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">weave_format</span><span class="plain-syntax"> *</span><span class="identifier-syntax">self</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="reserved-syntax">web</span><span class="plain-syntax"> *</span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="reserved-syntax">weave_order</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wv</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">chapter</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><span class="reserved-syntax">section</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax">, </span><span class="reserved-syntax">source_line</span><span class="plain-syntax"> *</span><span class="identifier-syntax">L</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">matter</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">concluding_comment</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">L</span><span class="plain-syntax">-></span><span class="identifier-syntax">preform_nonterminal_defined</span><span class="plain-syntax">) {</span>
|
||||
|
@ -1008,29 +998,19 @@ the special Preform grammar document.
|
|||
<p class="commentary firstcommentary"><a id="SP16"></a><b>§16. Post-processing. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">TeX::post_process_PDF</span><button class="popup" onclick="togglePopup('usagePopup17')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup17">Usage of <span class="code-font"><span class="function-syntax">TeX::post_process_PDF</span></span>:<br><a href="5-tf.html#SP1_3">§1.3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">weave_format</span><span class="plain-syntax"> *</span><span class="identifier-syntax">self</span><span class="plain-syntax">, </span><span class="reserved-syntax">weave_order</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wv</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">open</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="5-rtt.html#SP2" class="function-link"><span class="function-syntax">RunningTeX::post_process_weave</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">wv</span><span class="plain-syntax">, </span><span class="identifier-syntax">open</span><span class="plain-syntax">, </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">TeX::post_process_DVI</span><button class="popup" onclick="togglePopup('usagePopup18')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup18">Usage of <span class="code-font"><span class="function-syntax">TeX::post_process_DVI</span></span>:<br><a href="5-tf.html#SP1_2">§1.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">weave_format</span><span class="plain-syntax"> *</span><span class="identifier-syntax">self</span><span class="plain-syntax">, </span><span class="reserved-syntax">weave_order</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wv</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">open</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="5-rtt.html#SP2" class="function-link"><span class="function-syntax">RunningTeX::post_process_weave</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">wv</span><span class="plain-syntax">, </span><span class="identifier-syntax">open</span><span class="plain-syntax">, </span><span class="constant-syntax">TRUE</span><span class="plain-syntax">);</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">TeX::post_process_report</span><span class="plain-syntax">(</span><span class="reserved-syntax">weave_format</span><span class="plain-syntax"> *</span><span class="identifier-syntax">self</span><span class="plain-syntax">, </span><span class="reserved-syntax">weave_order</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wv</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="5-rtt.html#SP4" class="function-link"><span class="function-syntax">RunningTeX::report_on_post_processing</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">wv</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP17"></a><b>§17. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">TeX::post_process_report</span><button class="popup" onclick="togglePopup('usagePopup19')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup19">Usage of <span class="code-font"><span class="function-syntax">TeX::post_process_report</span></span>:<br><a href="5-tf.html#SP1_2">§1.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">weave_format</span><span class="plain-syntax"> *</span><span class="identifier-syntax">self</span><span class="plain-syntax">, </span><span class="reserved-syntax">weave_order</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wv</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="5-rtt.html#SP4" class="function-link"><span class="function-syntax">RunningTeX::report_on_post_processing</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">wv</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP18"></a><b>§18. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">TeX::post_process_substitute</span><button class="popup" onclick="togglePopup('usagePopup20')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup20">Usage of <span class="code-font"><span class="function-syntax">TeX::post_process_substitute</span></span>:<br><a href="5-tf.html#SP1_2">§1.2</a>, <a href="5-tf.html#SP1_3">§1.3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">weave_format</span><span class="plain-syntax"> *</span><span class="identifier-syntax">self</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">,</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">TeX::post_process_substitute</span><span class="plain-syntax">(</span><span class="reserved-syntax">weave_format</span><span class="plain-syntax"> *</span><span class="identifier-syntax">self</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">weave_order</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wv</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">detail</span><span class="plain-syntax">, </span><span class="reserved-syntax">weave_pattern</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pattern</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="5-rtt.html#SP5" class="function-link"><span class="function-syntax">RunningTeX::substitute_post_processing_data</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">wv</span><span class="plain-syntax">, </span><span class="identifier-syntax">detail</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP19"></a><b>§19. Removing math mode. </b>"Math mode", in TeX jargon, is what happens when a mathematical formula
|
||||
<p class="commentary firstcommentary"><a id="SP18"></a><b>§18. Removing math mode. </b>"Math mode", in TeX jargon, is what happens when a mathematical formula
|
||||
is written inside dollar signs: in <span class="extract"><span class="extract-syntax">Answer is $x+y^2$</span></span>, the math mode
|
||||
content is <span class="extract"><span class="extract-syntax">x+y^2</span></span>. But since math mode doesn't (easily) exist in HTML,
|
||||
for example, we want to strip it out if the format is not TeX-related.
|
||||
|
@ -1038,20 +1018,20 @@ To do this, the weaver calls the following.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">TeX::remove_math_mode</span><button class="popup" onclick="togglePopup('usagePopup21')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup21">Usage of <span class="code-font"><span class="function-syntax">TeX::remove_math_mode</span></span>:<br>HTML Formats - <a href="5-hf.html#SP5_34">§5.34</a></span></button><span class="plain-syntax">(</span><span class="constant-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">text</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">TeX::remove_math_mode</span><button class="popup" onclick="togglePopup('usagePopup16')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup16">Usage of <span class="code-font"><span class="function-syntax">TeX::remove_math_mode</span></span>:<br>HTML Formats - <a href="5-hf.html#SP5_34">§5.34</a></span></button><span class="plain-syntax">(</span><span class="constant-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">text</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">math_matter</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="5-tf.html#SP19" class="function-link"><span class="function-syntax">TeX::remove_math_mode_range</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">math_matter</span><span class="plain-syntax">, </span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><a href="../foundation-module/4-sm.html#SP8" class="function-link"><span class="function-syntax">Str::len</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">text</span><span class="plain-syntax">)-1);</span>
|
||||
<span class="plain-syntax"> </span><a href="5-tf.html#SP18" class="function-link"><span class="function-syntax">TeX::remove_math_mode_range</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">math_matter</span><span class="plain-syntax">, </span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><a href="../foundation-module/4-sm.html#SP8" class="function-link"><span class="function-syntax">Str::len</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">text</span><span class="plain-syntax">)-1);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%S"</span><span class="plain-syntax">, </span><span class="identifier-syntax">math_matter</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">math_matter</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">TeX::remove_math_mode_range</span><button class="popup" onclick="togglePopup('usagePopup22')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup22">Usage of <span class="code-font"><span class="function-syntax">TeX::remove_math_mode_range</span></span>:<br><a href="5-tf.html#SP19_1">§19.1</a>, <a href="5-tf.html#SP19_2">§19.2</a>, <a href="5-tf.html#SP19_3">§19.3</a></span></button><span class="plain-syntax">(</span><span class="constant-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">from</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">to</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">TeX::remove_math_mode_range</span><button class="popup" onclick="togglePopup('usagePopup17')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup17">Usage of <span class="code-font"><span class="function-syntax">TeX::remove_math_mode_range</span></span>:<br><a href="5-tf.html#SP18_1">§18.1</a>, <a href="5-tf.html#SP18_2">§18.2</a>, <a href="5-tf.html#SP18_3">§18.3</a></span></button><span class="plain-syntax">(</span><span class="constant-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">from</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">to</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=</span><span class="identifier-syntax">from</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax"> <= </span><span class="identifier-syntax">to</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-tf.html#SP19_1" class="named-paragraph-link"><span class="named-paragraph">Remove the over construction</span><span class="named-paragraph-number">19.1</span></span></a><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-tf.html#SP18_1" class="named-paragraph-link"><span class="named-paragraph">Remove the over construction</span><span class="named-paragraph-number">18.1</span></span></a><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=</span><span class="identifier-syntax">from</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax"> <= </span><span class="identifier-syntax">to</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-tf.html#SP19_2" class="named-paragraph-link"><span class="named-paragraph">Remove the rm and it constructions</span><span class="named-paragraph-number">19.2</span></span></a><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-tf.html#SP19_3" class="named-paragraph-link"><span class="named-paragraph">Remove the sqrt constructions</span><span class="named-paragraph-number">19.3</span></span></a><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-tf.html#SP18_2" class="named-paragraph-link"><span class="named-paragraph">Remove the rm and it constructions</span><span class="named-paragraph-number">18.2</span></span></a><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-tf.html#SP18_3" class="named-paragraph-link"><span class="named-paragraph">Remove the sqrt constructions</span><span class="named-paragraph-number">18.3</span></span></a><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">math_mode</span><span class="plain-syntax"> = </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=</span><span class="identifier-syntax">from</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax"> <= </span><span class="identifier-syntax">to</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
|
@ -1060,16 +1040,16 @@ To do this, the weaver calls the following.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP13" class="function-link"><span class="function-syntax">Str::get_at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">+1) == </span><span class="character-syntax">'$'</span><span class="plain-syntax">) </span><span class="identifier-syntax">i</span><span class="plain-syntax">++;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">math_mode</span><span class="plain-syntax"> = (</span><span class="identifier-syntax">math_mode</span><span class="plain-syntax">)?</span><span class="identifier-syntax">FALSE:TRUE</span><span class="plain-syntax">; </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="character-syntax">'~'</span><span class="plain-syntax">: </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">math_mode</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" "</span><span class="plain-syntax">); </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"~"</span><span class="plain-syntax">); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="character-syntax">'\\'</span><span class="plain-syntax">: </span><span class="named-paragraph-container code-font"><a href="5-tf.html#SP19_4" class="named-paragraph-link"><span class="named-paragraph">Do something to strip out a TeX macro</span><span class="named-paragraph-number">19.4</span></span></a><span class="plain-syntax">; </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="character-syntax">'\\'</span><span class="plain-syntax">: </span><span class="named-paragraph-container code-font"><a href="5-tf.html#SP18_4" class="named-paragraph-link"><span class="named-paragraph">Do something to strip out a TeX macro</span><span class="named-paragraph-number">18.4</span></span></a><span class="plain-syntax">; </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">default:</span><span class="plain-syntax"> </span><span class="identifier-syntax">PUT</span><span class="plain-syntax">(</span><a href="../foundation-module/4-sm.html#SP13" class="function-link"><span class="function-syntax">Str::get_at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">)); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP19_1"></a><b>§19.1. </b>Here we remove <span class="extract"><span class="extract-syntax">{{top}\over{bottom}}</span></span>, converting it to <span class="extract"><span class="extract-syntax">((top) / (bottom))</span></span>.
|
||||
<p class="commentary firstcommentary"><a id="SP18_1"></a><b>§18.1. </b>Here we remove <span class="extract"><span class="extract-syntax">{{top}\over{bottom}}</span></span>, converting it to <span class="extract"><span class="extract-syntax">((top) / (bottom))</span></span>.
|
||||
</p>
|
||||
|
||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Remove the over construction</span><span class="named-paragraph-number">19.1</span></span><span class="comment-syntax"> =</span>
|
||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Remove the over construction</span><span class="named-paragraph-number">18.1</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -1087,9 +1067,9 @@ To do this, the weaver calls the following.
|
|||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">c</span><span class="plain-syntax"> == </span><span class="character-syntax">'}'</span><span class="plain-syntax">) </span><span class="identifier-syntax">bl</span><span class="plain-syntax">++;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><a href="5-tf.html#SP19" class="function-link"><span class="function-syntax">TeX::remove_math_mode_range</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">from</span><span class="plain-syntax">, </span><span class="identifier-syntax">j</span><span class="plain-syntax">-1);</span>
|
||||
<span class="plain-syntax"> </span><a href="5-tf.html#SP18" class="function-link"><span class="function-syntax">TeX::remove_math_mode_range</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">from</span><span class="plain-syntax">, </span><span class="identifier-syntax">j</span><span class="plain-syntax">-1);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"(("</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="5-tf.html#SP19" class="function-link"><span class="function-syntax">TeX::remove_math_mode_range</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">j</span><span class="plain-syntax">+2, </span><span class="identifier-syntax">i</span><span class="plain-syntax">-2);</span>
|
||||
<span class="plain-syntax"> </span><a href="5-tf.html#SP18" class="function-link"><span class="function-syntax">TeX::remove_math_mode_range</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">j</span><span class="plain-syntax">+2, </span><span class="identifier-syntax">i</span><span class="plain-syntax">-2);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">") / ("</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">j</span><span class="plain-syntax">=</span><span class="identifier-syntax">i</span><span class="plain-syntax">+6; </span><span class="identifier-syntax">bl</span><span class="plain-syntax"> = </span><span class="constant-syntax">1</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (; </span><span class="identifier-syntax">j</span><span class="plain-syntax"> <= </span><span class="identifier-syntax">to</span><span class="plain-syntax">; </span><span class="identifier-syntax">j</span><span class="plain-syntax">++) {</span>
|
||||
|
@ -1100,17 +1080,17 @@ To do this, the weaver calls the following.
|
|||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">c</span><span class="plain-syntax"> == </span><span class="character-syntax">'{'</span><span class="plain-syntax">) </span><span class="identifier-syntax">bl</span><span class="plain-syntax">++;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><a href="5-tf.html#SP19" class="function-link"><span class="function-syntax">TeX::remove_math_mode_range</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">+6, </span><span class="identifier-syntax">j</span><span class="plain-syntax">-1);</span>
|
||||
<span class="plain-syntax"> </span><a href="5-tf.html#SP18" class="function-link"><span class="function-syntax">TeX::remove_math_mode_range</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">+6, </span><span class="identifier-syntax">j</span><span class="plain-syntax">-1);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"))"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="5-tf.html#SP19" class="function-link"><span class="function-syntax">TeX::remove_math_mode_range</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">j</span><span class="plain-syntax">+2, </span><span class="identifier-syntax">to</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="5-tf.html#SP18" class="function-link"><span class="function-syntax">TeX::remove_math_mode_range</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">j</span><span class="plain-syntax">+2, </span><span class="identifier-syntax">to</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-tf.html#SP19">§19</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP19_2"></a><b>§19.2. </b>Here we remove <span class="extract"><span class="extract-syntax">{\rm text}</span></span>, converting it to <span class="extract"><span class="extract-syntax">text</span></span>, and similarly <span class="extract"><span class="extract-syntax">\it</span></span>.
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-tf.html#SP18">§18</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP18_2"></a><b>§18.2. </b>Here we remove <span class="extract"><span class="extract-syntax">{\rm text}</span></span>, converting it to <span class="extract"><span class="extract-syntax">text</span></span>, and similarly <span class="extract"><span class="extract-syntax">\it</span></span>.
|
||||
</p>
|
||||
|
||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Remove the rm and it constructions</span><span class="named-paragraph-number">19.2</span></span><span class="comment-syntax"> =</span>
|
||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Remove the rm and it constructions</span><span class="named-paragraph-number">18.2</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -1118,22 +1098,22 @@ To do this, the weaver calls the following.
|
|||
<span class="plain-syntax"> (((</span><a href="../foundation-module/4-sm.html#SP13" class="function-link"><span class="function-syntax">Str::get_at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">+2) == </span><span class="character-syntax">'r'</span><span class="plain-syntax">) && (</span><a href="../foundation-module/4-sm.html#SP13" class="function-link"><span class="function-syntax">Str::get_at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">+3) == </span><span class="character-syntax">'m'</span><span class="plain-syntax">)) ||</span>
|
||||
<span class="plain-syntax"> ((</span><a href="../foundation-module/4-sm.html#SP13" class="function-link"><span class="function-syntax">Str::get_at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">+2) == </span><span class="character-syntax">'i'</span><span class="plain-syntax">) && (</span><a href="../foundation-module/4-sm.html#SP13" class="function-link"><span class="function-syntax">Str::get_at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">+3) == </span><span class="character-syntax">'t'</span><span class="plain-syntax">))) &&</span>
|
||||
<span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP13" class="function-link"><span class="function-syntax">Str::get_at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">+4) == </span><span class="character-syntax">' '</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><a href="5-tf.html#SP19" class="function-link"><span class="function-syntax">TeX::remove_math_mode_range</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">from</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">-1);</span>
|
||||
<span class="plain-syntax"> </span><a href="5-tf.html#SP18" class="function-link"><span class="function-syntax">TeX::remove_math_mode_range</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">from</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">-1);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">j</span><span class="plain-syntax">=</span><span class="identifier-syntax">i</span><span class="plain-syntax">+5;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (; </span><span class="identifier-syntax">j</span><span class="plain-syntax"> <= </span><span class="identifier-syntax">to</span><span class="plain-syntax">; </span><span class="identifier-syntax">j</span><span class="plain-syntax">++)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP13" class="function-link"><span class="function-syntax">Str::get_at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">j</span><span class="plain-syntax">) == </span><span class="character-syntax">'}'</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><a href="5-tf.html#SP19" class="function-link"><span class="function-syntax">TeX::remove_math_mode_range</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">+5, </span><span class="identifier-syntax">j</span><span class="plain-syntax">-1);</span>
|
||||
<span class="plain-syntax"> </span><a href="5-tf.html#SP19" class="function-link"><span class="function-syntax">TeX::remove_math_mode_range</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">j</span><span class="plain-syntax">+1, </span><span class="identifier-syntax">to</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="5-tf.html#SP18" class="function-link"><span class="function-syntax">TeX::remove_math_mode_range</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">+5, </span><span class="identifier-syntax">j</span><span class="plain-syntax">-1);</span>
|
||||
<span class="plain-syntax"> </span><a href="5-tf.html#SP18" class="function-link"><span class="function-syntax">TeX::remove_math_mode_range</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">j</span><span class="plain-syntax">+1, </span><span class="identifier-syntax">to</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-tf.html#SP19">§19</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP19_3"></a><b>§19.3. </b>Here we remove <span class="extract"><span class="extract-syntax">\sqrt{N}</span></span>, converting it to <span class="extract"><span class="extract-syntax">sqrt(N)</span></span>. As a special case,
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-tf.html#SP18">§18</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP18_3"></a><b>§18.3. </b>Here we remove <span class="extract"><span class="extract-syntax">\sqrt{N}</span></span>, converting it to <span class="extract"><span class="extract-syntax">sqrt(N)</span></span>. As a special case,
|
||||
we also look out for <span class="extract"><span class="extract-syntax">{}^3\sqrt{N}</span></span> for cube root.
|
||||
</p>
|
||||
|
||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Remove the sqrt constructions</span><span class="named-paragraph-number">19.3</span></span><span class="comment-syntax"> =</span>
|
||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Remove the sqrt constructions</span><span class="named-paragraph-number">18.3</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -1145,10 +1125,10 @@ we also look out for <span class="extract"><span class="extract-syntax">{}^3\sqr
|
|||
<span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP13" class="function-link"><span class="function-syntax">Str::get_at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">-3) == </span><span class="character-syntax">'}'</span><span class="plain-syntax">) &&</span>
|
||||
<span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP13" class="function-link"><span class="function-syntax">Str::get_at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">-2) == </span><span class="character-syntax">'^'</span><span class="plain-syntax">) &&</span>
|
||||
<span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP13" class="function-link"><span class="function-syntax">Str::get_at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">-1) == </span><span class="character-syntax">'3'</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><a href="5-tf.html#SP19" class="function-link"><span class="function-syntax">TeX::remove_math_mode_range</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">from</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">-5);</span>
|
||||
<span class="plain-syntax"> </span><a href="5-tf.html#SP18" class="function-link"><span class="function-syntax">TeX::remove_math_mode_range</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">from</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">-5);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" curt("</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><a href="5-tf.html#SP19" class="function-link"><span class="function-syntax">TeX::remove_math_mode_range</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">from</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">-1);</span>
|
||||
<span class="plain-syntax"> </span><a href="5-tf.html#SP18" class="function-link"><span class="function-syntax">TeX::remove_math_mode_range</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">from</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">-1);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" sqrt("</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">j</span><span class="plain-syntax">=</span><span class="identifier-syntax">i</span><span class="plain-syntax">+6, </span><span class="identifier-syntax">bl</span><span class="plain-syntax"> = </span><span class="constant-syntax">1</span><span class="plain-syntax">;</span>
|
||||
|
@ -1160,14 +1140,14 @@ we also look out for <span class="extract"><span class="extract-syntax">{}^3\sqr
|
|||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">c</span><span class="plain-syntax"> == </span><span class="character-syntax">'{'</span><span class="plain-syntax">) </span><span class="identifier-syntax">bl</span><span class="plain-syntax">++;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><a href="5-tf.html#SP19" class="function-link"><span class="function-syntax">TeX::remove_math_mode_range</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">+6, </span><span class="identifier-syntax">j</span><span class="plain-syntax">-1);</span>
|
||||
<span class="plain-syntax"> </span><a href="5-tf.html#SP18" class="function-link"><span class="function-syntax">TeX::remove_math_mode_range</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">+6, </span><span class="identifier-syntax">j</span><span class="plain-syntax">-1);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">")"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="5-tf.html#SP19" class="function-link"><span class="function-syntax">TeX::remove_math_mode_range</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">j</span><span class="plain-syntax">+1, </span><span class="identifier-syntax">to</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="5-tf.html#SP18" class="function-link"><span class="function-syntax">TeX::remove_math_mode_range</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">j</span><span class="plain-syntax">+1, </span><span class="identifier-syntax">to</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-tf.html#SP19">§19</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP19_4"></a><b>§19.4. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Do something to strip out a TeX macro</span><span class="named-paragraph-number">19.4</span></span><span class="comment-syntax"> =</span>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-tf.html#SP18">§18</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP18_4"></a><b>§18.4. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Do something to strip out a TeX macro</span><span class="named-paragraph-number">18.4</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -1175,13 +1155,13 @@ we also look out for <span class="extract"><span class="extract-syntax">{}^3\sqr
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">++;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">while</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">i</span><span class="plain-syntax"> < </span><a href="../foundation-module/4-sm.html#SP8" class="function-link"><span class="function-syntax">Str::len</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">text</span><span class="plain-syntax">)) && (</span><a href="../foundation-module/4-chr.html#SP1" class="function-link"><span class="function-syntax">Characters::isalpha</span></a><span class="plain-syntax">(</span><a href="../foundation-module/4-sm.html#SP13" class="function-link"><span class="function-syntax">Str::get_at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">))))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">PUT_TO</span><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><a href="../foundation-module/4-sm.html#SP13" class="function-link"><span class="function-syntax">Str::get_at</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">++));</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"not"</span><span class="plain-syntax">)) </span><span class="named-paragraph-container code-font"><a href="5-tf.html#SP19_4_2" class="named-paragraph-link"><span class="named-paragraph">Remove the not prefix</span><span class="named-paragraph-number">19.4.2</span></span></a>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-tf.html#SP19_4_1" class="named-paragraph-link"><span class="named-paragraph">Remove a general macro</span><span class="named-paragraph-number">19.4.1</span></span></a><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"not"</span><span class="plain-syntax">)) </span><span class="named-paragraph-container code-font"><a href="5-tf.html#SP18_4_2" class="named-paragraph-link"><span class="named-paragraph">Remove the not prefix</span><span class="named-paragraph-number">18.4.2</span></span></a>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-tf.html#SP18_4_1" class="named-paragraph-link"><span class="named-paragraph">Remove a general macro</span><span class="named-paragraph-number">18.4.1</span></span></a><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="reserved-syntax">macro</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">--;</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-tf.html#SP19">§19</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP19_4_1"></a><b>§19.4.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Remove a general macro</span><span class="named-paragraph-number">19.4.1</span></span><span class="comment-syntax"> =</span>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-tf.html#SP18">§18</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP18_4_1"></a><b>§18.4.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Remove a general macro</span><span class="named-paragraph-number">18.4.1</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -1295,11 +1275,11 @@ we also look out for <span class="extract"><span class="extract-syntax">{}^3\sqr
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"\\%S"</span><span class="plain-syntax">, </span><span class="reserved-syntax">macro</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-tf.html#SP19_4">§19.4</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP19_4_2"></a><b>§19.4.2. </b>For Inform's purposes, we need to deal with just <span class="extract"><span class="extract-syntax">\not\exists</span></span> and <span class="extract"><span class="extract-syntax">\not\forall</span></span>.
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-tf.html#SP18_4">§18.4</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP18_4_2"></a><b>§18.4.2. </b>For Inform's purposes, we need to deal with just <span class="extract"><span class="extract-syntax">\not\exists</span></span> and <span class="extract"><span class="extract-syntax">\not\forall</span></span>.
|
||||
</p>
|
||||
|
||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Remove the not prefix</span><span class="named-paragraph-number">19.4.2</span></span><span class="comment-syntax"> =</span>
|
||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Remove the not prefix</span><span class="named-paragraph-number">18.4.2</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -1317,7 +1297,7 @@ we also look out for <span class="extract"><span class="extract-syntax">{}^3\sqr
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">PRINT</span><span class="plain-syntax">(</span><span class="string-syntax">"Don't know how to apply '\\not' here\n"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-tf.html#SP19_4">§19.4</a>.</li></ul>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-tf.html#SP18_4">§18.4</a>.</li></ul>
|
||||
<hr class="tocbar">
|
||||
<ul class="toc"><li><a href="5-ptf.html">Back to 'Plain Text Format'</a></li><li><a href="5-hf.html">Continue with 'HTML Formats'</a></li></ul><hr class="tocbar">
|
||||
<!--End of weave-->
|
||||
|
|
|
@ -101,8 +101,8 @@ actually look for: they will be available to some patterns and not others.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">cs</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">css</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">css</span><span class="plain-syntax">, </span><span class="string-syntax">"%S.css"</span><span class="plain-syntax">, </span><span class="identifier-syntax">name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">F</span><span class="plain-syntax"> = </span><a href="1-ptt.html#SP6" class="function-link"><span class="function-syntax">Patterns::find_asset</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pattern</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Colouring"</span><span class="plain-syntax">, </span><span class="identifier-syntax">css</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">F</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">F</span><span class="plain-syntax"> = </span><a href="1-ptt.html#SP6" class="function-link"><span class="function-syntax">Patterns::find_asset</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pattern</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Coloring"</span><span class="plain-syntax">, </span><span class="identifier-syntax">css</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">F</span><span class="plain-syntax"> = </span><a href="1-ptt.html#SP7" class="function-link"><span class="function-syntax">Patterns::find_asset</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pattern</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Colouring"</span><span class="plain-syntax">, </span><span class="identifier-syntax">css</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">F</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">F</span><span class="plain-syntax"> = </span><a href="1-ptt.html#SP7" class="function-link"><span class="function-syntax">Patterns::find_asset</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pattern</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Coloring"</span><span class="plain-syntax">, </span><span class="identifier-syntax">css</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">css</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">F</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">cs</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CREATE</span><span class="plain-syntax">(</span><span class="reserved-syntax">colour_scheme</span><span class="plain-syntax">);</span>
|
||||
|
@ -129,7 +129,7 @@ inclusion of that, and also copy the file into the weave destination.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">WeavePlugins::include_plugin</span><button class="popup" onclick="togglePopup('usagePopup4')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup4">Usage of <span class="code-font"><span class="function-syntax">WeavePlugins::include_plugin</span></span>:<br>The Swarm - <a href="1-ts.html#SP3">§3</a><br>Patterns - <a href="1-ptt.html#SP8">§8</a></span></button><span class="plain-syntax">(</span><span class="constant-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">web</span><span class="plain-syntax"> *</span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="reserved-syntax">weave_plugin</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wp</span><span class="plain-syntax">,</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">WeavePlugins::include_plugin</span><button class="popup" onclick="togglePopup('usagePopup4')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup4">Usage of <span class="code-font"><span class="function-syntax">WeavePlugins::include_plugin</span></span>:<br>The Swarm - <a href="1-ts.html#SP3">§3</a><br>Patterns - <a href="1-ptt.html#SP9">§9</a></span></button><span class="plain-syntax">(</span><span class="constant-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">web</span><span class="plain-syntax"> *</span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="reserved-syntax">weave_plugin</span><span class="plain-syntax"> *</span><span class="identifier-syntax">wp</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">weave_pattern</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pattern</span><span class="plain-syntax">, </span><span class="reserved-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">from</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">wp</span><span class="plain-syntax">-></span><span class="element-syntax">last_included_in_round</span><span class="plain-syntax"> == </span><span class="identifier-syntax">current_inclusion_round</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wp</span><span class="plain-syntax">-></span><span class="element-syntax">last_included_in_round</span><span class="plain-syntax"> = </span><span class="identifier-syntax">current_inclusion_round</span><span class="plain-syntax">;</span>
|
||||
|
@ -206,7 +206,7 @@ inclusion of that, and also copy the file into the weave destination.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><a href="1-ptt.html#SP7" class="function-link"><span class="function-syntax">Patterns::copy_file_into_weave</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="identifier-syntax">F</span><span class="plain-syntax">, </span><span class="identifier-syntax">AP</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="1-ptt.html#SP8" class="function-link"><span class="function-syntax">Patterns::copy_file_into_weave</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="identifier-syntax">F</span><span class="plain-syntax">, </span><span class="identifier-syntax">AP</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">W</span><span class="plain-syntax">-></span><span class="identifier-syntax">as_ebook</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">rel</span><span class="plain-syntax"> = </span><a href="../foundation-module/3-fln.html#SP2" class="function-link"><span class="function-syntax">Filenames::in</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">leafname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="../foundation-module/5-ee.html#SP5" class="function-link"><span class="function-syntax">Epub::note_image</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">-></span><span class="element-syntax">as_ebook</span><span class="plain-syntax">, </span><span class="identifier-syntax">rel</span><span class="plain-syntax">);</span>
|
||||
|
@ -216,15 +216,15 @@ inclusion of that, and also copy the file into the weave destination.
|
|||
<p class="commentary firstcommentary"><a id="SP6"></a><b>§6. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">WeavePlugins::include_colour_scheme</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">WeavePlugins::include_colour_scheme</span></span>:<br>The Swarm - <a href="1-ts.html#SP3">§3</a><br>Patterns - <a href="1-ptt.html#SP8">§8</a></span></button><span class="plain-syntax">(</span><span class="constant-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">web</span><span class="plain-syntax"> *</span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="reserved-syntax">colour_scheme</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cs</span><span class="plain-syntax">,</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">WeavePlugins::include_colour_scheme</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">WeavePlugins::include_colour_scheme</span></span>:<br>The Swarm - <a href="1-ts.html#SP3">§3</a><br>Patterns - <a href="1-ptt.html#SP9">§9</a></span></button><span class="plain-syntax">(</span><span class="constant-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">web</span><span class="plain-syntax"> *</span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="reserved-syntax">colour_scheme</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cs</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">weave_pattern</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pattern</span><span class="plain-syntax">, </span><span class="reserved-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">from</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">cs</span><span class="plain-syntax">-></span><span class="element-syntax">last_included_in_round</span><span class="plain-syntax"> == </span><span class="identifier-syntax">current_inclusion_round</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">cs</span><span class="plain-syntax">-></span><span class="element-syntax">last_included_in_round</span><span class="plain-syntax"> = </span><span class="identifier-syntax">current_inclusion_round</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pattern</span><span class="plain-syntax">-></span><span class="element-syntax">pattern_format</span><span class="plain-syntax">-></span><span class="element-syntax">format_name</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"HTML"</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">css</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">css</span><span class="plain-syntax">, </span><span class="string-syntax">"%S.css"</span><span class="plain-syntax">, </span><span class="identifier-syntax">cs</span><span class="plain-syntax">-></span><span class="element-syntax">scheme_name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">F</span><span class="plain-syntax"> = </span><a href="1-ptt.html#SP6" class="function-link"><span class="function-syntax">Patterns::find_asset</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pattern</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Colouring"</span><span class="plain-syntax">, </span><span class="identifier-syntax">css</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">F</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">F</span><span class="plain-syntax"> = </span><a href="1-ptt.html#SP6" class="function-link"><span class="function-syntax">Patterns::find_asset</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pattern</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Coloring"</span><span class="plain-syntax">, </span><span class="identifier-syntax">css</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">F</span><span class="plain-syntax"> = </span><a href="1-ptt.html#SP7" class="function-link"><span class="function-syntax">Patterns::find_asset</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pattern</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Colouring"</span><span class="plain-syntax">, </span><span class="identifier-syntax">css</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">F</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">F</span><span class="plain-syntax"> = </span><a href="1-ptt.html#SP7" class="function-link"><span class="function-syntax">Patterns::find_asset</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pattern</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Coloring"</span><span class="plain-syntax">, </span><span class="identifier-syntax">css</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">F</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">err</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">err</span><span class="plain-syntax">, </span><span class="string-syntax">"No CSS file for the colour scheme '%S' can be found"</span><span class="plain-syntax">,</span>
|
||||
|
@ -246,7 +246,7 @@ inclusion of that, and also copy the file into the weave destination.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">cft</span><span class="plain-syntax">.</span><span class="element-syntax">OUT</span><span class="plain-syntax"> = </span><span class="identifier-syntax">OUT</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">cft</span><span class="plain-syntax">.</span><span class="element-syntax">trans</span><span class="plain-syntax"> = </span><span class="identifier-syntax">trans</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><a href="../foundation-module/4-tf.html#SP5" class="function-link"><span class="function-syntax">TextFiles::read</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">F</span><span class="plain-syntax">, </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">, </span><span class="string-syntax">"can't open CSS file"</span><span class="plain-syntax">, </span><span class="constant-syntax">TRUE</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><a href="1-ptt.html#SP7" class="function-link"><span class="function-syntax">Patterns::transform_CSS</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, (</span><span class="reserved-syntax">void</span><span class="plain-syntax"> *) &</span><span class="identifier-syntax">cft</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="1-ptt.html#SP8" class="function-link"><span class="function-syntax">Patterns::transform_CSS</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, (</span><span class="reserved-syntax">void</span><span class="plain-syntax"> *) &</span><span class="identifier-syntax">cft</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"</style>\n"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">pathname</span><span class="plain-syntax"> *</span><span class="identifier-syntax">AP</span><span class="plain-syntax"> = </span><a href="6-cln.html#SP9" class="function-link"><span class="function-syntax">Colonies::assets_path</span></a><span class="plain-syntax">();</span>
|
||||
|
@ -255,7 +255,7 @@ inclusion of that, and also copy the file into the weave destination.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">url</span><span class="plain-syntax">, </span><span class="string-syntax">"%S"</span><span class="plain-syntax">, </span><span class="identifier-syntax">css</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"<link href=\"%S\" rel=\"stylesheet\" rev=\"stylesheet\" type=\"text/css\">\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">url</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">url</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="1-ptt.html#SP7" class="function-link"><span class="function-syntax">Patterns::copy_file_into_weave</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="identifier-syntax">F</span><span class="plain-syntax">, </span><span class="identifier-syntax">AP</span><span class="plain-syntax">, </span><span class="identifier-syntax">trans</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="1-ptt.html#SP8" class="function-link"><span class="function-syntax">Patterns::copy_file_into_weave</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="identifier-syntax">F</span><span class="plain-syntax">, </span><span class="identifier-syntax">AP</span><span class="plain-syntax">, </span><span class="identifier-syntax">trans</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">W</span><span class="plain-syntax">-></span><span class="element-syntax">as_ebook</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">rel</span><span class="plain-syntax"> = </span><a href="../foundation-module/3-fln.html#SP2" class="function-link"><span class="function-syntax">Filenames::in</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">css</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="../foundation-module/5-ee.html#SP5" class="function-link"><span class="function-syntax">Epub::note_image</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">-></span><span class="element-syntax">as_ebook</span><span class="plain-syntax">, </span><span class="identifier-syntax">rel</span><span class="plain-syntax">);</span>
|
||||
|
@ -269,7 +269,7 @@ inclusion of that, and also copy the file into the weave destination.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">cft</span><span class="plain-syntax">.</span><span class="element-syntax">OUT</span><span class="plain-syntax"> = </span><span class="identifier-syntax">OUT</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">cft</span><span class="plain-syntax">.</span><span class="element-syntax">trans</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><a href="../foundation-module/4-tf.html#SP5" class="function-link"><span class="function-syntax">TextFiles::read</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">F</span><span class="plain-syntax">, </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">, </span><span class="string-syntax">"can't open TeX file"</span><span class="plain-syntax">, </span><span class="constant-syntax">TRUE</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><a href="1-ptt.html#SP7" class="function-link"><span class="function-syntax">Patterns::transform_CSS</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, (</span><span class="reserved-syntax">void</span><span class="plain-syntax"> *) &</span><span class="identifier-syntax">cft</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="1-ptt.html#SP8" class="function-link"><span class="function-syntax">Patterns::transform_CSS</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, (</span><span class="reserved-syntax">void</span><span class="plain-syntax"> *) &</span><span class="identifier-syntax">cft</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<hr class="tocbar">
|
||||
|
|
|
@ -155,7 +155,7 @@ at GitHub:
|
|||
<span class="plain-syntax"> </span><span class="constant-syntax">TRUE</span><span class="plain-syntax">, </span><a href="6-cln.html#SP5" class="function-link"><span class="function-syntax">Colonies::read_line</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, (</span><span class="reserved-syntax">void</span><span class="plain-syntax"> *) &</span><span class="identifier-syntax">crs</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>The structure colony_reader_state is accessed in 1/ts, 3/tc, 5/fm, 5/tf, 5/hf, 5/rtt and here.</li></ul>
|
||||
<ul class="endnotetexts"><li>The structure colony_reader_state is accessed in 1/ts, 3/tc, 5/fm, 5/tf, 5/hf and here.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP5"></a><b>§5. </b>Lines from the colony file are fed, one by one, into:
|
||||
</p>
|
||||
|
||||
|
|
|
@ -39,7 +39,7 @@
|
|||
<!--Weave of 'Advanced Weaving with Patterns' generated by Inweb-->
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="index.html">inweb</a></li><li><a href="index.html#M">Manual</a></li><li><b>Advanced Weaving with Patterns</b></li></ul><p class="purpose">Customise your weave by creating a new pattern.</p>
|
||||
|
||||
<ul class="toc"><li><a href="M-awwp.html#SP1">§1. Patterns versus formats</a></li><li><a href="M-awwp.html#SP3">§3. Basic settings</a></li><li><a href="M-awwp.html#SP6">§6. Plugins</a></li><li><a href="M-awwp.html#SP9">§9. Embeddings</a></li><li><a href="M-awwp.html#SP10">§10. Syntax colouring</a></li><li><a href="M-awwp.html#SP12">§12. Templates</a></li></ul><hr class="tocbar">
|
||||
<ul class="toc"><li><a href="M-awwp.html#SP1">§1. Patterns versus formats</a></li><li><a href="M-awwp.html#SP3">§3. Basic settings</a></li><li><a href="M-awwp.html#SP7">§7. Plugins</a></li><li><a href="M-awwp.html#SP10">§10. Embeddings</a></li><li><a href="M-awwp.html#SP11">§11. Syntax colouring</a></li><li><a href="M-awwp.html#SP13">§13. Templates</a></li></ul><hr class="tocbar">
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP1"></a><b>§1. Patterns versus formats. </b>Every weave produces output in a "format". The formats are built in to Inweb,
|
||||
and adding new ones would mean contributing code to the project: currently
|
||||
|
@ -154,24 +154,8 @@ sets this to <span class="extract"><span class="extract-syntax">sections</span><
|
|||
inherited.
|
||||
</p>
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP5"></a><b>§5. </b>And there are a few settings which are not inherited: they apply only to the
|
||||
pattern being defined, not to other patterns based on it.
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> tex command: C</span>
|
||||
</pre>
|
||||
<p class="commentary">tells the weaver that the TeX typesetting system should be invoked with the
|
||||
shell command <span class="extract"><span class="extract-syntax">C</span></span>. Default is <span class="extract"><span class="extract-syntax">tex</span></span>. Similarly for <span class="extract"><span class="extract-syntax">pdftex command: C</span></span>, used
|
||||
when we want to make a PDF rather than a DVI.
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> open command: C</span>
|
||||
</pre>
|
||||
<p class="commentary">tells the weaver to use the shell command <span class="extract"><span class="extract-syntax">C</span></span> if it wants to open the woven
|
||||
file (i.e., on the user's computer) after it finishes. Default is <span class="extract"><span class="extract-syntax">open</span></span>,
|
||||
which works nicely for MacOS.
|
||||
<p class="commentary firstcommentary"><a id="SP5"></a><b>§5. </b>Bibliographic data can also be set, but this applies only to the current
|
||||
pattern, and is not inherited from any patterns it is based on.
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -184,7 +168,34 @@ the key <span class="extract"><span class="extract-syntax">K</span></span> to th
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> bibliographic data: Booklet Title = A formal grammar for Inform 7</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP6"></a><b>§6. Plugins. </b>Plugins are named bundles of resources which are sometimes added to a weave,
|
||||
<p class="commentary firstcommentary"><a id="SP6"></a><b>§6. </b>It can be useful to do some post-processing after each woven file is made.
|
||||
For an example, see the <span class="extract"><span class="extract-syntax">PDFTeX</span></span> pattern, which simply uses the <span class="extract"><span class="extract-syntax">TeX</span></span> pattern
|
||||
to make a TeX file, and then runs it through the <span class="extract"><span class="extract-syntax">pdftex</span></span> command-line tool.
|
||||
This is done by giving the necessary commands in the pattern file:
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> name: PDFTeX based on TeX</span>
|
||||
<span class="plain-syntax"> initial extension: .tex</span>
|
||||
<span class="plain-syntax"> command: pdftex -output-directory=WOVENPATH -interaction=scrollmode WOVEN.tex</span>
|
||||
<span class="plain-syntax"> command: rm WOVEN.tex</span>
|
||||
<span class="plain-syntax"> command: rm WOVEN.log</span>
|
||||
</pre>
|
||||
<p class="commentary">Here <span class="extract"><span class="extract-syntax">WOVEN</span></span> expands to the filename of the file which has just been woven,
|
||||
but stripped of its filename extension.
|
||||
</p>
|
||||
|
||||
<p class="commentary">Note also the "initial extension" setting. The point of this is that if the
|
||||
user calls Inweb setting <span class="extract"><span class="extract-syntax">-weave-to Whatever.pdf</span></span>, this pattern setting causes
|
||||
Inweb first to weave <span class="extract"><span class="extract-syntax">Whatever.tex</span></span>; the post-processing commands will then
|
||||
make <span class="extract"><span class="extract-syntax">Whatever.pdf</span></span> as expected.
|
||||
</p>
|
||||
|
||||
<p class="commentary">As soon as any command in the list fails, Inweb halts with an error. To see
|
||||
the exact shell commands being issued, run Inweb with <span class="extract"><span class="extract-syntax">-verbose</span></span>.
|
||||
</p>
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP7"></a><b>§7. Plugins. </b>Plugins are named bundles of resources which are sometimes added to a weave,
|
||||
and sometimes not, depending on its needs; they are placed in the pattern's
|
||||
folder, and Inweb has access to the plugins not only for the current pattern,
|
||||
but also for any pattern(s) it is based on. Plugins were designed for HTML,
|
||||
|
@ -235,7 +246,7 @@ presently tread on the <span class="extract"><span class="extract-syntax">MathJa
|
|||
have mathematics in a footnote when <span class="extract"><span class="extract-syntax">Bigfoot</span></span> is in use.
|
||||
</p>
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP7"></a><b>§7. </b>It's also possible to supply your own version of any plugin you would like
|
||||
<p class="commentary firstcommentary"><a id="SP8"></a><b>§8. </b>It's also possible to supply your own version of any plugin you would like
|
||||
to tinker with. If you want <span class="extract"><span class="extract-syntax">Carousel</span></span> to have rather different CSS effects,
|
||||
for example, make your own copy of <span class="extract"><span class="extract-syntax">Carousel</span></span> (copying it from the one in
|
||||
the Inweb distribution at <span class="extract"><span class="extract-syntax">inweb/Patterns/HTML/Carousel</span></span>) and place it in your
|
||||
|
@ -265,7 +276,7 @@ that in turn is based on <span class="extract"><span class="extract-syntax">HTML
|
|||
they were, and there's no need to provide duplicates here.
|
||||
</p>
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP8"></a><b>§8. </b>So what's in a plugin? There's not much to it. Every file in a plugin, whose
|
||||
<p class="commentary firstcommentary"><a id="SP9"></a><b>§9. </b>So what's in a plugin? There's not much to it. Every file in a plugin, whose
|
||||
name does not begin with a <span class="extract"><span class="extract-syntax">.</span></span>, is copied into the weave: that means it either
|
||||
gets copied to the weave destination directory, or possibly to the <span class="extract"><span class="extract-syntax">assets</span></span>
|
||||
directory specified in the colony file (if there is one). However:
|
||||
|
@ -283,7 +294,7 @@ both are copied across, but a link to the CSS file is also included in the
|
|||
woven file needing to use the plugin.
|
||||
</p>
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP9"></a><b>§9. Embeddings. </b>Patterns with the HTML format may also want to provide "embeddings". These
|
||||
<p class="commentary firstcommentary"><a id="SP10"></a><b>§10. Embeddings. </b>Patterns with the HTML format may also want to provide "embeddings". These
|
||||
are for embedded video/audio or other gadgets, and each different "service" —
|
||||
<span class="extract"><span class="extract-syntax">YouTube</span></span>, <span class="extract"><span class="extract-syntax">SoundCloud</span></span>, and such — is represented by an embedding file.
|
||||
Inweb looks for these in the pattern's <span class="extract"><span class="extract-syntax">Embedding</span></span> subdirectory, if there is
|
||||
|
@ -297,7 +308,7 @@ by creating a similar fragment in <span class="extract"><span class="extract-syn
|
|||
would provide for embedding videos from <span class="extract"><span class="extract-syntax">WebTubeo</span></span> when using your pattern.
|
||||
</p>
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP10"></a><b>§10. Syntax colouring. </b>No two people ever agree on the ideal colour scheme for syntax-colouring,
|
||||
<p class="commentary firstcommentary"><a id="SP11"></a><b>§11. Syntax colouring. </b>No two people ever agree on the ideal colour scheme for syntax-colouring,
|
||||
so one prime reason to create a custom pattern is to change Inweb's defaults.
|
||||
</p>
|
||||
|
||||
|
@ -331,13 +342,13 @@ a colouring file in <span class="extract"><span class="extract-syntax">SnakeSkin
|
|||
make this by copying the default <span class="extract"><span class="extract-syntax">Colours.css</span></span> and tinkering.
|
||||
</p>
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP11"></a><b>§11. </b>Note that Inweb supports multiple languages in the same weave, each having
|
||||
<p class="commentary firstcommentary"><a id="SP12"></a><b>§12. </b>Note that Inweb supports multiple languages in the same weave, each having
|
||||
their own colour schemes. To do this, it renames CSS spans on the fly in
|
||||
order to prevent namespace clashes. But you can forget this, because it's
|
||||
automatic.
|
||||
</p>
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP12"></a><b>§12. Templates. </b>The final possible ingredient for a pattern is a "template"; this is a file
|
||||
<p class="commentary firstcommentary"><a id="SP13"></a><b>§13. Templates. </b>The final possible ingredient for a pattern is a "template"; this is a file
|
||||
like a pro-forma letter, into which just the details need to be entered.
|
||||
Inweb does this in two main circumstances:
|
||||
</p>
|
||||
|
@ -359,7 +370,7 @@ the sake of plugins. But the author of a pattern can't control that, whereas
|
|||
she can write her own <span class="extract"><span class="extract-syntax">template-body.html</span></span> and/or <span class="extract"><span class="extract-syntax">template-index.html</span></span>.
|
||||
</p>
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP13"></a><b>§13. </b>For example, here is a template file for making an HTML page:
|
||||
<p class="commentary firstcommentary"><a id="SP14"></a><b>§14. </b>For example, here is a template file for making an HTML page:
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -390,7 +401,7 @@ name of a section or chapter, if that's what the file will contain. Another
|
|||
sometimes useful case to know is <span class="extract"><span class="extract-syntax">[[Capitalized Title]]</span></span>, which is the title
|
||||
in BLOCK CAPITAL LETTERS.
|
||||
</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP14"></a><b>§14. </b>Other placeholders, not used in the example above, include:
|
||||
<p class="commentary firstcommentary"><a id="SP15"></a><b>§15. </b>Other placeholders, not used in the example above, include:
|
||||
</p>
|
||||
|
||||
<ul class="items"><li>(a) <span class="extract"><span class="extract-syntax">[[Template X]]</span></span> expands to an insertion of the template file <span class="extract"><span class="extract-syntax">X</span></span>.
|
||||
|
@ -399,7 +410,7 @@ a colony of webs — see <a href="M-mwiw.html" class="internal">Making Weave
|
|||
syntaxes to do with links and URLs.
|
||||
</li><li>(c) <span class="extract"><span class="extract-syntax">[[Breadcrumbs]]</span></span> expands to the HTML for the breadcrumb trail.
|
||||
</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP15"></a><b>§15. </b>The <span class="extract"><span class="extract-syntax">template-index.html</span></span> file has access to additional placeholders
|
||||
<p class="commentary firstcommentary"><a id="SP16"></a><b>§16. </b>The <span class="extract"><span class="extract-syntax">template-index.html</span></span> file has access to additional placeholders
|
||||
enabling it to generate contents pages:
|
||||
</p>
|
||||
|
||||
|
@ -429,7 +440,7 @@ substitution is the leafname of the original <span class="extract"><span class="
|
|||
average number of lines per paragraph: where this is large, the section
|
||||
is rather raw and literate programming is not being used to the full.
|
||||
</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP16"></a><b>§16. </b><span class="extract"><span class="extract-syntax">[[Repeat Chapter]]</span></span> and <span class="extract"><span class="extract-syntax">[[Repeat Section]]</span></span> begin blocks of lines which
|
||||
<p class="commentary firstcommentary"><a id="SP17"></a><b>§17. </b><span class="extract"><span class="extract-syntax">[[Repeat Chapter]]</span></span> and <span class="extract"><span class="extract-syntax">[[Repeat Section]]</span></span> begin blocks of lines which
|
||||
are repeated for each chapter or section: the material to be repeated
|
||||
continues to the matching <span class="extract"><span class="extract-syntax">[[End Repeat]</span></span> line. The ``current chapter or
|
||||
section'' mentioned above is the one selected in the current innermost
|
||||
|
|
|
@ -147,16 +147,16 @@ void Filenames::write_extension(OUTPUT_STREAM, filename *F) {
|
|||
}
|
||||
}
|
||||
|
||||
filename *Filenames::set_extension(filename *F, char *extension) {
|
||||
filename *Filenames::set_extension(filename *F, text_stream *extension) {
|
||||
TEMPORARY_TEXT(NEWLEAF);
|
||||
LOOP_THROUGH_TEXT(pos, F->leafname) {
|
||||
wchar_t c = Str::get(pos);
|
||||
if (c == '.') break;
|
||||
PUT_TO(NEWLEAF, c);
|
||||
}
|
||||
if (extension) {
|
||||
if (extension[0] == '.') extension++;
|
||||
if (extension[0]) WRITE_TO(NEWLEAF, ".%s", extension);
|
||||
if (Str::len(extension) > 0) {
|
||||
if (Str::get_first_char(extension) != '.') WRITE_TO(NEWLEAF, ".");
|
||||
WRITE_TO(NEWLEAF, "%S", extension);
|
||||
}
|
||||
filename *N = Filenames::in(F->pathname_of_location, NEWLEAF);
|
||||
DISCARD_TEXT(NEWLEAF);
|
||||
|
|
Loading…
Reference in a new issue