ping...

On Fri, 22 May 2026 at 16:37, Pedro Andres Aranda Gutierrez <
[email protected]> wrote:

> Hi,
>
> I'm OK with this patch.
> @Ihor, apply when fitting.
>
> Bestm
> /PA ox-latex maintainer
>
> On Fri, 22 May 2026 at 13:49, Derek Chen-Becker <[email protected]>
> wrote:
>
>> Thanks, you're right, I forgot you don't need to escape the bracket.
>> Updated patch attached!
>>
>> Cheers,
>>
>> Derek
>>
>>
>>
>> On Thu, May 21, 2026 at 11:58 PM Pedro Andres Aranda Gutierrez <
>> [email protected]> wrote:
>>
>>> Ah, I see. However, tried this in the scratch buffer:
>>>
>>> (let  ((str
>>> "\\documentclass[11pt]{article}\n\n\n\\usepackage[utf8]{inputenc}
>>> \\usepackage[french]{babel}\n"))
>>>   (if (string-match "\\\\usepackage\\[\\([^]]*\\)\\]{babel}" str)
>>>     (message (match-string 1 str))
>>>     (message "???")))
>>>
>>> Ad it printed
>>> french
>>>
>>> So, apparently, you don't need the extra escape inside the charset,
>>> \\([^]]*\\)
>>> should be enough...
>>>
>>> Cheers, /PA
>>>
>>> On Fri, 22 May 2026 at 04:31, Derek Chen-Becker <[email protected]>
>>> wrote:
>>>
>>>> Hi Pedro,
>>>>
>>>> Thanks, I did try the non-greedy capture and it didn't work. I'm
>>>> actually just realizing that it probably didn't work because it's not that
>>>> it's greedy, it's that "]{babel}"doesn't sufficiently constrain the
>>>> contents ahead of it.
>>>>
>>>> Cheers,
>>>>
>>>> Derek
>>>>
>>>>
>>>>
>>>> On Thu, May 21, 2026 at 9:30 AM Pedro Andres Aranda Gutierrez <
>>>> [email protected]> wrote:
>>>>
>>>>> Hi Derek,
>>>>>
>>>>> the ox-latex.el part can be simplified as
>>>>>
>>>>>  (not (string-match "\\\\usepackage\\[\\(.*?\\)\\]{babel}" header)))
>>>>>
>>>>> That will make the regex stop before the ']' and is easier to read (at
>>>>> least for me-TM),
>>>>>
>>>>> Best,
>>>>> /PA
>>>>> ox-latex.el maintainer
>>>>>
>>>>>
>>>>> On Thu, 21 May 2026 at 15:30, Derek Chen-Becker <[email protected]>
>>>>> wrote:
>>>>>
>>>>>> Confirmed, against d34e34f3e.
>>>>>>
>>>>>> The replacement text of "utf8]{inputenc} \\usepackage[french,
>>>>>> english" makes it appear that the regex patterns used in
>>>>>> `org-latex-guess-babel-language' aren't sufficiently constrained. 
>>>>>> Checking
>>>>>> the regex, it's using "\\[.*\\]", which is why you're only seeing this 
>>>>>> when
>>>>>> you have more than one extra header (with only one, there's only one set 
>>>>>> of
>>>>>> braces).
>>>>>>
>>>>>> I took a look and think I have a fix but I want a second opinion. The
>>>>>> attached patch fixes the regex by changing the greedy match for the
>>>>>> language to one that only captures what's between the "[...]". I tried
>>>>>> using a non-greedy qualifier (".*?") and that didn't work, but I feel 
>>>>>> like
>>>>>> I always get tripped up by Elisp regex patterns. If someone has a better
>>>>>> suggestion for the regex I'm open to changing it.
>>>>>>
>>>>>> Owned.
>>>>>>
>>>>>> Cheers,
>>>>>>
>>>>>> Derek
>>>>>>
>>>>>> On Wed, May 20, 2026 at 11:41 AM <[email protected]> wrote:
>>>>>>
>>>>>>>
>>>>>>> With the following Org file
>>>>>>>
>>>>>>> ----------------------
>>>>>>> #
>>>>>>> * subtree
>>>>>>> :PROPERTIES:
>>>>>>> :EXPORT_LATEX_HEADER: \usepackage[utf8]{inputenc}
>>>>>>> :EXPORT_LATEX_HEADER+: \usepackage[french]{babel}
>>>>>>>                        :END:
>>>>>>>
>>>>>>> bak
>>>>>>> ----------------------
>>>>>>>
>>>>>>> upon subtree export (C-c C-e C-s lp), I get an error, the beginning
>>>>>>> of the
>>>>>>> backtrace of which is
>>>>>>>
>>>>>>> Debugger entered--Lisp error: (error "Invalid use of ‘\\’ in
>>>>>>> replacement
>>>>>>>   text")
>>>>>>>
>>>>>>> org-latex-guess-babel-language("\\documentclass[11pt]{article}\n\n\n\\usepackage[utf8]{inputenc}
>>>>>>>   \\usepackage[french]{babel}\n" (:export-options (subtree) :back-end
>>>>>>>   #s(org-export-backend :name latex :parent nil :transcoders (...
>>>>>>> ... ... .
>>>>>>>
>>>>>>>
>>>>>>> This occurs with
>>>>>>>
>>>>>>> GNU Emacs 30.2 (build 1, x86_64-redhat-linux-gnu, GTK+ Version
>>>>>>> 3.24.43,
>>>>>>> cairo version 1.18.2) of 2025-08-18
>>>>>>>
>>>>>>> with either
>>>>>>>
>>>>>>> - a void .emacs and
>>>>>>>
>>>>>>> Org mode version 9.8.4 (9.8.4-2f6959 @
>>>>>>> /home/cochard/.emacs.d/elpa/org-9.8.2/)
>>>>>>>
>>>>>>> - a void .emacs and
>>>>>>>
>>>>>>> Org mode version 9.8.2 (9.8.2-2ef390 @
>>>>>>> /home/cochard/.emacs.d/elpa/org-9.8.2/)
>>>>>>>
>>>>>>> - emacs -Q and
>>>>>>>
>>>>>>> Org mode version 9.7.11 (release_9.7.11 @
>>>>>>> /usr/share/emacs/30.2/lisp/org/)
>>>>>>>
>>>>>>> For what it's worth: (1) the problem does not show up for every
>>>>>>> combination
>>>>>>> of
>>>>>>>
>>>>>>> :EXPORT_LATEX_HEADER:
>>>>>>> :EXPORT_LATEX_HEADER+:
>>>>>>>
>>>>>>> (2) I did not succeed in exhibiting the problem with a single
>>>>>>>
>>>>>>> :EXPORT_LATEX_HEADER:
>>>>>>>
>>>>>>> --
>>>>>>> EOST (École et Observatoire des Sciences de la Terre)
>>>>>>> ITE (Institut Terre & Environnement) | [email protected]
>>>>>>> 5 rue René Descartes                 | Phone: +33 (0)3 68 85 50 44
>>>>>>> F-67084 Strasbourg Cedex, France     | bureau 110, ancien bât.
>>>>>>>
>>>>>>>
>>>>>>
>>>>>> --
>>>>>> +---------------------------------------------------------------+
>>>>>> | Derek Chen-Becker                                             |
>>>>>> | GPG Key available at https://keybase.io/dchenbecker and       |
>>>>>> | https://pgp.mit.edu/pks/lookup?search=derek%40chen-becker.org |
>>>>>> | Fngrprnt: EB8A 6480 F0A3 C8EB C1E7  7F42 AFC5 AFEE 96E4 6ACC  |
>>>>>> +---------------------------------------------------------------+
>>>>>>
>>>>>>
>>>>>
>>>>> --
>>>>> Fragen sind nicht da, um beantwortet zu werden,
>>>>> Fragen sind da um gestellt zu werden
>>>>> Georg Kreisler
>>>>>
>>>>> "Sagen's Paradeiser" (ORF: Als Radiohören gefährlich war) => write BE!
>>>>> Year 2 of the New Koprocracy
>>>>>
>>>>>
>>>>
>>>> --
>>>> +---------------------------------------------------------------+
>>>> | Derek Chen-Becker                                             |
>>>> | GPG Key available at https://keybase.io/dchenbecker and       |
>>>> | https://pgp.mit.edu/pks/lookup?search=derek%40chen-becker.org |
>>>> | Fngrprnt: EB8A 6480 F0A3 C8EB C1E7  7F42 AFC5 AFEE 96E4 6ACC  |
>>>> +---------------------------------------------------------------+
>>>>
>>>>
>>>
>>> --
>>> Fragen sind nicht da, um beantwortet zu werden,
>>> Fragen sind da um gestellt zu werden
>>> Georg Kreisler
>>>
>>> "Sagen's Paradeiser" (ORF: Als Radiohören gefährlich war) => write BE!
>>> Year 2 of the New Koprocracy
>>>
>>>
>>
>> --
>> +---------------------------------------------------------------+
>> | Derek Chen-Becker                                             |
>> | GPG Key available at https://keybase.io/dchenbecker and       |
>> | https://pgp.mit.edu/pks/lookup?search=derek%40chen-becker.org |
>> | Fngrprnt: EB8A 6480 F0A3 C8EB C1E7  7F42 AFC5 AFEE 96E4 6ACC  |
>> +---------------------------------------------------------------+
>>
>>
>
> --
> Fragen sind nicht da, um beantwortet zu werden,
> Fragen sind da um gestellt zu werden
> Georg Kreisler
>
> "Sagen's Paradeiser" (ORF: Als Radiohören gefährlich war) => write BE!
> Year 2 of the New Koprocracy
>
>

-- 
Fragen sind nicht da, um beantwortet zu werden,
Fragen sind da um gestellt zu werden
Georg Kreisler

"Sagen's Paradeiser" (ORF: Als Radiohören gefährlich war) => write BE!
Year 2 of the New Koprocracy

Reply via email to