emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: "Rudolf Adamkovič" <salutis@me.com>
To: Timothy <orgmode@tec.tecosaur.net>
Cc: emacs-orgmode@gnu.org
Subject: Re: [Pre-PATCH] Overhaul of the LaTeX preview system
Date: Sat, 03 Jun 2023 11:00:13 +0200	[thread overview]
Message-ID: <m2r0qsrkde.fsf@me.com> (raw)
In-Reply-To: <87edn0tkxn.fsf@tec.tecosaur.net>

Timothy <orgmode@tec.tecosaur.net> writes:

> Thanks for testing the branch :)

Thank you for your reply.

> We’re thinking of adding `--exact-bbox' to the default `dvisvgm'
> flags, which it seems has a good chance of resolving this. It was
> originally swapped for `--bbox=preview' (when using `dvisvgm' to get
> dimension info), but now we do this via the LaTeX compilation stdout,
> and so we can go back to `--exact-bbox'.

This would be great.  Please!

> I tried this example on my computer, and it worked flawlessly (see
> <https://0x0.st/Hq7Z.png>). If you could give me a stacktrace, that
> might help.

OMG! OMG! OMG!  So, this new system not only fixes the baseline problem,
making LaTeX actually usable in HTML exports, but it also makes TikZ
work?!  No more fiddling with LaTeX Org Babel?  No more per-image
scaling headaches?  Now, that is INCREDIBLE!

Below, I re-create a MWE end-to-end.

******** CONFIGURATION ********

- OS:

macOS 13.3.1 (22E261)
ARM/M1 architecture
native compilation

- Org mode:

https://git.tecosaur.net/tec/org-mode.git
branch: origin/dev
commit: a92c62287

- Emacs:

official repository
branch: origin/master
commit: dc3b3548b7c
compilation flags:

make extraclean && ./autogen.sh && ./configure --with-json --with-xwidgets --with-native-compilation=aot && make -j 8 bootstrap && make install

- No '.emacs.d'.

- In '.emacs', the following:

;; Make Emacs native compilation work on Apple/macOS jails.
(when (eq window-system 'ns)
  (setenv "LIBRARY_PATH"
	    (string-join
	     '("/opt/homebrew/opt/gcc/lib/gcc/13"
	       "/opt/homebrew/opt/libgccjit/lib/gcc/13"
	       "/opt/homebrew/opt/gcc/lib/gcc/13/gcc/aarch64-apple-darwin22/13")
	     ":")))

;; Make Emacs find binaries on Apple/macOS jails.
(when (eq window-system 'ns)
  (defun shell-get-environment-variable+ (variable)
    "Return the value of VARIABLE from login shell."
    (shell-command-to-string
     (format "$SHELL --login -c 'echo -n $%s'" variable)))

  ;; Set the path to executables.
  (let* ((path "PATH")
         (path-value (shell-get-environment-variable+ path)))
    (setenv path path-value)
    (setq exec-path (split-string path-value path-separator)))

  ;; Set the locale.
  (let* ((variable "LC_ALL")
         (variable-value (shell-get-environment-variable+ variable)))
    (setenv variable variable-value)))

;; Load the new Org.
(add-to-list 'load-path "~/src/org-mode-tecosaur/lisp")

;; Make Org work without the arrow keys.
(setq-default org-use-extra-keys t)

******** TEST DOCUMENT ********

Saved in '~/test.org':

#+TITLE: Hello there
#+OPTIONS: tex:dvisvgm
#+LATEX_HEADER: \usepackage{tikz}

\begin{equation*}
1 + 1 = 2
\end{equation*}

\begin{tikzpicture}
  \filldraw (0, 0) circle[radius = 1cm];
\end{tikzpicture}

******** REPRODUCTION STEPS ********

1. Open the test document.
2. Type C-c C-x C-l inside of the 'equation' environment.
3. See the preview, to verify basic LaTeX previews work.
4. Type C-c C-x C-l inside of the 'tikzpicture' environment.

EXPECTED:

See the expected TikZ preview, a circle.

ACTUAL:

- No TikZ preview.
- "Wrong type argument: stringp, nil" in the echo area.

******** TRACE ********

The steps:

1. Type M-x toggle-debug-on-error RET.
2. Repeat the reproduction steps.
3. Expand all '...' in the trace.
4. Save the trace.

Debugger entered--Lisp error: (wrong-type-argument stringp nil)
  file-exists-p(nil)
  org-latex-preview--svg-make-fg-currentColor((:string "\\color[rgb]{0,0,0.00392157}\\setcounter{equation}{0}%\n\\begin{tikzpicture}\n  \\filldraw (0, 0) circle[radius = 1cm];\n\\end{tikzpicture}\n" :overlay #<overlay from 125 to 203 in test.org> :key "6f292c841630b664deb0178c18bdfc5ceb532272" :depth 0.04918392937239927 :height 5.714304984431469 :width 36.21927976341847 :errors nil :path nil :error "Image file not produced."))
  org-latex-preview--dvisvgm-filter(#<process org-async-dvisvgm-4> "processing page 1\n  WARNING: 50 PostScript specials ignored. The resulting SVG might look wrong.\n  page is empty\n  graphic size: 0pt x 0pt (0mm x 0mm)\n  output written to /var/folders/ky/8r5j3qz55hb94lpg1jr9vl1c0000gn/T/org-tex-4tn7FE-000000001.svg\n1 of 1 page converted in 0.153852 seconds\n" (:latex-processor "pdflatex" :latex-header "% Intended LaTeX compiler: pdflatex\n\\documentclass{article}\n\\usepackage[utf8]{inputenc}\n\\usepackage[T1]{fontenc}\n% Package hyperref omitted\n\\usepackage{xcolor}\n\n\\usepackage{tikz}\n\n\n% Generated preamble omitted for snippets.\n\n\n\\makeatletter\n\\renewcommand{\\theequation}{\\(\\diamond\\)\\ifnum\\value{equation}>1%\n\\,+\\,\\@arabic{\\numexpr\\value{equation}-1\\relax}\\fi}\n\\makeatother" :programs ("latex" "dvisvgm") :description "dvi > svg" :message "you need to install the programs: latex and dvisvgm." :image-input-type "dvi" :image-output-type "svg" :latex-compiler ("%l -interaction nonstopmode -output-directory %o %f") :latex-precompiler ("%l -output-directory %o -ini -jobname=%b \"&%L\" mylatexformat.ltx %f") :image-converter ("dvisvgm --page=1- --optimize --clipjoin --relative --no-fonts --bbox=preview -o %B-%%9p.svg %f") :processor dvisvgm :fragments ((:string "\\color[rgb]{0,0,0.00392157}\\setcounter{equation}{0}%\n\\begin{tikzpicture}\n  \\filldraw (0, 0) circle[radius = 1cm];\n\\end{tikzpicture}\n" :overlay #<overlay from 125 to 203 in test.org> :key "6f292c841630b664deb0178c18bdfc5ceb532272" :depth 0.04918392937239927 :height 5.714304984431469 :width 36.21927976341847 :errors nil :path nil :error "Image file not produced.")) :org-buffer #<buffer test.org> :texfile "/Users/salutis/org-tex-4tn7FE.tex" :place-preview-p t :fontsize 10 :tightpage (-32891 -32891 32891 32891)))
  org-async--filter(#<process org-async-dvisvgm-4> "processing page 1\n  WARNING: 50 PostScript specials ignored. The resulting SVG might look wrong.\n  page is empty\n  graphic size: 0pt x 0pt (0mm x 0mm)\n  output written to /var/folders/ky/8r5j3qz55hb94lpg1jr9vl1c0000gn/T/org-tex-4tn7FE-000000001.svg\n1 of 1 page converted in 0.153852 seconds\n")

Rudy
-- 
"Mathematics takes us still further from what is human into the region
of absolute necessity, to which not only the actual world, but every
possible world, must conform."
-- Bertrand Russell, 1902

Rudolf Adamkovič <salutis@me.com> [he/him]
Studenohorská 25
84103 Bratislava
Slovakia


  reply	other threads:[~2023-06-03  9:01 UTC|newest]

Thread overview: 71+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-03-12 12:23 [Pre-PATCH] Overhaul of the LaTeX preview system Timothy
2023-03-13 12:26 ` Ihor Radchenko
2023-03-14 16:04   ` Timothy
2023-03-15  9:34     ` Ihor Radchenko
2023-03-15 17:28       ` Rudolf Adamkovič
2023-03-13 12:30 ` Ihor Radchenko
2023-03-13 12:32   ` Ihor Radchenko
2023-03-14 14:46     ` Timothy
2023-03-13 12:36 ` Ihor Radchenko
2023-03-14 16:10   ` Timothy
2023-03-15  9:38     ` Ihor Radchenko
2023-03-13 12:37 ` Ihor Radchenko
2023-03-14 16:13   ` Timothy
2023-03-25 15:29 ` Tony Zorman
2023-05-02 12:15 ` K. Chousos
2023-05-03 10:07 ` K. Chousos
2023-05-05 17:57   ` Karthik Chikmagalur
2023-05-05 18:48     ` Konstantinos Chousos
2023-05-05 18:53     ` Konstantinos Chousos
2023-05-05 20:05       ` Karthik Chikmagalur
2023-05-05 21:06         ` Konstantinos Chousos
2023-05-05 22:58           ` Karthik Chikmagalur
2023-05-06  9:19             ` Konstantinos Chousos
2023-05-06  9:30               ` Ihor Radchenko
2023-05-06 10:08               ` Konstantinos Chousos
2023-05-08 20:04               ` Karthik Chikmagalur
2023-05-08 20:40                 ` Konstantinos Chousos
2023-05-09 11:34                 ` Ihor Radchenko
2023-05-09 12:03                   ` Timothy
2023-05-09 12:10                     ` Ruijie Yu via General discussions about Org-mode.
2023-05-09 12:12                     ` Ihor Radchenko
2023-05-09 12:10                       ` Timothy
2023-05-09 12:49                   ` Max Nikulin
2023-05-09 12:57                     ` Ihor Radchenko
2023-05-10 10:07 ` Jun Inoue
2023-05-10 10:21   ` Timothy
2023-05-10 13:09     ` Jun Inoue
2023-05-26  9:50 ` Rudolf Adamkovič
2023-05-28 17:31   ` Timothy
2023-06-03  9:00     ` Rudolf Adamkovič [this message]
2023-08-21  8:59 ` Visuwesh
2023-08-21 16:40   ` Karthik Chikmagalur
2023-08-21 17:19     ` Visuwesh
2023-08-21 21:40       ` Karthik Chikmagalur
2023-08-22  2:57         ` Visuwesh
2023-08-29  6:01 ` Roshan Shariff
2023-08-29  6:01 ` [PATCH 1/1] Fix background color when line-wrapping latex previews Roshan Shariff
2023-08-29 17:14   ` [PATCH v2] Fix background color of " Roshan Shariff
2024-01-07  7:25     ` Timothy
2024-01-07  9:50       ` Roshan Shariff
2024-01-08 10:24         ` Timothy
2024-01-09 20:12           ` Roshan Shariff
2024-01-07  7:28 ` [Pre-PATCH] Overhaul of the LaTeX preview system Timothy
2024-01-20  5:53 ` Matt Huszagh
2024-01-20  6:02 ` Matt Huszagh
2024-01-20  7:13   ` Matt Huszagh
2024-01-21 17:08     ` Timothy
2024-04-22 11:08 ` Feedback on the new "feature" system in org-export (was: [Pre-PATCH] Overhaul of the LaTeX preview system) Ihor Radchenko
  -- strict thread matches above, loose matches on Subject: below --
2023-06-04 23:29 Re: [Pre-PATCH] Overhaul of the LaTeX preview system Rudolf Adamkovič
2023-06-05  5:27 ` Pedro Andres Aranda Gutierrez
2023-08-07  8:12 WANG Yicheng
2023-08-08  8:30 ` Ihor Radchenko
2024-04-11 19:26 Yaroslav Drachov
2024-04-18 20:04 ` Karthik Chikmagalur
2024-04-18 20:13   ` Yaroslav Drachov
2024-04-17 20:11 Корякин Артём
2024-04-18  3:11 ` Karthik Chikmagalur
2024-04-18 20:47   ` Корякин Артём
2024-04-18 15:14 ` Max Nikulin
     [not found]   ` <86edb2ft89.fsf@gmail.com>
2024-04-19  2:23     ` Max Nikulin
2024-04-19  6:53       ` Корякин Артём
2024-04-18 21:49 Корякин Артём

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.orgmode.org/

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

  git send-email \
    --in-reply-to=m2r0qsrkde.fsf@me.com \
    --to=salutis@me.com \
    --cc=emacs-orgmode@gnu.org \
    --cc=orgmode@tec.tecosaur.net \
    /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.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.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).