unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Re: tex mode sub- and super-scripts
       [not found]   ` <u1wfsn7as.fsf@gnu.org>
@ 2007-07-01  8:43     ` Reiner Steib
  2007-07-01 12:44       ` Stefan Monnier
  0 siblings, 1 reply; 6+ messages in thread
From: Reiner Steib @ 2007-07-01  8:43 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: help-gnu-emacs, Mark Alford, Stefan Monnier, emacs-devel

[ I'd suggest to move this discussion to <emacs-devel@gnu.org>.

  Summary: In Emacs TeX-mode (textmodes/tex-mode.el), there's no
  option to suppress the raise/lowering of superscripts and
  subscripts.  In AUCTeX, we used tex-mode.el's code, but added
  options to turn off this feature.

  %%%%%%%%%%
  $a_0 = a_{f}^{2} + b_{\alpha}$
  \bye
  %%%%%%%%%%
]

On Sun, Jul 01 2007, Eli Zaretskii wrote:

>> Date: Sat, 30 Jun 2007 21:02:56 -0500 (CDT)
>> From: Mark Alford <alford@wuphys.wustl.edu>
>> 
>> Eli Zaretskii <eliz@gnu.org> wrote:
>> > You should be able to customize the two faces `subscript' and
>> > `superscript' defined by tex-mode.
>> 
>> I can control their size but not their raising/lowering.
[...]
> It seems to be explicit code, see tex-font-lock-suscript.  [...]
>
> I suggest to submit a bug report asking for this feature to be
> customizable.

I'd be willing to port AUCTeX's customization options ([1], code
written by me) to tex-mode.el.  Any objections?  Stefan?

(If it's okay to install this patch, should it go to the Emacs 22
branch?)

--8<---------------cut here---------------start------------->8---
--- tex-mode.el	20 May 2007 15:18:56 +0200	1.186
+++ tex-mode.el	01 Jul 2007 10:38:31 +0200	
@@ -243,6 +243,21 @@
   :options '("''" "\">" "\"'" ">>" "»")
   :group 'tex)
 
+(defcustom tex-fontify-script t
+  "If non-nil, fontify subscript and superscript strings."
+  :type 'boolean
+  :group 'tex)
+(put 'tex-fontify-script 'safe-local-variable 'booleanp)
+
+(defcustom tex-font-script-display '((raise -0.3) . (raise 0.3))
+  "Display specification for subscript and superscript content.
+The car is used for subscript, the cdr is used for superscripts."
+  :group 'tex
+  :type '(cons (choice (sexp :tag "Subscript form")
+		       (const :tag "No lowering" nil))
+	       (choice (sexp :tag "Superscript form")
+		       (const :tag "No raising" nil))))
+
 (defvar tex-last-temp-file nil
   "Latest temporary file generated by \\[tex-region] and \\[tex-buffer].
 Deleted when the \\[tex-region] or \\[tex-buffer] is next run, or when the
@@ -593,13 +608,14 @@
 		  (setq pos (1- pos) odd (not odd)))
 		odd))
     (if (eq (char-after pos) ?_)
-	'(face subscript display (raise -0.3))
-      '(face superscript display (raise +0.3)))))
+	'(face subscript display (car tex-font-script-display))
+      '(face superscript display (cdr tex-font-script-display)))))
 
 (defun tex-font-lock-match-suscript (limit)
   "Match subscript and superscript patterns up to LIMIT."
-  (when (re-search-forward "[_^] *\\([^\n\\{}]\\|\
-\\\\\\([a-zA-Z@]+\\|[^ \t\n]\\)\\|\\({\\)\\)" limit t)
+  (when (and tex-fontify-script
+	     (re-search-forward "[_^] *\\([^\n\\{}]\\|\
+\\\\\\([a-zA-Z@]+\\|[^ \t\n]\\)\\|\\({\\)\\)" limit t))
     (when (match-end 3)
       (let ((beg (match-beginning 3))
 	    (end (save-restriction
--8<---------------cut here---------------end--------------->8---

Bye, Reiner.

[1] Cf.
    http://mid.gmane.org/v93b09938i.fsf%40marauder.physik.uni-ulm.de
    http://mid.gmane.org/v9hcop79f3.fsf%40marauder.physik.uni-ulm.de

,----[ <f1> v font-latex-fontify-script RET ]
| font-latex-fontify-script is a variable defined in `font-latex'.
| Its value is t
| 
| This variable is safe as a file local variable if its value
| satisfies the predicate `TeX-booleanp'.
| 
| Documentation:
| If non-nil, fontify subscript and superscript strings.
| This feature does not work in XEmacs.
| 
| You can customize this variable.
`----

,----[ M-x customize-variable RET font-latex-script-display RET ]
| Font Latex Script Display: [Hide Value]
| Choice: [Value Menu] Subscript form: (raise -0.3)
| Choice: [Value Menu] Superscript form: (raise 0.3)
|    [State]: STANDARD.
| 
| Display specification for subscript and superscript content. [Hide Rest]
| The car is used for subscript, the cdr is used for superscripts.
| Parent groups: [Font Latex]
`----

,----[ M-x customize-variable RET font-latex-script-display RET ]
| font-latex-script-display: [Hide Value]
| Choice: [Value Menu] No lowering
| Choice: [Value Menu] No raising
|    [State]: SET for current session only.
`----
-- 
       ,,,
      (o o)
---ooO-(_)-Ooo---  |  PGP key available  |  http://rsteib.home.pages.de/

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: tex mode sub- and super-scripts
  2007-07-01  8:43     ` tex mode sub- and super-scripts Reiner Steib
@ 2007-07-01 12:44       ` Stefan Monnier
  2007-07-02 20:33         ` Reiner Steib
  0 siblings, 1 reply; 6+ messages in thread
From: Stefan Monnier @ 2007-07-01 12:44 UTC (permalink / raw)
  To: Mark Alford; +Cc: emacs-devel

> I'd be willing to port AUCTeX's customization options ([1], code
> written by me) to tex-mode.el.  Any objections?  Stefan?

Fine by me.

> +(defcustom tex-font-script-display '((raise -0.3) . (raise 0.3))
> +  "Display specification for subscript and superscript content.
> +The car is used for subscript, the cdr is used for superscripts."
> +  :group 'tex
> +  :type '(cons (choice (sexp :tag "Subscript form")
> +		       (const :tag "No lowering" nil))
> +	       (choice (sexp :tag "Superscript form")
> +		       (const :tag "No raising" nil))))

I'm curious: for what has this been used?


        Stefan

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: tex mode sub- and super-scripts
  2007-07-01 12:44       ` Stefan Monnier
@ 2007-07-02 20:33         ` Reiner Steib
  2007-07-05  3:32           ` Stefan Monnier
  0 siblings, 1 reply; 6+ messages in thread
From: Reiner Steib @ 2007-07-02 20:33 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: Mark Alford, emacs-devel

On Sun, Jul 01 2007, Stefan Monnier wrote:

>> +(defcustom tex-font-script-display '((raise -0.3) . (raise 0.3))
>> +  "Display specification for subscript and superscript content.
>> +The car is used for subscript, the cdr is used for superscripts."
>> +  :group 'tex
>> +  :type '(cons (choice (sexp :tag "Subscript form")
>> +		       (const :tag "No lowering" nil))
>> +	       (choice (sexp :tag "Superscript form")
>> +		       (const :tag "No raising" nil))))
>
> I'm curious: for what has this been used?

A replacement for the hard-codes values, but that's obvious, isn't it?
Probably I didn't understand your question.  Could you be more
specific, please?

Bye, Reiner.
-- 
       ,,,
      (o o)
---ooO-(_)-Ooo---  |  PGP key available  |  http://rsteib.home.pages.de/

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: tex mode sub- and super-scripts
  2007-07-02 20:33         ` Reiner Steib
@ 2007-07-05  3:32           ` Stefan Monnier
  2007-07-09 19:17             ` Reiner Steib
  0 siblings, 1 reply; 6+ messages in thread
From: Stefan Monnier @ 2007-07-05  3:32 UTC (permalink / raw)
  To: Mark Alford; +Cc: emacs-devel

>>> +(defcustom tex-font-script-display '((raise -0.3) . (raise 0.3))
>>> +  "Display specification for subscript and superscript content.
>>> +The car is used for subscript, the cdr is used for superscripts."
>>> +  :group 'tex
>>> +  :type '(cons (choice (sexp :tag "Subscript form")
>>> +		       (const :tag "No lowering" nil))
>>> +	       (choice (sexp :tag "Superscript form")
>>> +		       (const :tag "No raising" nil))))
>> 
>> I'm curious: for what has this been used?

> A replacement for the hard-codes values, but that's obvious, isn't it?
> Probably I didn't understand your question.  Could you be more
> specific, please?

Well, supposedly you/someone replaced those values by different ones, right?
So how did they differ?  Did only the 0.3 ever change or sometimes the whole
thing?  Did it always change symmetrically? ...

I mean the above variable can be used to make super/subscript display in
very wild ways, so I'm wondering if is a feature or a misfeature.


        Stefan

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: tex mode sub- and super-scripts
  2007-07-05  3:32           ` Stefan Monnier
@ 2007-07-09 19:17             ` Reiner Steib
  2007-07-09 20:01               ` Stefan Monnier
  0 siblings, 1 reply; 6+ messages in thread
From: Reiner Steib @ 2007-07-09 19:17 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: Mark Alford, emacs-devel

On Thu, Jul 05 2007, Stefan Monnier wrote:

>>>> +(defcustom tex-font-script-display '((raise -0.3) . (raise 0.3))
[...]
> Well, supposedly you/someone replaced those values by different ones, right?
> So how did they differ?  Did only the 0.3 ever change or sometimes the whole
> thing?  Did it always change symmetrically? ...

Personally, I changed them to -0.1/0.1.  I don't know what others do.
But I think asymmetrical values are plausible.

> I mean the above variable can be used to make super/subscript display in
> very wild ways, so I'm wondering if is a feature or a misfeature.

I've installed a simplified version.  Feel free to modify it.

Bye, Reiner.
-- 
       ,,,
      (o o)
---ooO-(_)-Ooo---  |  PGP key available  |  http://rsteib.home.pages.de/

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: tex mode sub- and super-scripts
  2007-07-09 19:17             ` Reiner Steib
@ 2007-07-09 20:01               ` Stefan Monnier
  0 siblings, 0 replies; 6+ messages in thread
From: Stefan Monnier @ 2007-07-09 20:01 UTC (permalink / raw)
  To: Mark Alford; +Cc: emacs-devel

>>>>> +(defcustom tex-font-script-display '((raise -0.3) . (raise 0.3))
> [...]
>> Well, supposedly you/someone replaced those values by different ones, right?
>> So how did they differ?  Did only the 0.3 ever change or sometimes the whole
>> thing?  Did it always change symmetrically? ...

> Personally, I changed them to -0.1/0.1.  I don't know what others do.
> But I think asymmetrical values are plausible.

The value 0.3 was chosen pretty arbitrarily.  Maybe 0.2 would be
a better default.  In my case 0.1 seems too small (it move it by just
1 pixel, which looks more like a display bug than a feature).

>> I mean the above variable can be used to make super/subscript display in
>> very wild ways, so I'm wondering if is a feature or a misfeature.

> I've installed a simplified version.

Thanks,


        Stefan

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2007-07-09 20:01 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <20070630225915.BA9C05F435F@physsmtp.wustl.edu>
     [not found] ` <Pine.LNX.4.64.0706302102150.4598@localhost.localdomain>
     [not found]   ` <u1wfsn7as.fsf@gnu.org>
2007-07-01  8:43     ` tex mode sub- and super-scripts Reiner Steib
2007-07-01 12:44       ` Stefan Monnier
2007-07-02 20:33         ` Reiner Steib
2007-07-05  3:32           ` Stefan Monnier
2007-07-09 19:17             ` Reiner Steib
2007-07-09 20:01               ` Stefan Monnier

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

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).