From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp11.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id EMWwAXjJSmIWGQEAgWs5BA (envelope-from ) for ; Mon, 04 Apr 2022 12:33:28 +0200 Received: from aspmx1.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp11.migadu.com with LMTPS id YLb0OnfJSmJRSgEA9RJhRA (envelope-from ) for ; Mon, 04 Apr 2022 12:33:27 +0200 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 800BC1A25A for ; Mon, 4 Apr 2022 12:33:27 +0200 (CEST) Received: from localhost ([::1]:36706 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nbK1W-0005Al-CI for larch@yhetil.org; Mon, 04 Apr 2022 06:33:26 -0400 Received: from eggs.gnu.org ([209.51.188.92]:45270) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nbK0z-00055H-Vu for emacs-orgmode@gnu.org; Mon, 04 Apr 2022 06:32:54 -0400 Received: from [2607:f8b0:4864:20::42d] (port=42768 helo=mail-pf1-x42d.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nbK0w-00022L-NI for emacs-orgmode@gnu.org; Mon, 04 Apr 2022 06:32:53 -0400 Received: by mail-pf1-x42d.google.com with SMTP id x31so8546134pfh.9 for ; Mon, 04 Apr 2022 03:32:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:in-reply-to:references:date:message-id :mime-version:content-transfer-encoding; bh=+mv8BE5VbmeVS3xQuWIx2MRxetQ/QKwPQBY1avIsK/A=; b=O9Ebel+r16zCYinoht0OmsBklabgTcrqc71HnaKu2bPucIO3nK6o4eIqFgnW0swCML 3h6rb3ucjiuq/NrlybTUiMTaQUTJE5bXvGCjpu4HLtHKOlcxIZ+U82wg2WYe3hEMp3nS ail8TYTV06lytAtqkLRsza1YnIM/a3/TwtBbkIY/NYqzw1W2qiL2GHCG7TKMmUokl1W0 dXbsCuqfJ7TvYvMb3abVlBDFaSUfo8yWOYMQYSO29F5xakYnPPT6289dFUyUTXptbWmO +DYcdkf46oIqbfIKqu++xsVE+4nEgsEuHXOyPDlifEGPTuQ2XznH/fLc4AjLgL0Gm9ja QQRQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:in-reply-to:references:date :message-id:mime-version:content-transfer-encoding; bh=+mv8BE5VbmeVS3xQuWIx2MRxetQ/QKwPQBY1avIsK/A=; b=oW2FRx/60lar9UrS7PAkWD4ybKI6Sb88Q3ZOL8BkHhVrAecXcak/Cng3dqF78hRg7S O9FGU+Eyfk5ffY4kZqbfbG7oazdpqioBwuV6/EkbuJSAfZb2DPx5eKZa0xO/hbhBBoVQ Wy0fJklrvTqZnUxELqtyyQE3/hi+Ql0XXiFUHMhB1apiN403PsnlEsDh9A0Qs1/nFRka +TMVs7AuasTLG3dnT+lA6VKOflLRCTRD0u4CJw+JCHKm6yD410ZRTpOt1bNNltIr2kpk sfd+JeHr1XbZE+FNGwB2qrB7qceOUzaR/Gz9KQ6RZNdfPEeKsklj9dJMK7lTWMcoFd6i ssdg== X-Gm-Message-State: AOAM533CHg4fRtS4FXkbN2+ehze0NYoDpaDal8ugd//wGwAkJhtS3K54 Kv7NZiLtn3OWe+pR/jimTFE= X-Google-Smtp-Source: ABdhPJzBdbw8DYmy5otMqA+1WJ/n/vLfPlbon3oge6qSybGKisATdVxL39c7vezALMZnfe4W3jIvHA== X-Received: by 2002:aa7:8a4a:0:b0:4fa:e155:f03c with SMTP id n10-20020aa78a4a000000b004fae155f03cmr57634053pfa.67.1649068369139; Mon, 04 Apr 2022 03:32:49 -0700 (PDT) Received: from localhost ([45.128.72.3]) by smtp.gmail.com with ESMTPSA id v3-20020a056a00148300b004fb04acde5dsm11608399pfu.166.2022.04.04.03.32.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 04 Apr 2022 03:32:48 -0700 (PDT) From: Ihor Radchenko To: emacs@vergauwen.me Subject: Re: ox-latex table tabbing support. In-Reply-To: References: X-Woof-Patch: approved Date: Mon, 04 Apr 2022 18:33:16 +0800 Message-ID: <87wng5nno3.fsf@localhost> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::42d (failed) Received-SPF: pass client-ip=2607:f8b0:4864:20::42d; envelope-from=yantar92@gmail.com; helo=mail-pf1-x42d.google.com X-Spam_score_int: -3 X-Spam_score: -0.4 X-Spam_bar: / X-Spam_report: (-0.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, PDS_HP_HELO_NORDNS=0.659, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-orgmode@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: emacs-orgmode@gnu.org Errors-To: emacs-orgmode-bounces+larch=yhetil.org@gnu.org Sender: "Emacs-orgmode" X-Migadu-Flow: FLOW_IN X-Migadu-To: larch@yhetil.org X-Migadu-Country: US ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1649068407; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post:dkim-signature; bh=+mv8BE5VbmeVS3xQuWIx2MRxetQ/QKwPQBY1avIsK/A=; b=ah3fERHIDIEYbPpcI7eBSCYmX13CWWVxPHED0I2jCG2wMMS9Jm+wl+Ob1ZWz2RTVSlJDvV a/+EPoun9gT2MC5Ta5eYf2FZ9RaB8r/mjiqgq1XSDBGlqfEBIqvKo5sEDJwXmWlVdGnOiA mQYFsHHUfbiJ1RwUpU+ZSgsxVs/yxGjHscBHRaGjDAlqx2Y12gJNi37ztPxZ8zSXclvk6s 9axDM3+T9WbPzUMxGVs4HhiYSfuG+26AUBJ+TLOAIkfpTes1aqtrzMbmLbcyxYt3vSJPzN zxo2zC7JtEDXRoCYxYvNu4P+sMFGk48C9+DZ47OWZZQtflao1yWg4HGP4Qu5Uw== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1649068407; a=rsa-sha256; cv=none; b=CNpjbaURSlKBl2O5rypY3HCM02JyggOtxYefGbTvyvSDb6T05+Ghn5Jz+KC6IUxPGAaCiV GFiXNNkdElSzhn96dD5ReQ6XUQIx5+udCV7brEuBaEWculQClnwO5JhFbTK9tI+fEFyg0J 4K9viMe9J+hKUg4YODGGQLfieZ1EY1cZ4+f+uUfsB640V1DH5Wj1V4rCweGH/sDzXqIdqH iQtSosEdtdCMgJ+R1PE/DjSsaw84BGyG1TUQRtaj1tMLqHGMGduqbEHAPl/rTgnoxlJxNl 4PfUNolvu2UOCKgyI+/E+kxif06Bdk1QGYJGB4v0PeCSdDkEhdII7hYA76YkWg== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=O9Ebel+r; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org" X-Migadu-Spam-Score: -5.68 Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=O9Ebel+r; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org" X-Migadu-Queue-Id: 800BC1A25A X-Spam-Score: -5.68 X-Migadu-Scanner: scn0.migadu.com X-TUID: o0jGh+fdw3Hn emacs--- via "General discussions about Org-mode." writes: > I have implemented tabbing (http://www.ctex.org/documents/latex/latex2e-h= tml/ltx-58.html) support for ox-latex. By setting=C2=A0#+ATTR_LATEX: :mode = tabbingthe exporter will use the tabbing environment.=C2=A0 > > The benefits of using tabbing over tabular: > - Can span multiple pages (also possible with long tables). > - Cell width is fixed and does not depend on the content. > - Cells can overflow.=C2=A0 Looks useful. Marking your message as a patch to be tracked at updated.orgmode.org Some comments are below. > TINYCHANGE Note that your patch >15 LOC and cannot be applied without copyright assignment. See https://orgmode.org/worg/org-contribute.html#copyright > -;; `org-latex--org-table' or `org-latex--math-table' functions, > +;; `org-latex--org-table' or `org-latex--math-table' or `org-latex--org-= tabbing' functions, We generally try to keep all the text in source files narrower than 70 characters (default value of fill-column). You can use fill-region to make Emacs autofill the comment lines. > +(defun org-latex--align-string-tabbing (table info &optional math?) It looks like math? argument is unused. Is it intentional? > + "Return an appropriate LaTeX alignment string, for the > +latex tabbing environment. > +TABLE is the considered table. INFO is a plist used as > +a communication channel. When optional argument MATH? is > +non-nil, TABLE is meant to be a matrix, where all cells are > +centered." > + (or (org-export-read-attribute :attr_latex table :align) > + (let ((align "") > + (count 0) > + (separator "")) > + (progn You do not need an extra progn inside let. > +(defun org-table--org-tabbing (table contenst info) ^contents > + "Return appropriate LaTeX code for an Org table, using the > +latex tabbing syntax. > +TABLE is the table type element to transcode. CONTENTS is its > +contents, as a string. INFO is a plist used as a communication > +channel. > +This function assumes TABLE has `org' as its `:type' property and > +`tabbing' as its `:mode' attribute." > + (let ((output (format "\\begin{%s}\n%s\n%s\\end{%s}" > + "tabbing" > + (org-latex--align-string-tabbing table info ) > + contenst ^contents Best, Ihor