]> wagnertech.de Git - mDoc.git/blob - python/mDoc/tpl/latex.tpl
csharp-s6g
[mDoc.git] / python / mDoc / tpl / latex.tpl
1 <?xml version="1.0" encoding="UTF-8"?>
2 <mdoc format="latex" extension="tex">
3 <functions>
4 <function name="informaltable">
5 <![CDATA[
6 # initialize output
7 out = ""
8 # eval colums
9 (ctl,elem, value, attrs) = source.extractElement(XMLE.EC_BEG) # reads tgroup
10 if elem != "tgroup":
11         raise RuntimeError("unknown elem, <tgroup> expected in <informaltable>: "+elem)
12 cols = int(attrs["cols"])
13 colsep = ""
14 if attrs["colsep"] == "1":
15         colsep = "|"
16 rowsep = False
17 if attrs["rowsep"] == "1":
18         rowsep = True
19 align = "r"
20 if attrs["align"] == "left":
21         align = "l"
22 align_arr = cols*[align]
23 (ctl,elem, value, attrs) = source.extractElement(XMLE.EC_BEG) # searches tbody
24 while ctl != XMLE.EC_END:
25
26         if elem == "colspec": # colspec found
27                 if "colwidth" in attrs:
28                         align_arr[int(attrs["colnum"])-1] = "p{"+attrs["colwidth"]+"}"
29
30         if elem == "tbody": # tbody found
31                 out += r"\begin{tabular}{"
32                 tmp_colsep = ""
33                 for i in range(cols):
34                         out += tmp_colsep + align_arr[i]
35                         tmp_colsep = colsep
36                 out += "}\n"
37                 (ctl1,elem, value, attrs) = source.extractElement(XMLE.EC_BEG) # reads row
38                 while ctl1 != XMLE.EC_END:
39                         if elem != "row":
40                                 raise RuntimeError("Only <row> expected in <tbody>: "+elem)
41                         (ctl2,elem, value,attrs) = source.extractElement(XMLE.EC_BEG) # reads entry
42                         entry_sep = ""
43                         while ctl2 != XMLE.EC_END:
44                                 if not value:
45                                         value = ""
46                                 if elem != "entry":
47                                         raise RuntimeError("Only <entry> expected in <row>: "+elem)
48                                 # check for further elems
49                                 (ctl3,elem,value3,attrs3) = source.extractElement(XMLE.EC_BEG)
50                                 line_sep = ""
51                                 while ctl3 != XMLE.EC_END:
52                                         if elem != "line": # only lines expected
53                                                 raise RuntimeError("Only <line> expected in <entry: "+elem)
54                                         value += line_sep + value3
55                                         line_sep = " \par\n"
56                                         (ctl3,elem3,value3,attrs3) = source.extractElement(ctl3)
57                                 out += entry_sep + value
58                                 entry_sep = " & "
59                                 (ctl2,elem, value, attrs) = source.extractElement(ctl2) # reads entry
60                         out += r" \\" + "\n"
61                         (ctl1,elem, value, attrs) = source.extractElement(ctl1) # reads row
62                 out += r"\end{tabular}"+"\n\n"
63         (ctl,elem, value, attrs) = source.extractElement(ctl) # searches tbody  
64 ]]></function>
65 </functions>
66 <global>
67 <informaltable exec="informaltable"/>
68 <para pre="\n"/>
69 <emphasis pre="\emph{" post="}" end=""/>
70 <item end=" "/>
71 </global>
72
73 <hierarchical>
74 <article>
75 <test>testdata</test>
76 <articleinfo position="first">
77 <![CDATA[\documentclass[12pt, a4paper, parskip=half]{scrartcl}
78 \usepackage[utf8]{inputenc}% muss zum Editor passen -> http://texwelt.de/wissen/fragen/2656/
79 \usepackage[T1]{fontenc}
80 \usepackage[ngerman]{babel}
81 \usepackage{wallpaper}
82 \usepackage{wrapfig} % Für Textumlauf
83 \usepackage{geometry}
84 \geometry{a4paper,left=25mm,right=20mm, top=33mm, bottom=30mm}
85
86 \renewcommand{\familydefault}{\sfdefault}
87 \renewcommand{\arraystretch}{1.4}
88
89 \author{Michael J.M. Wagner}
90
91 \CenterWallPaper{1}{wagner_tech_briefbogen_blau_fs1.pdf}
92
93 \setcounter{secnumdepth}{0} % keine Kapitelnummerierung
94 ]]>
95 </articleinfo>
96 <articleinfo>
97         <title pre="\title{" post="}"/>
98         <pubdate pre="\date{" post="}"/>
99 </articleinfo>
100 <articleinfo position="last">
101 <![CDATA[
102 \begin{document}
103 \pagenumbering{gobble} % no page numbers
104
105 \maketitle
106 ]]>
107 </articleinfo>
108 <section pre="\section{">
109         <title post="}"/>
110 </section>
111 </article>
112 <article position="last">
113 <![CDATA[
114 \end{document}
115
116 ]]>
117 </article>
118
119 </hierarchical>
120 </mdoc>
121