From: Ihor Radchenko <[email protected]>
To: [email protected]
Subject: [BLOG] #17 [[bbb:OrgMeetup]] on Wed, Apr 9, 19:00 UTC+3
Date: Tue, 22 Apr 2025 16:27:56 +0000 [thread overview]
Message-ID: <87ecxkb1pv.fsf@localhost> (raw)
In-Reply-To: <87bjt6tx3a.fsf@localhost>
Dear all,
Here are the meeting notes.
TL;DR: timezone support; search support in HTML export; proposal
to switch to lualatex as default pdf export engine; exporting
non-latin documents to pdf without config headache; nested special blocks;
parser-based fontification; elisp inspector; inline special blocks;
org-special-block-extras; noweb reference as macro equivalent inside
src blocks; Captee - native macOS support for org-protocol and org-capture;
breadcrumb-mode
- As usual, we started from the latest Emacs News
https://sachachua.com/blog/2025/04/2025-04-07-emacs-news/
- davemq asked about timezone support in Org mode
- We have discussed timezone support in the past and decided that
Org should eventually support timezones
- I even consolidated the discussion, proposing detailed timestamp
syntax with timezone support back in 2023
https://list.orgmode.org/orgmode/87tu063ox2.fsf@localhost/
- The syntax was inspired by various ISO standards (including
https://www.rfc-editor.org/rfc/rfc3339.html), together with
Org-specific considerations. Feel free to dive into the long
discussion preceding my proposal (in the above link). The link
summarizes the most important points though; it is not necessary
to read all those 300+ emails in the thread.
- However, I simply do not have enough time to do everything I want
and have to prioritize (especially now, when I can only allocate
weekends for Org development)
- My main priority in terms of new major features is large Org
codebase refactor; timezone support comes later
- So, *if one wants to get timezone support, please go ahead and*
*work on the patch*. The first step will be adding the discussed
syntax into org-element.el. Please write to Org mailing list if
you are interested. See https://orgmode.org/worg/org-contribute.html
- we then went through some recently proposed new Org features
- In https://list.orgmode.org/orgmode/[email protected]/, Sébastien Gendre
expressed interest in adding search engine support to Org HTML export
- In particular, he proposed using https://pagefind.app/ to generate
static search index, thus keeping exported HTML static
- Although we discussed generalization: if we are to add such a
feature we should ideally allow arbitrary search engines; not just
pagefind
- In https://list.orgmode.org/CAO48Bk__cbR-acgyyeS6Buo3od8+wAFEHsT9yUY84RhGv0NT9A@mail.gmail.com/T/#m132726826a7348203288342c7cdf7bef82b9cbe9
Pedro Andres Aranda Gutierrez opened a discussion about changing the default latex
engine from pdflatex to lualatex
- This discussion originated from long-standing issue with pdflatex
when exporting non-latin characters
- pdflatex cannot easily export arbitrary languages; once it
encounters Chinese, Japanese, Cyrillic, Farci, etc, default settings
cannot produce correct pdf
- same for emoji and generally UTF8 symbols
- There are various workarounds for pdflatex for specific languages, but
1. These workarounds require knowing language in advance
2. Workarounds work poorly or require explicitly marking specific language
in the Org source when several languages are used in the same document
3. From Org perspective, it is a disaster, because it is
basically impossible to export arbitrary non-English org
files to pdf with pdflatex. We have to tell users figure
out things themselves for the most part
- Moreover, pdflatex is officially superseded by lualatex and
will be slowly deprecated in future (no feature parity with
lualatex in future releases)
https://www.texdev.net/2024/11/05/engine-news-from-the-latex-project
- xelatex is also officially the dead end and lualatex should be preferred
- However, lualatex is much slower compared to pdflatex
- Karthink (the author of the new latex preview system) commented that
lualatex is so prohibitedly slow that we cannot practical
do live previews of latex formulas (mostly because preamble
pre-compilation is technically not possible with lualatex)
https://list.orgmode.org/CAO48Bk__cbR-acgyyeS6Buo3od8+wAFEHsT9yUY84RhGv0NT9A@mail.gmail.com/T/#m379a3c41134c82a6b33da5474930b2fc7ef30898
- Although, with some Lua surgery, we may theoretically
implement preview server making lualatex spit preview pages on demand
(but who is going to write the patch?)
https://list.orgmode.org/CAO48Bk__cbR-acgyyeS6Buo3od8+wAFEHsT9yUY84RhGv0NT9A@mail.gmail.com/T/#ma96cfcc80710fbbf3f169e2fe396d03dd0aa3b7a
- Still, Pedro suggested that we can improve things at least when
lualatex is explicitly selected and latex compiler
- In lualatex, we are not limited by the font choice and can use
full UTF8 support, reducing complexity of non-English document export
- Still, some configuration is necessary on the user side
Emoji + Chinese (also, https://tex.stackexchange.com/questions/395941/insert-an-emoticon-using-xelatex/395943#395943):
https://tex.stackexchange.com/questions/304156/how-would-i-go-about-adding-unicode-emoji-into-latex/728116#728116
#+begin_src org
,#+latex_compiler: lualatex
,#+latex_header: \usepackage[AUTO]{polyglossia}
,#+latex_header: \setmainfont{Sarasa Mono HC} % Replace with your desired UTF-8 font
,#+latex_header_extra: \newfontfamily\emojifont{Noto Color Emoji} % Emoji support
,* 你号. 😼
And mix with english.
#+end_src
Russian config from artsi0m (https://github.com/artsi0m/emacs-organizer/blob/bb6626c6346881c0ec260a12859701f0c5961c36/ru-xelatex-template.org):
#+begin_src org
# -*- mode: org; -*-
,#+latex_compiler: xelatex
,#+latex_header: \usepackage[AUTO]{polyglossia}
,#+latex_header: \setmainfont{Noto Sans}
,#+latex_header: \setmonofont{Iosevka}
,#+latex_header: \setdefaultlanguage{russian}
,#+latex_header: \usepackage{geometry}
,#+latex_header: \geometry{left=15mm, top=15mm, right=20mm, bottom=20mm}
#+end_src
- We are currently discussing whether we can somehow configure
things automatically for lualatex (even if it is not the
default, such automatic configuration will be useful)
https://list.orgmode.org/CAO48Bk_m9WV9vAG5He8N_FpQGxsZx3eTE259N7hQe_AjfVHkjg@mail.gmail.com/T/#t
- Steve Downey pointed that pandoc does something similar with fallback fonts
https://pandoc.org/MANUAL.html#fonts:~:text=mainfontfallback%2C%20sansfontfallback,with%20lualatex
- During the meetup, I demoed exporting multi-language document, but using xelatex
- for some reason, lualatex took very long time and never finished compiling
- (after the fact, I figured that lualatex was updating font
cache, which is why it took so long during the meetup)
- Zororg also suggested =\usepackage{emoji}=
- this is slightly different story though
- This package is working around UTF8 problem by adding special commands
to introduce emoji into pdf output: each emoji must be written
as =\emoji{emoji_name}= command rather than actual emoji symbol
- (I may not recall this correctly) Someone pointed that nested special blocks
do not get highlighted in Org
- This is a known problem of Org fontification
- I hope that it will be eventually addressed when we switch to
parser-based fontification
See https://git.sr.ht/~yantar92/org-mode/log/feature/org-font-lock-element/item/lisp
- The parser recognized nested special blocks just fine
- I demoed this by calling M-: (org-element-parse-buffer)
and examining results with https://elpa.gnu.org/packages/inspector.html
- I have a custom command bound to M-: to inspect the return value
with inspector when called with prefix argument
https://github.com/yantar92/emacs-config/blob/master/config.org#inspecting-objects-inside-profiler-or-evaluation-results
- Steve Downey asked about customizing special block export
for different export backends
- There is https://github.com/alhassy/org-special-block-extras
package that does exactly this
- I also hope to provide custom export mechanism akin what we have for links
but for special blocks in future
- Also, there is a proposal (and initial patch) to implement a new
markup to Org - inline special blocks
https://list.orgmode.org/orgmode/875xwqj4tl.fsf@localhost/
- This markup will, among other things allow custom export
(see my linked message with all the details)
- Zororg asked whether there is a plan to allow
Org macros inside src blocks
- There is no such plan because we already have
noweb references serving similar purpose
- noweb references are somewhat more powerful, but not the same with macros
- One can use the following noweb reference block that directly uses macro definition
#+begin_src org
,#+options: d:nil
,#+macro: foo test test 2
{{{foo}}}
:noexport:
,#+name: fooname
{{{foo}}}
:end:
,#+name: noweb-foo
,#+begin_src emacs-lisp :var x=fooname[] :eval export :exports results
(message x)
,#+end_src
,#+RESULTS:
: {{{foo}}}
,#+begin_src emacs-lisp :noweb yes :exports code
<<noweb-foo()>>
,#+end_src
#+end_src
- kickingvegas showcased his new app he is developing
to support Org capture and Org protocol on macOS
- https://fosstodon.org/@[email protected]/114314588128977624
https://github.com/kickingvegas/Captee
- There is a need in special app because macOS now forbids arbitrary
apps from using URL protocols and a code signed app must be used
instead of emacsclient (which is not code signed and will likely
never be)
- That's annoying, but Apple does not care
- The app also integrates with browser and can be used in place of
Org capture extensions (AFAIU)
- The app basically re-implements emacsclient (which is a tiny
wrapper around socket communication protocol)
- We discussed the protocol. It is really simple and can be examined
in Emacs source code
- The protocol did not change since forever, so the app should
work in all reasonable Emacs versions
- Zororg asked about outline path displayed in my Emacs header line
inside Org files
- I am using https://github.com/joaotavora/breadcrumb
:chat:
The latest Emacs News:
https://sachachua.com/blog/2025/04/2025-04-07-emacs-news/
18:06
me says:If you have any questions about Org mode, or a topic you want to discuss, feel free
18:09
davemq
davemq says:The question of timezones in timestamps comes up again and again. I suspect it would be major surgery to support timezones. Any thoughts?
18:12
davemq says:(Of course, I haven't read the code to try to figure it out)
18:13
me says:
https://list.orgmode.org/orgmode/87tu063ox2.fsf@localhost/
18:16
me says:This this timezone feature discussion
18:16
davemq
davemq says:At least some of the syntax is in line with ISO-8601, looks like
18:18
davemq says:A small matter of programming
18:18
davemq says:Thanks!
18:18
me says:
https://list.orgmode.org/orgmode/[email protected]/
18:25
SD
Steve Downey
Steve Downey says:
https://www.rfc-editor.org/rfc/rfc3339.html
is a profile of ISO-8601 that you don't have to pay for to look at.
18:25
me says:
https://pagefind.app/
18:25
me says:static search engine for Org HTML export
18:25
me says:
https://list.orgmode.org/CAO48Bk__cbR-acgyyeS6Buo3od8+wAFEHsT9yUY84RhGv0NT9A@mail.gmail.com/T/#m132726826a7348203288342c7cdf7bef82b9cbe9
18:27
me says:on changing default latex export engine
18:27
SD
Steve Downey
Steve Downey says:Not having good support for emoji in pdflatex turns out to be a problem surprisingly often.
18:31
A
artsi0m
artsi0m says:I have my own template for writing org with xelatex
https://github.com/artsi0m/emacs-organizer/blob/master/ru-xelatex-template.org
18:36
artsi0m says:\usepackage[AUTO]{polyglossia}
18:38
artsi0m says:
https://tex.stackexchange.com/a/395943
18:40
Zororg
Zororg says:I got emoji working with \usepackage{emoji}
then \emoji{ANY_NAME}
18:45
A
artsi0m
artsi0m says:Nice
18:45
braam76 (Ilgar Gamidov)
braam76 (Ilgar Gamidov) says:I'm sorry. Do anyone talks right now?
18:46
braam76 (Ilgar Gamidov) says:like at all
18:46
A
artsi0m
artsi0m says:I found another answer, that sujject using separate font for emojis, declaring it with fontspec
https://tex.stackexchange.com/a/728116
\newfontface\emojifont{Segoe UI Emoji}[Renderer=Harfbuzz]
The quick brown fox {\emojifont 😺👅👩🏽🎓👩🏼🎓} jumps over the lazy dog
18:47
K
kickingvegas
kickingvegas says:ngl, seems like every emoji solution for *TeX is unnatural
18:47
Zororg
Zororg says:ok i got emoji with normal way.
18:48
Zororg says:use this both lines somewhere
,#+latex_header: \newfontface\emojifont{Noto Color Emoji}[Renderer=Harfbuzz]
\emojifont{}
18:49
Zororg says:for me it showed emoji in pdf
18:49
A
artsi0m
artsi0m says:Idk. It seems pretty normal to just set separate font in XeLaTeX. Although it would be much handy set it like main font with \setemojifont. XeLaTeX is good with Unicode. It was developed specifically to support it
18:50
SD
Steve Downey
Steve Downey says:The downside is getting locked in to both a particular export format (latex) and the special markup for some characters. Pandoc does some extra work to support fallback fonts, but I don't know the code they are emitting.
https://pandoc.org/MANUAL.html#fonts:~:text=mainfontfallback%2C%20sansfontfallback,with%20lualatex
.
18:50
Zororg
Zororg says:no, just insert empty
\emojifont{}
and you can have emoji anywhere
18:51
avatar
chaw
chaw says:That is good to know, in general; thanks!
18:53
me says:
https://www.texdev.net/2024/11/05/engine-news-from-the-latex-project
18:53
me says:LuaLaTex is the official future of tex
18:53
me says:xelatex is going to be obsoleted
18:53
me says:pdflatex is legacy (and all UTF problems)
18:53
braam76 (Ilgar Gamidov)
braam76 (Ilgar Gamidov) says:i dont think jeff is talking to us
😮
18:55
SD
Steve Downey
Steve Downey says:
https://isocpp.org/files/papers/P3514R0.html#org1792942
18:57
Z
Zororg
Zororg says:May i know what was that inspector?
18:59
me says:
https://git.sr.ht/~yantar92/org-mode/log/feature/org-font-lock-element/item/lisp
19:01
V
visuwesh
visuwesh says:zororg:
https://elpa.gnu.org/packages/inspector.html
? I wasn't in the meeting when you asked the qn
19:02
Z
Zororg
Zororg says:it supports org as well?
19:03
me says:
https://github.com/mmontone/emacs-inspector
19:03
me says:
https://github.com/alhassy/org-special-block-extras
19:06
me says:on exporting custom markup
19:06
Z
Zororg
Zororg says:Is there any thoughts/plan on using org macro inside src blocks?
Last time I wanted to use them for my site exporting
19:06
me says:
https://list.orgmode.org/orgmode/875xwqj4tl.fsf@localhost/
19:10
me says:on custom markup for Org with custom export, fontification, etc
19:11
me says:#+options: d:nil
#+macro: foo test test 2
{{{foo}}}
:noexport:
#+name: fooname
{{{foo}}}
🔚
#+name: noweb-foo
#+begin_src emacs-lisp :var x=fooname[] :eval export :exports results
(message x)
#+end_src
#+RESULTS:
: {{{foo}}}
#+begin_src emacs-lisp :noweb yes :exports code
<<noweb-foo()>>
#+end_src
19:15
Z
Zororg
Zororg says:Ok got it. Thank you for showcasing similar workflow
19:15
K
kickingvegas
kickingvegas says:can give a demo of some pre-release work I've been doing to support org-protocol on macOS
19:17
Z
Zororg
Zororg says:yantar, why is your
notes.org
having less lines? I'm sure it must be narrowed. Last time it was about 18K lines
And whats with breadcrumb showing "Topics > Software" ?
Is it any custom package/code you wrote?
19:18
JT
Jeff Trull
Jeff Trull says:❤️
19:19
Z
Zororg
Zororg says:whoa, the sound! Funny 😃
19:18
JT
Jeff Trull
Jeff Trull says:I didn't expect that sorry
19:19
Jeff Trull says:So much for the discreet emoji on my icon
19:19
Jeff Trull says:Anyway derived exporters FTW
👍
19:20
me says:
https://github.com/joaotavora/breadcrumb
19:20
V
visuwesh
visuwesh says:yes
19:21
Carlo Tambuatco
Carlo Tambuatco says:clear as mud
19:25
chaw
chaw says:There is no way to add exceptions to the security policy?
19:25
CT
Carlo Tambuatco
Carlo Tambuatco says:This Scrim is a code signed app?
19:28
artsi0m
artsi0m says:I am sorry, I have to leave. Thanks for the meetup
19:29
CT
Carlo Tambuatco
Carlo Tambuatco says:Cool
19:33
V
visuwesh
visuwesh says:there are some ugly details wrt finding the socket filename in linux
19:34
visuwesh says:that sounds awfully restrictive
19:37
visuwesh says:disallowing unix sockets that is
19:37
CT
Carlo Tambuatco
Carlo Tambuatco says:restrictive is the whole point
19:37
V
visuwesh
visuwesh says:yea, i dont get this whole security theatre in the end; maybe someday
19:38
visuwesh says:oh yea, do you support multiple servers/non-default server name
19:39
visuwesh says:makes sense to me
19:41
visuwesh says:for some reason i decided to use a non-defaulat server name c:
19:41
CT
Carlo Tambuatco
Carlo Tambuatco says:Is there a minimum version of emacs necessary?
19:41
Carlo Tambuatco says:You're using emacs 30.1 is that the minimum version?
19:42
Carlo Tambuatco says:Cool. I'm using 29.3
19:43
V
visuwesh
visuwesh says:i don't think it has been touched recently (except the whole "where do we keep the socket file in linux" fiasco)
19:45
CT
Carlo Tambuatco
Carlo Tambuatco says:Could you demo markdown?
19:49
Carlo Tambuatco says:Okay nevermind
19:49
JT
Jeff Trull
Jeff Trull says:Thanks @kickingvegas I will refrain from emoji use but great presentation
:end:
--
Ihor Radchenko // yantar92,
Org mode maintainer,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>
prev parent reply other threads:[~2025-04-22 16:30 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-04-08 16:52 #17 [[bbb:OrgMeetup]] on Wed, Apr 9, 19:00 UTC+3 Ihor Radchenko
2025-04-09 15:59 ` (changed link) " Ihor Radchenko
2025-04-22 16:27 ` Ihor Radchenko [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.orgmode.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87ecxkb1pv.fsf@localhost \
[email protected] \
[email protected] \
/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).