From 898656077ff6d6a8acd93464e8daa6e98ea38b3f Mon Sep 17 00:00:00 2001 From: "Achim D. Brucker" Date: Sat, 10 Aug 2019 21:51:23 +0100 Subject: [PATCH] Improved introduction of chapter 4. --- .../Isabelle_DOF-Manual/04_RefMan.thy | 51 ++++++++++++------- 1 file changed, 33 insertions(+), 18 deletions(-) diff --git a/examples/technical_report/Isabelle_DOF-Manual/04_RefMan.thy b/examples/technical_report/Isabelle_DOF-Manual/04_RefMan.thy index bd7e7579..f1d35737 100644 --- a/examples/technical_report/Isabelle_DOF-Manual/04_RefMan.thy +++ b/examples/technical_report/Isabelle_DOF-Manual/04_RefMan.thy @@ -34,6 +34,17 @@ text\ publishers or standardization bodies. \ +text\ + The list of fully supported (\ie, supporting both interactive ontological modeling and + document generation) ontologies and the list of supported document templates can be + obtained by calling \inlinebash|isabelle mkroot_DOF -h| (see @{docitem "first_project"}). + Note that the postfix \inlinebash|-UNSUPPORTED| denoted experimental ontologies or templates + for which further manual setup steps might be required or that are not fully tested. Also note + that the \LaTeX-class files required by the templates need to be already installed on your + system. This is mostly a problem for publisher specific templates (\eg, Springer's + \path{llncs.cls}), which, due to copyright restrictions, cannot be distributed legally. +\ + subsection\Ontologies\ text\ The document core \<^emph>\may\, but \<^emph>\must\ not use Isabelle definitions or proofs for checking the @@ -89,9 +100,10 @@ text\ subsection\Document Templates\ text\ - Document-templates define the overall layout (page size, margins, fonts, etc.) of the generated - documents and are the the main technical means for implementing layout requirements that are, \eg, - required by publishers or standardization bodies. Document-templates are stored in a directory + Document-templates\index{document template} define the overall layout (page size, margins, fonts, + etc.) of the generated documents and are the the main technical means for implementing layout + requirements that are, \eg, required by publishers or standardization bodies. Document-templates + are stored in a directory \path{src/document-templates}:\index{document template!directory structure} \begin{center} \begin{minipage}{.9\textwidth} @@ -204,7 +216,6 @@ text\ (called \short_id\'s in @{cite "isaisarrefman19"}) and identifiers in \inlineisar+" ... "+ which might contain certain ``quasi-letters'' such as \inlineisar+_+, \inlineisar+-+, \inlineisar+.+. See~@{cite "isaisarrefman19"} for details. - \clearpage \<^item> \tyargs\:\index{tyargs@\tyargs\} \<^rail>\ typefree | ('(' (typefree * ',') ')')\ \typefree\ denotes fixed type variable(\'a\, \'b\, ...) (see~@{cite "isaisarrefman19"}) @@ -218,6 +229,7 @@ text\ The \name\'s referred here are type names such as \<^verbatim>\int\, \<^verbatim>\string\, \<^verbatim>\list\, \<^verbatim>\set\, etc. \<^item> \type\:\index{type@\type\} \<^rail>\ (( '(' ( type * ',') ')' )? name) | typefree \ +\clearpage \<^item> \dt_ctor\:\index{dt\_ctor@\dt_ctor\} \<^rail>\ name (type*) (mixfix?)\ \<^item> \datatype_specification\:\index{datatype\_specification@\datatype_specification\} @@ -235,7 +247,7 @@ text\ \ text\ - Advanced ontology might make use of concepts such as recursive function definitions with + Advanced ontologies can, \eg, use recursive function definitions with pattern-matching~@{cite "functions19"}, extensible record pecifications~@{cite "isaisarrefman19"}, and abstract type declarations. \ @@ -246,11 +258,11 @@ text\ A document class\bindex{document class} can be defined using the @{command "doc_class"} keyword: \<^item> \class_id\:\index{class\_id@\class_id\} a type-\name\ that has been introduced via a \doc_class_specification\. -\<^item> \doc_class_specification\:\index{doc\_class\_specification@\doc_class_specification\} +\<^item> \doc_class_specification\:\index{doc\_class\_specification@\doc_class_specification\} + We call document classes with an \accepts_clause\ + \<^emph>\monitor classes\ or \<^emph>\monitors\ for short. \<^rail>\ @@{command "doc_class"} class_id '=' (class_id '+')? (attribute_decl+) \ (accepts_clause rejects_clause?)?\ - Document classes whose specification contains an \accepts_clause\ are called - \<^emph>\monitor classes\ or \<^emph>\monitors\ for short. \<^item> \attribute_decl\:\index{attribute\_decl@\attribute_decl\} \<^rail>\ name '::' '"' type '"' default_clause? \ \<^item> \accepts_clause\:\index{accepts\_clause@\accepts_clause\} @@ -262,7 +274,7 @@ A document class\bindex{document class} can be defined using the @{command "doc_ \<^item> \regexpr\:\index{regexpr@\regexpr\} \<^rail>\ '\' class_id '\' | '(' regexpr ')' | (regexpr '||' regexpr) | (regexpr '~~' regexpr) | ('\' regexpr '\') | ( '\' regexpr '\\<^sup>*') \ - regular expressions describe sequences of \class_id\s (and indirect sequences of document + Regular expressions describe sequences of \class_id\s (and indirect sequences of document items corresponding to the \class_id\s). The constructors for alternative, sequence, repetitions and non-empty sequence follow in the top-down order of the above diagram. \ @@ -354,9 +366,9 @@ doc_class EC = AC + } \end{ltx} - While, in principle, any \LaTeX-commands can be used within the \inlineltx|\newisadof|-command, - one has to take special care for arguments containing special characters (\eg, the - underscore ``\_'') that do not have a special meaning in Isabelle but are commands in \LaTeX. + While arbitrary \LaTeX-commands can be used within the \inlineltx|\newisadof|-command, + special care is required for arguments containing special characters (\eg, the + underscore ``\_'') that do have a special meaning in \LaTeX. Moreover, as usual, special care has to be taken for commands that write into aux-files that are included in a following \LaTeX-run. For such complex examples, we refer the interested reader, in general, to the style files provided in the \isadof distribution. In particular @@ -373,10 +385,6 @@ text\ \inlineisar|text*\ ... \|-command allow to access all features of the document class, \isadof provides short-hands for certain, widely-used, concepts such as \inlineisar|title*\ ... \| or \inlineisar|section*\ ... \|. - - \clearpage - - The syntax of top-level \isadof text commands reads as follows: \<^item> \annotated_text_element\ : \<^rail>\ ( ( @@{command "title*"} @@ -395,7 +403,6 @@ text\ | change_status_command | inspection_command \ -\clearpage \<^item> \meta_args\ : \<^rail>\(obj_id ('::' class_id) ((attribute '=' term)) * ',')\ \<^item> \rich_meta_args\ : @@ -890,7 +897,15 @@ required in a \inlineisar|summary|. section*["document-templates"::technical]\Defining Document Templates\ -text\Current \isadof comes with a number of setups for the PDF generation, notably +text\ + Document-templates\index{document template} define the overall layout (page size, margins, fonts, + etc.) of the generated documents and are the the main technical means for implementing layout + requirements that are, \eg, required by publishers or standardization bodies. Document-templates + + + + +Current \isadof comes with a number of setups for the PDF generation, notably Springer LNCS, lipics, ..., as well as setupqs of technical reports this the present one. The question arises, what to do if \isadof has to be accoustomed to a new LaTeX style