SF.net SVN: docutils:[10207] trunk/docutils/docutils/writers/latex2e/ __init__.py

milde--- via Docutils-checkins <[email protected]> Tue, 19 Aug 2025 17:03:55 +0000
Newsgroups gmane.text.docutils.cvs
Message-ID <[email protected]>
Revision: 10207
          http://sourceforge.net/p/docutils/code/10207
Author:   milde
Date:     2025-08-19 17:03:49 +0000 (Tue, 19 Aug 2025)
Log Message:
-----------
Simplify the determination of table opening LaTeX code.

No change to the output.

Modified Paths:
--------------
    trunk/docutils/docutils/writers/latex2e/__init__.py

Modified: trunk/docutils/docutils/writers/latex2e/__init__.py
===================================================================
--- trunk/docutils/docutils/writers/latex2e/__init__.py	2025-08-19 16:53:27 UTC (rev 10206)
+++ trunk/docutils/docutils/writers/latex2e/__init__.py	2025-08-19 17:03:49 UTC (rev 10207)
@@ -937,6 +937,8 @@
         return ''
 
     def get_opening(self, width=r'\linewidth'):
+        opening = []
+        nr_of_cols = len(self._col_specs)
         align_map = {'left': '[l]',
                      'center': '[c]',
                      'right': '[r]',
@@ -943,18 +945,17 @@
                      None: ''}
         align = align_map.get(self.get('align'))
         latex_type = self.get_latex_type()
-        if align and latex_type not in ("longtable", "longtable*"):
-            opening = [r'\noindent\makebox[\linewidth]%s{%%' % (align,),
-                       r'\begin{%s}' % (latex_type,)]
-        else:
-            opening = [r'\begin{%s}%s' % (latex_type, align)]
+        if align and not latex_type.startswith("longtable"):
+            opening.append(r'\noindent\makebox[\linewidth]%s{%%' % align)
+            align = ''
         if not self.colwidths_auto:
             if self.borders == 'standard' and not self.legacy_column_widths:
-                opening.insert(-1, r'\setlength{\DUtablewidth}'
+                opening.append(r'\setlength{\DUtablewidth}'
                                r'{\dimexpr%s-%i\arrayrulewidth\relax}%%'
-                               % (width, len(self._col_specs)+1))
+                               % (width, nr_of_cols+1))
             else:
-                opening.insert(-1, r'\setlength{\DUtablewidth}{%s}%%' % width)
+                opening.append(r'\setlength{\DUtablewidth}{%s}%%' % width)
+        opening.append(r'\begin{%s}%s' % (latex_type, align))
         return '\n'.join(opening)
 
     def get_closing(self):
@@ -965,7 +966,7 @@
         #     closing.append(r'\hline')
         closing.append(r'\end{%s}' % self.get_latex_type())
         if (self.get('align')
-            and self.get_latex_type() not in ("longtable", "longtable*")):
+            and not self.get_latex_type().startswith("longtable")):
             closing.append('}')
         return '\n'.join(closing)
 

This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.