From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp11.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms5.migadu.com with LMTPS id KN96HqdRYWPdQAAAbAwnHQ (envelope-from ) for ; Tue, 01 Nov 2022 18:04:39 +0100 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp11.migadu.com with LMTPS id uBqCHqdRYWMVZgAA9RJhRA (envelope-from ) for ; Tue, 01 Nov 2022 18:04:39 +0100 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 4640BD953 for ; Tue, 1 Nov 2022 18:04:38 +0100 (CET) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1optnN-0002he-NG; Tue, 01 Nov 2022 12:07:21 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1optnG-0002gm-GV for emacs-orgmode@gnu.org; Tue, 01 Nov 2022 12:07:15 -0400 Received: from ciao.gmane.io ([116.202.254.214]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1optnE-0007zD-JY for emacs-orgmode@gnu.org; Tue, 01 Nov 2022 12:07:13 -0400 Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1optnC-0006ui-Ap for emacs-orgmode@gnu.org; Tue, 01 Nov 2022 17:07:10 +0100 X-Injected-Via-Gmane: http://gmane.org/ To: emacs-orgmode@gnu.org From: Max Nikulin Subject: Re: Line breaks and brackets in LaTeX export Date: Tue, 1 Nov 2022 23:07:04 +0700 Message-ID: References: <875ygk6a8z.fsf@posteo.net> <87a65vitbz.fsf_-_@posteo.net> <87edv6izx4.fsf@localhost> <8735bmelgu.fsf@posteo.net> <878rlecx49.fsf@posteo.net> <87h701hhjp.fsf@localhost> <875ygf9j6u.fsf@localhost> <85e80572-33c6-aff5-2654-4f8de5fa143c@gmail.com> <874jvx7shy.fsf@localhost> <87fsfg30d5.fsf@localhost> <87mt9bigra.fsf@localhost> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.2.2 Content-Language: en-US In-Reply-To: <87mt9bigra.fsf@localhost> Received-SPF: pass client-ip=116.202.254.214; envelope-from=geo-emacs-orgmode@m.gmane-mx.org; helo=ciao.gmane.io X-Spam_score_int: 26 X-Spam_score: 2.6 X-Spam_bar: ++ X-Spam_report: (2.6 / 5.0 requ) BAYES_00=-1.9, DKIM_ADSP_CUSTOM_MED=0.001, FORGED_GMAIL_RCVD=1, FORGED_MUA_MOZILLA=2.309, FREEMAIL_FORGED_FROMDOMAIN=0.001, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.249, NICE_REPLY_A=-0.001, NML_ADSP_CUSTOM_MED=0.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 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: , Sender: "Emacs-orgmode" Errors-To: emacs-orgmode-bounces+larch=yhetil.org@gnu.org X-Migadu-Flow: FLOW_IN X-Migadu-Country: US ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1667322279; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to: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; bh=uoEJZAMPCI4hTUM6FUU1c9kXPGhZBXHDIi0iAGgXlQw=; b=HvZQeY5jXLUuC5i0Mb6nkMZFIxKYm2T6hN/t3rQteMFLK6yKbSXReFOHrnZHBHZ1BZXewN 0tzxdOJgbnDz0VFDW4ZS3v0s7AMdVAQF28U82v3UZz4FgqSK5GMjfi8FHPzLIzhs9C7Kt7 LdOIXMWzth9x9cof2Z9ahda6O9LYEQxcntD+jKcay9d8O6Q3YS0AElAQ+JTX+JtkqlU4z6 V4Chp/SkV5eArqpUAR4ZEvJPJ0b2OXS3wNXXmV4sL1RvGzblW+6XipVMYCbzbs//2TIquS zfrAfrJ8aFNE6nRvsOp6uNkMiyWL6giDAkYe1qe4tRUwk6oF0oOLCZGNjoP3ag== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1667322279; a=rsa-sha256; cv=none; b=NqlWVCtOPY3qq8cQEhVk0gxaMejuedXB+mGoRQQloLQTg0a961lBFj6fueJfquzK5aJFG+ DptIQYJKus5QXst+YERl7lISlz0CRjVkIJSMSMslOwAoOQ6UtNi4EYhsQEby6/MAyao0ya PiDdZNrZwr4wFXhcPXLp8vG2hyixGMSnf7n+Qy5EjxmVCkfTcqc9AMCpYAkusQ0MN8cFUG sBwk/zkpZF9XbxrmjOSMmdJdt549EeyVUJGOMxX1GjmrC+ZCKc0W2szh9/uFzzDV+BIIsn 0Mnd1iqJUU77gVNbFkQ28ujNroI/I6b1gA0TrfJTjlntbWM4AkNcxk3F6lJA4Q== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=none; dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=gmail.com (policy=none); 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: 2.72 Authentication-Results: aspmx1.migadu.com; dkim=none; dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=gmail.com (policy=none); 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: 4640BD953 X-Spam-Score: 2.72 X-Migadu-Scanner: scn1.migadu.com X-TUID: C7uWIhYOUsBd On 01/11/2022 08:51, Ihor Radchenko wrote: > Max Nikulin writes: > >> On 22/10/2022 12:15, Ihor Radchenko wrote: >>> as long as the next line does not match >>> "^[ \t]*\\[" >> >> Verse package defines \\! and \\>. >> >> The only precaution that search pattern should ignore \\\[0pt]\] that is >> a display equation "0pt]" > > Can you please elaborate? LaTeX verse package require "\\!" as stanza separator to get proper line count, so square bracket on the next line is not the only character that may change meaning of "\\". So "[*!>" (depending on context) should be handled. Search pattern should not match odd number of backslashes. It is a common mistake to not care what character precedes the pattern. Accordingly to Org syntax \\ line break may appear at the end of line only, but a user may add for some reason @@latex:...@. Another corner case when "\\[0pt]\n" should not be blindly replaced to "\\\n" (I do not escape "\"). Imagine that you are going to describe this optimizing filter ---- >8 ---- Optimizing filter will replace #+begin_example First\\[0pt] Second #+end_example with #+begin_example First\\ Second #+end_example ---- 8< ----- >>> 2. Modify org-latex-template to replace unnecessary occurrences of >>> "\\[0pt]" in CONTENTS when org-latex-compact-latex (you may propose >>> other defcustom names) is non-nil. >> >> I believe, it is better to introduce a list of filter functions that may >> perform such optimizing. > > I don't think so. Users can already define filters. What we discuss here > is a built-in filter. It should be separate from user customization and > only expose on/off options. If a separate defcustom is used for each built-in filter then it will be inconvenient to review which filters are active from easy customization UI. It might be better to use single defcustom of list type allowing to disable particular built-in filters and to add user filters and to define their order in respect to built-in ones. I am unsure concerning convenient enough UI.