GNU bug report logs - #55333
[PATCH] Choose latex environment for table.el export

Previous Next

Package: emacs;

Reported by: Vladimir Nikishkin <for.emacs-table.el-environment-patch_2022-05-09 <at> lockywolf.net>

Date: Mon, 9 May 2022 07:05:03 UTC

Severity: normal

Tags: patch

Merged with 55329

Fixed in version 29.1

Done: Lars Ingebrigtsen <larsi <at> gnus.org>

Bug is archived. No further changes may be made.

Full log


Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Vladimir Nikishkin
 <for.emacs-table.el-environment-patch_2022-05-09 <at> lockywolf.net>
To: bug-gnu-emacs <at> gnu.org
Subject: [PATCH] Choose latex environment for table.el export
Date: Mon, 09 May 2022 10:30:57 +0800
Dear Emacs Developers,

Please, consider this patch for inclusion.
This patch slightly generalises the way Emacs' table.el handles
latex export.
Currently, the export always uses the "tabular" environment.
This patch adds a customize option to select a different one, and
adds one built-in suggestion of "longtable", which should be
perfectly compatible with "tabular".

The patch creates 1 new customize variable:
1. table-latex-environment

And changes the following 2 functions:
1. table--generate-source-epilogue
2. table--generate-source-prologue

#+begin_src patch
diff --git a/lisp/textmodes/table.el b/lisp/textmodes/table.el
index 2175900194..eafa3e7b3c 100644
--- a/lisp/textmodes/table.el
+++ b/lisp/textmodes/table.el
@@ -753,6 +753,18 @@ table-html-cell-attribute
   :type 'string
   :group 'table)

+(defcustom table-latex-environment "tabular"
+  "Which tabular-compatible environment to use when generating latex.
+tabular and longtable are known to work."
+  :tag "Latex environment used to export tables"
+  :type '(choice
+	  (const :tag "tabular" "tabular")
+	  (const :tag "longtable"  "longtable")
+          string)
+  :group 'table
+  :local t)
+
 (defcustom table-cals-thead-rows 1
   "Number of top rows to become header rows in CALS table."
   :tag "CALS Header Rows"
@@ -3025,7 +3037,7 @@ table--generate-source-prologue
 		"")))
      ((eq language 'latex)
       (insert (format "%% This LaTeX table template is generated by emacs %s\n" emacs-version)
-	      "\\begin{tabular}{|" (apply #'concat (make-list (length col-list) "l|")) "}\n"
+	      "\\begin{" table-latex-environment "}{|" (apply #'concat (make-list (length col-list) "l|")) "}\n"
 	      "\\hline\n"))
      ((eq language 'cals)
       (insert (format "<!-- This CALS table template is generated by emacs %s -->\n" emacs-version)
@@ -3051,7 +3063,7 @@ table--generate-source-epilogue
      ((eq language 'html)
       (insert "</table>\n"))
      ((eq language 'latex)
-      (insert "\\end{tabular}\n"))
+      (insert "\\end{" table-latex-environment "}\n"))
      ((eq language 'cals)
       (set-marker-insertion-type (table-get-source-info 'colspec-marker) t) ;; insert before
       (save-excursion
#+end_patch

The copyright disclaimer has been signed by me and submitted to FSF
last August.

-- 
Your sincerely,
Vladimir Nikishkin (MiEr, lockywolf)
(Laptop)




This bug report was last modified 3 years and 13 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.