unofficial mirror of help-gnu-emacs@gnu.org
 help / color / mirror / Atom feed
From: Arash Esbati <arash@gnu.org>
To: Heime <heimeborgia@protonmail.com>
Cc: help-gnu-emacs@gnu.org
Subject: Re: Mode hooks for latex and tex files
Date: Mon, 02 Dec 2024 21:17:49 +0100	[thread overview]
Message-ID: <m2y10xyh3m.fsf@macmutant.fritz.box> (raw)
In-Reply-To: <LHN3rAcQb9QEvCH3P_34_THcWreZbl414IlqAQqCDE93C8J1n5QVWqj6aXDa4JpprC5RcXM-wktcGcpQGhy5Aqi7ZoTRJhqrWIPQ6tN6DE0=@protonmail.com> (Heime's message of "Mon, 02 Dec 2024 15:58:13 +0000")

Heime <heimeborgia@protonmail.com> writes:

> On Tuesday, December 3rd, 2024 at 1:17 AM, Arash Esbati <arash@gnu.org> wrote:
>
>> The only point you have to consider is that there are 2 major modes for
>> editing plain-tex and latex files:
>>
>> • The modes bundled with Emacs (in tex-mode.el, do
>> 'M-x locate-library RET tex-mode RET') and
>>
>> • the modes provided by AUCTeX (a package you must install from ELPA
>> first).
>>
>> If you're using the former, use `plain-tex-mode-hook' or`
>> latex-mode-hook', and with the latter, set `plain-TeX-mode-hook' or`
>> LaTeX-mode-hook'.
>>
>> `tex-mode-hook' and` TeX-mode-hook' are sort of meta-modes and not
>> intended for end users, so don't set them.
>
> AUCTeX introduces unnecessary complexity by deviating from standard
> naming conventions for tool-related modes.

Which naming conventions are you referring to and where are they
described?  The ones I'm aware of are written here[1] which read:

  You should choose a short word to distinguish your program from other
  Lisp programs. The names of all global symbols in your program, that
  is the names of variables, constants, and functions, should begin with
  that chosen prefix. Separate the prefix from the rest of the name with
  a hyphen, ‘-’. This practice helps avoid name conflicts, since all
  global variables in Emacs Lisp share the same name space, and all
  functions share another name space.

AUCTeX uses camel-case prefix based on the file names, a sort of
MyLib-varname.  As another example, you can grep through the gnus
sub-directory to see that not every hook defined there is prefixed with
'gnus-'.

> Instead of adhering to the typical package-prefixed predicate style
> (e.g., auctex-tex-mode and auctex-latex-mode), it opts for
> inconsistent and unintuitive names.

This is one opinion; but AUCTeX developers had another one for the
prefix they used.

> The use of plain-tex-mode instead of a unified tex-mode (as seen with
> latex-mode) adds further redundancy. Meta-modes not intended for
> direct user interaction should avoid using intuitive and general names
> like tex-mode, reserving such names for user-facing
> functionality. This inconsistency is unique to AUCTeX;

The mode names above (and the corresponding hooks) are all defined in
tex-mode.el which is distributed with Emacs; they don't belong to
AUCTeX:

$ grep define-derived-mode tex-mode.el
(define-derived-mode tex-mode text-mode "generic-TeX"
(define-derived-mode plain-tex-mode tex-mode "TeX"
(define-derived-mode latex-mode tex-mode "LaTeX"
(define-derived-mode slitex-mode latex-mode "SliTeX"
(define-derived-mode tex-shell shell-mode "TeX-Shell"
(define-derived-mode doctex-mode latex-mode "DocTeX"

As you can see, tex-mode.el breaks every "rule" you think you're
describing with "typical package-prefixed predicate style".  A "mylib-"
prefix might be a natural choice for single file libraries, but it isn't
a must as long you get the prefix right.

> I am also interested in the made hooks.  Would the built-in be
> plain-tex-mode-hook and latex-mode-hook?  Is there also tex-mode-hook?

Did you read my first message?

Best, Arash

Footnotes:
[1]  https://www.gnu.org/software/emacs/manual/html_mono/elisp.html#Coding-Conventions



  parent reply	other threads:[~2024-12-02 20:17 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-11-30 19:55 Mode hooks for latex and tex files Heime via Users list for the GNU Emacs text editor
2024-12-01 14:43 ` Jean Louis
2024-12-01 14:58   ` Heime via Users list for the GNU Emacs text editor
2024-12-01 21:20     ` Heime via Users list for the GNU Emacs text editor
2024-12-02 10:17       ` Jean Louis
2024-12-02 11:13 ` Joel Reicher
2024-12-02 13:17 ` Arash Esbati
2024-12-02 15:58   ` Heime via Users list for the GNU Emacs text editor
2024-12-02 16:15     ` Heime via Users list for the GNU Emacs text editor
2024-12-02 20:17     ` Arash Esbati [this message]
2024-12-02 20:29       ` Heime via Users list for the GNU Emacs text editor
2024-12-02 20:38         ` Arash Esbati
2024-12-02 20:44         ` Heime via Users list for the GNU Emacs text editor

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=m2y10xyh3m.fsf@macmutant.fritz.box \
    --to=arash@gnu.org \
    --cc=heimeborgia@protonmail.com \
    --cc=help-gnu-emacs@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).