[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [AUCTeX] Set automatically TeX-PDF-from-DVI variable if documentclas

From: Arash Esbati
Subject: Re: [AUCTeX] Set automatically TeX-PDF-from-DVI variable if documentclass receives option dvipdfmx or dvipdfm
Date: Sun, 18 Nov 2018 22:05:37 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1

Ikumi Keita <address@hidden> writes:

>>>>>> Arash Esbati <address@hidden> writes:
>> using `TeX-update-style-hook' would have been also my suggestion -- I
>> think it is the straightforward approach.
> Hmm, then should we go the way of the revised patch #1?  It saves the
> value of `TeX-active-styles' by let-binding.

Hi Keita,

I only read your patch and didn't test, but it makes sense to me.  One
thing occured to me:  You use the following code (which was there

    (apply #'TeX-run-style-hooks
           (apply #'append
                  (mapcar #'cdr LaTeX-provided-class-options)))

Assuming that `LaTeX-provided-class-options' usually has only one entry
(unlike `LaTeX-provided-package-options'), wouldn't be sufficient to do:

    (apply #'TeX-run-style-hooks
           (cdar LaTeX-provided-class-options))

Maybe you could also mention `:classopt' in AUCTeX manual under
`TeX-add-style-hook' [1].

>>> Thus I propose another patch #2 to defer running style hooks until the
>>> package options are actually given.
>>> How do you think about these ideas?
>> I like this one.  The current implementation bugged me also as I wrote
>> enumitem.el; one has to hit `C-c C-n' after doing `C-c C-m usepackage
>> RET name RET' in order to get things right.  And I'm not sure if your
>> patch break other things.  So +1 from me :)
> Thanks.  I found that the previous patch is not sufficient in some cases
> because there are style files which requires running style hooks to
> obtain proper package options.  For example, empheq.el has the following
> code:
> (TeX-add-style-hook
>  "empheq"
>  ...
>    ;; Load amsmath.el and mathtools.el
>    (TeX-run-style-hooks "amsmath" "mathtools")
>    ;; Add elements from `LaTeX-mathtools-package-options' only once
>    ;; and not every time the style hook runs
>    (dolist (elt LaTeX-mathtools-package-options)
>      (add-to-list 'LaTeX-empheq-package-options elt))
>  ...

I did't like this implementation as I wrote it.  I took it mainly since
`mathtools' does the same thing -- and that is the only style doing this
AFAIR (off the top of my head, though).

I think it is cleaner to set this variable outside the style hook and
write something like this:

    (defvar LaTeX-empheq-package-options
        (TeX-load-style "mathtools")
        (append LaTeX-mathtools-package-options
                '("overload" "overload2"
                  "ntheorem" "newmultline"
      "Package options for the empheq package.")


> Though I haven't verified yet, I suppose there are many other style
> files like this.

See above.

> So I reconsidered the implementation to create the revised patch #2.
> It runs the style hooks twice, once to collect the package options for
> completion, another to reflect the options entered by the user.  This
> is the same as what `TeX-arg-document' does, after all.  In order to
> ensure the second run even with `LaTeX-arg-usepackage', I again binds
> `TeX-active-styles' by `let' in
> `LaTeX-arg-usepackage-read-packages-with-options'.  Maybe `(let
> ((TeX-active-styles TeX-active-styles))' is better than `(let
> ((TeX-active-styles nil))' here.

Hmm, not sure, but `(let ((TeX-active-styles TeX-active-styles))' looks
more sensible to me either.

Best, Arash


reply via email to

[Prev in Thread] Current Thread [Next in Thread]