]> wagnertech.de Git - mDoc.git/blobdiff - python/mDoc/tpl/latex.tpl
pydev-s6
[mDoc.git] / python / mDoc / tpl / latex.tpl
index fbcbbbb2de4703d79aff95e1cc4c46f82495cad8..806886388c39891a726da9144c2c46911975f343 100644 (file)
@@ -1,12 +1,80 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <mdoc format="latex" extension="tex">
-<global/>
+<functions>
+<function name="informaltable">
+<![CDATA[
+# initialize output
+out = ""
+# eval colums
+(ctl,elem, value, attrs) = source.extractElement(XMLE.EC_BEG) # reads tgroup
+if elem != "tgroup":
+       raise RuntimeError("unknown elem, <tgroup> expected in <informaltable>: "+elem)
+cols = int(attrs["cols"])
+colsep = ""
+if attrs["colsep"] == "1":
+       colsep = "|"
+rowsep = False
+if attrs["rowsep"] == "1":
+       rowsep = True
+align = "r"
+if attrs["align"] == "left":
+       align = "l"
+align_arr = cols*[align]
+(ctl,elem, value, attrs) = source.extractElement(XMLE.EC_BEG) # searches tbody
+while ctl != XMLE.EC_END:
+
+       if elem == "colspec": # colspec found
+               if "colwidth" in attrs:
+                       align_arr[int(attrs["colnum"])-1] = "p{"+attrs["colwidth"]+"}"
+
+       if elem == "tbody": # tbody found
+               out += r"\begin{tabular}{"
+               tmp_colsep = ""
+               for i in range(cols):
+                       out += tmp_colsep + align_arr[i]
+                       tmp_colsep = colsep
+               out += "}\n"
+               (ctl1,elem, value, attrs) = source.extractElement(XMLE.EC_BEG) # reads row
+               while ctl1 != XMLE.EC_END:
+                       if elem != "row":
+                               raise RuntimeError("Only <row> expected in <tbody>: "+elem)
+                       (ctl2,elem, value,attrs) = source.extractElement(XMLE.EC_BEG) # reads entry
+                       entry_sep = ""
+                       while ctl2 != XMLE.EC_END:
+                               if not value:
+                                       value = ""
+                               if elem != "entry":
+                                       raise RuntimeError("Only <entry> expected in <row>: "+elem)
+                               # check for further elems
+                               (ctl3,elem,value3,attrs3) = source.extractElement(XMLE.EC_BEG)
+                               line_sep = ""
+                               while ctl3 != XMLE.EC_END:
+                                       if elem != "line": # only lines expected
+                                               raise RuntimeError("Only <line> expected in <entry: "+elem)
+                                       value += line_sep + value3
+                                       line_sep = " \par\n"
+                                       (ctl3,elem3,value3,attrs3) = source.extractElement(ctl3)
+                               out += entry_sep + value
+                               entry_sep = " & "
+                               (ctl2,elem, value, attrs) = source.extractElement(ctl2) # reads entry
+                       out += r" \\" + "\n"
+                       (ctl1,elem, value, attrs) = source.extractElement(ctl1) # reads row
+               out += r"\end{tabular}"+"\n\n"
+       (ctl,elem, value, attrs) = source.extractElement(ctl) # searches tbody  
+]]></function>
+</functions>
+<global>
+<informaltable exec="informaltable"/>
+<para pre="\n"/>
+<emphasis pre="\emph{" post="}" end=""/>
+<item end=" "/>
+</global>
+
 <hierarchical>
 <article>
 <test>testdata</test>
-<articleinfo>
-<![CDATA[
-\documentclass[12pt, a4paper, parskip=half]{scrartcl}
+<articleinfo position="first">
+<![CDATA[\documentclass[12pt, a4paper, parskip=half]{scrartcl}
 \usepackage[utf8]{inputenc}% muss zum Editor passen -> http://texwelt.de/wissen/fragen/2656/
 \usepackage[T1]{fontenc}
 \usepackage[ngerman]{babel}
 \geometry{a4paper,left=25mm,right=20mm, top=33mm, bottom=30mm}
 
 \renewcommand{\familydefault}{\sfdefault}
+\renewcommand{\arraystretch}{1.4}
 
 \author{Michael J.M. Wagner}
-\date{\vspace{-6ex}}
 
 \CenterWallPaper{1}{wagner_tech_briefbogen_blau_fs1.pdf}
 
 \setcounter{secnumdepth}{0} % keine Kapitelnummerierung
 ]]>
-<title>
-<![CDATA[\title{$value}]]>
-</title>
 </articleinfo>
+<articleinfo>
+       <title pre="\title{" post="}"/>
+       <pubdate pre="\date{" post="}"/>
+</articleinfo>
+<articleinfo position="last">
+<![CDATA[
+\begin{document}
+\pagenumbering{gobble} % no page numbers
+
+\maketitle
+]]>
+</articleinfo>
+<section pre="\section{">
+       <title post="}"/>
+</section>
+</article>
+<article position="last">
+<![CDATA[
+\end{document}
+
+]]>
 </article>
+
 </hierarchical>
 </mdoc>