LatexRenderer.class.php

gehe zur Dokumentation dieser Datei
00001 <?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                     //$val = Text::encodeHtml( $val );
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                     // Ggf. Hyperref-Paket verwenden.
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 ?>

Erzeugt am Thu May 14 00:55:49 2009 für OpenRat von  doxygen 1.5.8