Re: Patch to allow adjusting latex fragment display scale factor

2024-01-22 Thread Ihor Radchenko
Matt Huszagh  writes:

> Yep, we can close/cancel this patch. I had been using that feature to
> permit rescaling latex fragments for font size changes, but that's
> already handled by the current implementation.

Canceled.

-- 
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at .
Support Org development at ,
or support my work at 



Re: Patch to allow adjusting latex fragment display scale factor

2024-01-21 Thread Matt Huszagh
Timothy  writes:

> Hi Matt and Ihor,
> I must admit that with the new system, I don’t see much value in accepting a
> function: we now scale the previews based on a combination of the :scale
> parameter and their actual LaTeX display size.

Yep, we can close/cancel this patch. I had been using that feature to
permit rescaling latex fragments for font size changes, but that's
already handled by the current implementation.

Matt



Re: Patch to allow adjusting latex fragment display scale factor

2024-01-21 Thread Timothy
Hi Matt and Ihor,

>> Any thoughts? I have not yet updated it for the most recent changes to
>> main, but I can do that.
>
> As you found in another thread, we have a WIP overhaul of the whole
> LaTeX preview system. I hope that it can be merged in the coming few
> months.
>
> AFAIU, the new system will allow setting the scale factor - see
> 
> Although, it does not look like a function is accepted as an allowed
> value.
>
> CCing Timothy and Karthik - they may have comments on the possibility to
> allow function as :scale value.

I must admit that with the new system, I don’t see much value in accepting a
function: we now scale the previews based on a combination of the :scale
parameter and their actual LaTeX display size.

All the best,
Timothy

-- 
Timothy (‘tecosaur’/‘TEC’), Org mode contributor.
Learn more about Org mode at .
Support Org development at ,
or support my work at .


Re: Patch to allow adjusting latex fragment display scale factor

2024-01-19 Thread Ihor Radchenko
Matt Huszagh  writes:

> Bringing this back up. Ihor, I've added you to the thread directly
> (hope that's ok).
>
> Any thoughts? I have not yet updated it for the most recent changes to
> main, but I can do that.

As you found in another thread, we have a WIP overhaul of the whole
LaTeX preview system. I hope that it can be merged in the coming few
months.

AFAIU, the new system will allow setting the scale factor - see
https://git.tecosaur.net/tec/org-mode/src/branch/dev/lisp/org-latex-preview.el#L57
Although, it does not look like a function is accepted as an allowed
value.

CCing Timothy and Karthik - they may have comments on the possibility to
allow function as :scale value.

-- 
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at .
Support Org development at ,
or support my work at 



Re: Patch to allow adjusting latex fragment display scale factor

2024-01-18 Thread Matt Huszagh
Hi,

Bringing this back up. Ihor, I've added you to the thread directly
(hope that's ok).

Any thoughts? I have not yet updated it for the most recent changes to
main, but I can do that.

Matt

On Sun, Oct 10, 2021 at 9:40 PM Matt Huszagh  wrote:
>
> Matt Huszagh  writes:
>
> > I've created a patch to allow adjusting the scale factor used for inline
> > latex image fragments. This involves a customizable variable that can
> > either be set to a scale factor (defaults to 1.0) or a function that
> > evaluates to a scale factor.
> >
> > This feature is in addition to the existing scale factor adjustment
> > capability provided by `org-preview-latex-process-alist' through
> > `:image-size-adjust'. Wherease image-size-adjust performs scaling at the
> > time of image generation, the new change performs it during
> > display. This can lead to significant time saving and suffers no loss of
> > quality for vector graphics.
> >
> > As an example of use, I have several functions for changing frame
> > scaling. I've added
> >
> > (if (eq major-mode 'org-mode)
> >   (progn
> > (org-clear-latex-preview)
> > ;; 16 corresponds to the C-u C-u arg prefix.
> > (org-latex-preview 16)))
> >
> > to these functions so that changing the frame scaling also
> > correspondingly changes the latex preview/fragment scaling to match the
> > new size of the surrounding text. Because of this new feature, this
> > change is effectively instantaneous for reasonably numbers of
> > overlays. Obviously, something similar could be done for
> > `text-scale-adjust' (e.g., through `advice-add').
> >
> > Feedback appreciated.
>
> Apologies, the patch I sent is slightly wrong. The line numbers also
> reflect an earlier patch I made. Here is a corrected version.
>



Re: Patch to allow adjusting latex fragment display scale factor

2021-10-10 Thread Matt Huszagh
Matt Huszagh  writes:

> I've created a patch to allow adjusting the scale factor used for inline
> latex image fragments. This involves a customizable variable that can
> either be set to a scale factor (defaults to 1.0) or a function that
> evaluates to a scale factor.
>
> This feature is in addition to the existing scale factor adjustment
> capability provided by `org-preview-latex-process-alist' through
> `:image-size-adjust'. Wherease image-size-adjust performs scaling at the
> time of image generation, the new change performs it during
> display. This can lead to significant time saving and suffers no loss of
> quality for vector graphics.
>
> As an example of use, I have several functions for changing frame
> scaling. I've added
>
> (if (eq major-mode 'org-mode)
>   (progn
> (org-clear-latex-preview)
> ;; 16 corresponds to the C-u C-u arg prefix.
> (org-latex-preview 16)))
>
> to these functions so that changing the frame scaling also
> correspondingly changes the latex preview/fragment scaling to match the
> new size of the surrounding text. Because of this new feature, this
> change is effectively instantaneous for reasonably numbers of
> overlays. Obviously, something similar could be done for
> `text-scale-adjust' (e.g., through `advice-add').
>
> Feedback appreciated.

Apologies, the patch I sent is slightly wrong. The line numbers also
reflect an earlier patch I made. Here is a corrected version.

>From 3c0e74a8659edb52c1200a02f8a20216b348c4ac Mon Sep 17 00:00:00 2001
From: Matt Huszagh 
Date: Sun, 10 Oct 2021 21:20:31 -0700
Subject: [PATCH] org.el: Allow customizing overlay-put scale factor

* lisp/org.el (org-latex-fragment-scale): Add customizable variable
that is equal to or evaluates to a scale factor used to scale inline
latex fragments.
(org--make-preview-overlay): Adjust latex fragment overlay generation
to account for the new custom scale factor.
---
 lisp/org.el | 17 -
 1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/lisp/org.el b/lisp/org.el
index 405f0f0f9..052212efb 100644
--- a/lisp/org.el
+++ b/lisp/org.el
@@ -320,6 +320,15 @@ identifier."
   :version "24.1"
   :group 'org-id)
 
+(defcustom org-latex-fragment-scale 1.0
+  "Scaling factor used for LaTeX image fragments.
+This can either be a number or a function that takes the image
+data and image type as parameters and evaluates to a number.  The
+function can be useful for context-aware scaling, such as setting
+the scale factor to be consistent with the surrounding text size."
+  :type '(number function)
+  :group 'org)
+
 ;;; Version
 (org-check-version)
 
@@ -15936,7 +15945,13 @@ as a string.  It defaults to \"png\"."
 			 (delete-overlay o
 (overlay-put ov
 		 'display
-		 (list 'image :type imagetype :file image :ascent 'center
+		 (list 'image
+   :type imagetype
+   :file image
+   :ascent 'center
+   :scale (if (functionp org-latex-fragment-scale)
+  (funcall org-latex-fragment-scale image imagetype)
+org-latex-fragment-scale)
 
 (defun org-clear-latex-preview (&optional beg end)
   "Remove all overlays with LaTeX fragment images in current buffer.
-- 
2.31.1



Patch to allow adjusting latex fragment display scale factor

2021-10-10 Thread Matt Huszagh
Hi,

I've created a patch to allow adjusting the scale factor used for inline
latex image fragments. This involves a customizable variable that can
either be set to a scale factor (defaults to 1.0) or a function that
evaluates to a scale factor.

This feature is in addition to the existing scale factor adjustment
capability provided by `org-preview-latex-process-alist' through
`:image-size-adjust'. Wherease image-size-adjust performs scaling at the
time of image generation, the new change performs it during
display. This can lead to significant time saving and suffers no loss of
quality for vector graphics.

As an example of use, I have several functions for changing frame
scaling. I've added

(if (eq major-mode 'org-mode)
  (progn
(org-clear-latex-preview)
;; 16 corresponds to the C-u C-u arg prefix.
(org-latex-preview 16)))

to these functions so that changing the frame scaling also
correspondingly changes the latex preview/fragment scaling to match the
new size of the surrounding text. Because of this new feature, this
change is effectively instantaneous for reasonably numbers of
overlays. Obviously, something similar could be done for
`text-scale-adjust' (e.g., through `advice-add').

Feedback appreciated.

Matt

>From 8247947aa6141cde9c58205e0266f0e674226f95 Mon Sep 17 00:00:00 2001
From: Matt Huszagh 
Date: Sun, 10 Oct 2021 21:20:31 -0700
Subject: [PATCH] org.el: Allow customizing overlay-put scale factor

* lisp/org.el (org-latex-fragment-scale): Add customizable variable
that is equal to or evaluates to a scale factor used to scale inline
latex fragments.
(org--make-preview-overlay): Adjust latex fragment overlay generation
to account for the new custom scale factor.
---
 lisp/org.el | 17 -
 1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/lisp/org.el b/lisp/org.el
index dbc288a3c..f5e9ff8d1 100644
--- a/lisp/org.el
+++ b/lisp/org.el
@@ -388,6 +388,15 @@ text."
   :type '(symbol function integer)
   :group 'org)
 
+(defcustom org-latex-fragment-scale 1.0
+  "Scaling factor used for LaTeX image fragments.
+This can either be a number or a function that takes the image
+data and image type as parameters and evaluates to a number.  The
+function can be useful for context-aware scaling, such as setting
+the scale factor to be consistent with the surrounding text size."
+  :type '(number function)
+  :group 'org)
+
 ;;; Version
 (org-check-version)
 
@@ -16007,7 +16016,13 @@ as a string.  It defaults to \"png\"."
 			   (delete-overlay o
   (overlay-put ov
 		   'display
-		   (list 'image :type imagetype :file image :ascent ascent)
+		   (list 'image
+ :type imagetype
+ :file image
+ :ascent ascent
+ :scale (if (functionp org-latex-fragment-scale)
+(funcall org-latex-fragment-scale image imagetype)
+  org-latex-fragment-scale))
 
 (defun org-clear-latex-preview (&optional beg end)
   "Remove all overlays with LaTeX fragment images in current buffer.
-- 
2.31.1