Initial Commit
This commit is contained in:
99
database/php/pear/Text/Wiki/Render/Latex/Table.php
Normal file
99
database/php/pear/Text/Wiki/Render/Latex/Table.php
Normal file
@@ -0,0 +1,99 @@
|
||||
<?php
|
||||
|
||||
class Text_Wiki_Render_Latex_Table extends Text_Wiki_Render {
|
||||
var $cell_id = 0;
|
||||
var $cell_count = 0;
|
||||
var $is_spanning = false;
|
||||
|
||||
var $conf = array(
|
||||
'css_table' => null,
|
||||
'css_tr' => null,
|
||||
'css_th' => null,
|
||||
'css_td' => null
|
||||
);
|
||||
|
||||
/**
|
||||
*
|
||||
* Renders a token into text matching the requested format.
|
||||
*
|
||||
* @access public
|
||||
*
|
||||
* @param array $options The "options" portion of the token (second
|
||||
* element).
|
||||
*
|
||||
* @return string The text rendered from the token options.
|
||||
*
|
||||
*/
|
||||
|
||||
function token($options)
|
||||
{
|
||||
// make nice variable names (type, attr, span)
|
||||
extract($options);
|
||||
|
||||
switch ($type)
|
||||
{
|
||||
case 'table_start':
|
||||
$this->cell_count = $cols;
|
||||
|
||||
$tbl_start = '\begin{tabular}{|';
|
||||
for ($a=0; $a < $this->cell_count; $a++) {
|
||||
$tbl_start .= 'l|';
|
||||
}
|
||||
$tbl_start .= "}\n";
|
||||
|
||||
return $tbl_start;
|
||||
|
||||
case 'table_end':
|
||||
return "\\hline\n\\end{tabular}\n";
|
||||
|
||||
case 'caption_start':
|
||||
return "\\caption{";
|
||||
|
||||
case 'caption_end':
|
||||
return "}\n";
|
||||
|
||||
case 'row_start':
|
||||
$this->is_spanning = false;
|
||||
$this->cell_id = 0;
|
||||
return "\\hline\n";
|
||||
|
||||
case 'row_end':
|
||||
return "\\\\\n";
|
||||
|
||||
case 'cell_start':
|
||||
if ($span > 1) {
|
||||
$col_spec = '';
|
||||
if ($this->cell_id == 0) {
|
||||
$col_spec = '|';
|
||||
}
|
||||
$col_spec .= 'l|';
|
||||
|
||||
$this->cell_id += $span;
|
||||
$this->is_spanning = true;
|
||||
|
||||
return '\multicolumn{' . $span . '}{' . $col_spec . '}{';
|
||||
}
|
||||
|
||||
$this->cell_id += 1;
|
||||
return '';
|
||||
|
||||
case 'cell_end':
|
||||
$out = '';
|
||||
if ($this->is_spanning) {
|
||||
$this->is_spanning = false;
|
||||
$out = '}';
|
||||
}
|
||||
|
||||
if ($this->cell_id != $this->cell_count) {
|
||||
$out .= ' & ';
|
||||
}
|
||||
|
||||
return $out;
|
||||
|
||||
default:
|
||||
return '';
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
Reference in New Issue
Block a user