From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp12.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms5.migadu.com with LMTPS id OK2HBs3uUmMq8gAAbAwnHQ (envelope-from ) for ; Fri, 21 Oct 2022 21:11:09 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp12.migadu.com with LMTPS id gFR/Bs3uUmO+RQEAauVa8A (envelope-from ) for ; Fri, 21 Oct 2022 21:11:09 +0200 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by aspmx1.migadu.com (Postfix) with ESMTP id C34DD30562 for ; Fri, 21 Oct 2022 21:11:08 +0200 (CEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1olxJl-0000ws-R6; Fri, 21 Oct 2022 15:04:29 -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 1oluwo-0000XK-8N for emacs-orgmode@gnu.org; Fri, 21 Oct 2022 12:32:38 -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 1oluwm-0003Mk-Sp for emacs-orgmode@gnu.org; Fri, 21 Oct 2022 12:32:37 -0400 Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1oluwj-0006RY-Od for emacs-orgmode@gnu.org; Fri, 21 Oct 2022 18:32:33 +0200 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: Fri, 21 Oct 2022 23:32:27 +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> 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: <874jvx7shy.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: 28 X-Spam_score: 2.8 X-Spam_bar: ++ X-Spam_report: (2.8 / 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.25, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.25, 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=1666379468; 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=gWG6mYv1T6V+BpZIrRSDqNT4Dsy0p3qWUq3r0V/9m8s=; b=Gg8YRlCu6PILmKeNOtU0uja2gsyA07uZnvSs1Z7ycVDphUKYZSLppBx23xTDI2DDO4jj38 Ru4oXts9DH7lNbwdIz4DmBqkXObt/SpF2CHkKIIwlJHf4O2tGR0JiodQ2B0QSBlWAfnaTx Xh59yT6UTRxEa2RjTZcW2sEQFOvC43cupcem/28Gan9pV1cykWnSFruFfwpXrBQ+tdbW8v jYNE70mUka3JW8zXOnWM3TmsH4UFrbFKZS/CMl6zwl5rumW/tiMHUsPCAQI5AqIkptxbws 6G/BVKihhIibvcxde6WXIMCRsEi8+IFF3o1fPHccQVBHfcJU5RfUewWnZciRPA== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1666379468; a=rsa-sha256; cv=none; b=ucsYEgYNSwHDznQfY1ou4+ggIgDRRixZxqL+4I33GW1z9G6XhXQov4sgPlX8j+MTEiyNtf cJxzLgu7w/jhChenFP1h/cehBGGZEZELYhCEGcauvTiF2fjD87I9ijXyhjEPCHnlgiyfEt 0PKtf/zFme03H4Kfnn+NIDH5bj0QnimBz+AyS3pXA6pvON5WTUeeM3CoQO4WGMEKdjxh3F jHi30aTUYBcWgmrRTwR0mUu6Yt4Ruq1YduTcMVHYX/DG3aP2jOsn3ykHfnj5pA4dIqDc3G 2kNtIGx8Eag2wHxfvU1CVHaTXaZnrI8RPYmIbnWx2/mXB5M6day+iHirAlsXyQ== 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: 4.36 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: C34DD30562 X-Spam-Score: 4.36 X-Migadu-Scanner: scn1.migadu.com X-TUID: ZBAtFI5xHolP On 21/10/2022 10:41, Ihor Radchenko wrote: > Max Nikulin writes: > >> On 20/10/2022 12:07, Ihor Radchenko wrote: >>> When transcoding children (e.g. table rows), the sibling rows can always >>> be accessed using org-export-get-previous-element and >>> org-export-get-next-element. >> >> Decision if escaping is necessary should be based on export result, not >> on the source element. > > I am not sure. The export result may originate from constructs like > > #+MACRO: pagebreak @@latex:\\@@ > > Some paragraph {{{pagebreak}}} > src_elisp[:results raw]{(format "@@latex:[%dpt]@@" (or my-spacing-value 0))} > > The point is: it can be done on purpose for some reason. I agree that it can be done for purpose and I am not happy that due to table syntax it is not easy to emit custom code between rows. Since you declined an idea to mark default line breaks with some unique comment to use it in search pattern in a filter, I may suggest to change custom code to either remove newline before brackets or to add a comment after \\ Some paragraph src_elisp[:results raw]{(format "@@latex:\\\\[%dpt]@@" (or my-spacing-value 0))} or #+MACRO: pagebreak @@latex:\\%@@ With any variant such line break will be ignored by "optimizing" filter. Concerning element vs. exported text, consider a derived backend that ignores italics markers if a paragraph has some attribute. Usually Paragraph \\ \emph{[something]} does not cause any problem, however if italics is ignored it is an error Paragraph\\ [something] That is why namely exported code of adjacent leaf node should be examined. Ideally there should be a possibility to add some attributes or properties to distinguish raw export snippet. Unfortunately it requires complete redesign of org-export.