forced tables flush left, cell styles implemented
svn: r758
This commit is contained in:
		| @@ -211,6 +211,7 @@ class LaTeXDoc(TextDoc): | ||||
| 	if self.in_list: | ||||
| 	    self.in_list = 0 | ||||
| 	    self.f.write('\n\\end{enumerate}\n') | ||||
| 	    newline = _('') | ||||
|  | ||||
| 	elif self.in_table: | ||||
| 	    newline = _('') | ||||
| @@ -232,55 +233,74 @@ class LaTeXDoc(TextDoc): | ||||
|         """Begin new table""" | ||||
| 	self.in_table = 1 | ||||
| 	self.currow = 0 | ||||
|  | ||||
| 	# We need to know a priori how many columns are in this table | ||||
| 	self.tblstyle = self.table_styles[style_name] | ||||
| 	self.numcols = self.tblstyle.get_columns() | ||||
|  | ||||
| 	tblfmt = _('*{%d}{l}' % self.numcols) | ||||
| 	self.f.write('\n\n\\begin{longtable}{%s}\n' % tblfmt) | ||||
| 	self.f.write('\n\n\\begin{longtable}[l]{%s}\n' % tblfmt) | ||||
|  | ||||
|     def end_table(self): | ||||
|         """Close the table environment""" | ||||
| 	self.in_table = 0 | ||||
| 	# Using \hfill immediately after the tabular should left-justify | ||||
| 	# the entire table, then create a paragraph separation below it. | ||||
| 	self.f.write('\\end{longtable}\n\\hfill\\par\n') | ||||
| 	# Create a paragraph separation below the table. | ||||
| 	self.f.write('\\end{longtable}\n\\par\n') | ||||
|  | ||||
|     def start_row(self): | ||||
|         """Begin a new row""" | ||||
| 	# doline is a flag for adding "\hline" at the end | ||||
| 	# (doesn't quite work yet) | ||||
| #	self.doline = 0 | ||||
|         self.curcol = 1 | ||||
| 	# doline/skipfirst are flags for adding hor. rules | ||||
| 	self.doline = 0 | ||||
| 	self.skipfirst = 0 | ||||
|         self.curcol = 0 | ||||
| 	self.currow = self.currow + 1 | ||||
| 	 | ||||
|     def end_row(self): | ||||
|         """End the row (new line)""" | ||||
| 	if self.currow == 1: | ||||
| 	    self.f.write('\\\\ \\hline\n') | ||||
| 	self.f.write('\\\\ ') | ||||
| 	if self.doline == 1: | ||||
| 	    if self.skipfirst == 1: | ||||
| 		self.f.write('\\cline{2-%d}\n' % self.numcols) | ||||
| 	    else: | ||||
| 	    self.f.write('\\\\ \n') | ||||
| 		self.f.write('\\hline\n') | ||||
| 	else: | ||||
| 	    self.f.write('\n') | ||||
| 	     | ||||
|     def start_cell(self,style_name,span=1): | ||||
|         """Add an entry to the table. | ||||
| 	   We always place our data inside braces  | ||||
| 	   for safety of formatting.""" | ||||
| 	self.colspan = span | ||||
| 	cellfmt = "" | ||||
| 	if span != 1: | ||||
| 	    cellfmt = ('\\multicolumn{%d}{l}{' % span) | ||||
| #	    self.doline = 1  | ||||
| 	self.curcol = self.curcol + self.colspan | ||||
|  | ||||
| 	self.f.write('%s' % cellfmt) | ||||
| 	self.curcol = self.curcol + span | ||||
| 	self.cstyle = self.cell_styles[style_name] | ||||
| 	self.lborder = self.cstyle.get_left_border() | ||||
| 	self.rborder = self.cstyle.get_right_border() | ||||
| 	self.bborder = self.cstyle.get_bottom_border() | ||||
| 	self.tborder = self.cstyle.get_top_border() | ||||
|  | ||||
| 	cellfmt = "l" | ||||
| 	# Account for vertical rules | ||||
| 	if self.lborder == 1: | ||||
| 	    cellfmt = '|' + cellfmt | ||||
| 	if self.rborder == 1: | ||||
| 	    cellfmt = cellfmt + '|' | ||||
|  | ||||
| 	# and Horizontal rules | ||||
| 	if self.bborder == 1: | ||||
| 	    self.doline = 1  | ||||
| 	elif self.curcol == 1:  | ||||
| 	    self.skipfirst = 1 | ||||
| 	     | ||||
| 	if self.tborder != 0: | ||||
| 	    self.f.write('\\hline\n') | ||||
| 	self.f.write ('\\multicolumn{%d}{%s}{' % (span,cellfmt)) | ||||
| 	 | ||||
|     def end_cell(self): | ||||
|         """Prepares for next cell""" | ||||
| 	if self.colspan > 1: | ||||
| 	    self.f.write('}') | ||||
| 	self.f.write('} ') | ||||
| 	if self.curcol < self.numcols: | ||||
| 	    self.f.write(' & ') | ||||
| 	self.f.write(' ') | ||||
| 	    self.f.write('& ') | ||||
|  | ||||
|     def add_photo(self,name,pos,x,y): | ||||
|         """Currently no photo support""" | ||||
|   | ||||
		Reference in New Issue
	
	Block a user