From: Heime via Users list for the GNU Emacs text editor <help-gnu-emacs@gnu.org>
To: Heime <heimeborgia@protonmail.com>
Cc: Arash Esbati <arash@gnu.org>, help-gnu-emacs@gnu.org
Subject: Re: Mode hooks for latex and tex files
Date: Mon, 02 Dec 2024 20:44:04 +0000 [thread overview]
Message-ID: <MJrE6JXW0ln_zstim4YIykGtfwJNb_L3mmTSBdp6Pzsn3PkL1Iu4AwpYD0OVojkOrPX-MabzzfLZTzrNL2vdq5U2axP6AvXReXtJHF2LfkA=@protonmail.com> (raw)
In-Reply-To: <HWx8y-TcHZuvuLwxDcU5sZxIbplPWGqG3qtHAOx3CXvrRm8gx6euYh30ET1dFduw8-whLUfqj541yq_n8kQw8FXfmtTEXjUCZ30-h6LHQ9c=@protonmail.com>
Sent with Proton Mail secure email.
On Tuesday, December 3rd, 2024 at 8:29 AM, Heime via Users list for the GNU Emacs text editor <help-gnu-emacs@gnu.org> wrote:
> On Tuesday, December 3rd, 2024 at 8:17 AM, Arash Esbati arash@gnu.org wrote:
>
> > 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.
>
>
> Correct, it breaks every rule. Instead of a prefix, the AUCTeX developers
> decided upon a camel-case variant. Their package does not fit nicely with
> emacs development preferred way.
>
> > > 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?
I missed the last hook part. Thanks.
> > Best, Arash
> >
> > Footnotes:
> > [1] https://www.gnu.org/software/emacs/manual/html_mono/elisp.html#Coding-Conventions
prev parent reply other threads:[~2024-12-02 20:44 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
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 [this message]
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='MJrE6JXW0ln_zstim4YIykGtfwJNb_L3mmTSBdp6Pzsn3PkL1Iu4AwpYD0OVojkOrPX-MabzzfLZTzrNL2vdq5U2axP6AvXReXtJHF2LfkA=@protonmail.com' \
--to=help-gnu-emacs@gnu.org \
--cc=arash@gnu.org \
--cc=heimeborgia@protonmail.com \
/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).