LatexRenderer.class.php
gehe zur Dokumentation dieser Datei00001 <?php
00002
00012 class LatexRenderer
00013 {
00014 var $linkedObjectIds = array();
00015
00022 function renderElement( $child )
00023 {
00024 global $conf;
00025
00026 $val = '';
00027 $before = '';
00028 $after = '';
00029
00030 switch( strtolower(get_class($child)) )
00031 {
00032 case 'tableofcontentelement':
00033 $before = '\tableofcontents'."\n";
00034 break;
00035
00036 case 'rawelement':
00037 $tag = '';
00038 $val = $child->src;
00039
00040 break;
00041
00042 case 'textelement':
00043 $val = $child->text;
00044
00045 $val = Text::replaceHtmlChars( $val );
00046 break;
00047
00048 case 'footnoteelement':
00049 $before = '\footnote{';
00050 $after = '}';
00051 break;
00052
00053 case 'codeelement':
00054
00055 break;
00056
00057 case 'quoteelement':
00058 break;
00059
00060
00061 case 'paragraphelement':
00062 $before = "\n";
00063 break;
00064
00065 case 'speechelement':
00066
00067 break;
00068
00069 case 'linebreakelement':
00070 $after = '\\';
00071 break;
00072
00073 case 'linkelement':
00074
00075 break;
00076
00077 case 'imageelement':
00078 break;
00079
00080 case 'strongelement':
00081 $before = '\textbf{';
00082 $after = '}';
00083 break;
00084
00085 case 'emphaticelement':
00086 $before = '\textit{';
00087 $after = '}';
00088 break;
00089
00090 case 'insertedelement':
00091 $before = '';
00092 $after = '';
00093 break;
00094
00095 case 'removedelement':
00096 $before = '';
00097 $after = '';
00098 break;
00099
00100 case 'headlineelement':
00101
00102 switch( $child->level )
00103 {
00104 case 1:
00105 $before = '\section';
00106 break;
00107 case 2:
00108 $before = '\subsection';
00109 break;
00110 case 3:
00111 default:
00112 $before = '\subsubsection';
00113 break;
00114 }
00115 $before .= '{';
00116 $after = '}';
00117 break;
00118
00119 case 'tableelement':
00120 $before = '\begin{tabular}'."\n";
00121 $after = '\end{tabular}'."\n";
00122 break;
00123
00124 case 'tablelineelement':
00125 $before = '';
00126 $after = '\\';
00127 break;
00128
00129 case 'definitionlistelement':
00130 break;
00131
00132 case 'definitionitemelement':
00133 break;
00134
00135 case 'tablecellelement':
00136 $before = '';
00137 $after = ' & ';
00138 break;
00139
00140 case 'listelement':
00141 $before = '\begin{itemize}'."\n";
00142 $after = '\end{itemize}'."\n";
00143 break;
00144
00145 case 'teletypeelement':
00146 $before = '\texttt{';
00147 $after = '}';
00148 break;
00149
00150 case 'numberedlistelement':
00151 $before = '\begin{itemize}'."\n";
00152 $after = '\end{itemize}'."\n";
00153 break;
00154
00155 case 'listentryelement':
00156 $before = '\item ';
00157 break;
00158
00159 default:
00160
00161 $tag = 'unknown-element';
00162 $attr['class'] = strtolower(get_class($child));
00163 break;
00164 }
00165
00166 $val .= $before;
00167 foreach( $child->children as $c )
00168 {
00169 $val .= $this->renderElement( $c );
00170 }
00171 $val .= $after;
00172
00173 return $val;
00174 }
00175
00176
00177
00183 function render()
00184 {
00185 $this->renderedText = '';
00186 $this->renderedText .= '\documentclass{article}'."\n";
00187 $this->renderedText .= '\begin{document}'."\n";
00188
00189 foreach( $this->children as $child )
00190 $this->renderedText .= $this->renderElement( $child );
00191
00192 $this->renderedText .= '\end{document}'."\n";
00193
00194 return $this->renderedText;
00195 }
00196 }
00197
00198 ?>