Compare commits
10
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
bfa3903a30 | ||
|
|
8e1b55783f | ||
|
|
bf74bfbdaa | ||
|
|
cfac74ab72 | ||
|
|
6440a839e5 | ||
|
|
e5c6dcad5a | ||
|
|
201b3267e5 | ||
|
|
6542ba3b48 | ||
|
|
64aeb7fa7e | ||
|
|
977bda8683 |
No files matched your search
@@ -29,7 +29,7 @@ conteggio di parole *{{{word-count}}}*. ]
|
||||
#+latex: \newpage
|
||||
#+latex: \clearpage
|
||||
|
||||
|
||||
Only for test autocommit delle 14:01
|
||||
|
||||
* \to Esigenze: :@ToReview:
|
||||
:PROPERTIES:
|
||||
|
||||
+236
-1
@@ -29,7 +29,6 @@ conteggio di parole *{{{word-count}}}*. ]
|
||||
#+latex: \newpage
|
||||
#+latex: \clearpage
|
||||
|
||||
Test autocommit delle 10:01
|
||||
|
||||
* \to Esigenze: :@ToReview:
|
||||
:PROPERTIES:
|
||||
@@ -678,6 +677,20 @@ completamente rotto Emacs.
|
||||
(setq native-comp-async-report-warnings-errors 'silent))
|
||||
#+end_src
|
||||
|
||||
** Salvare in automatico tutti i buffer ogni ora:
|
||||
:PROPERTIES:
|
||||
:ID: 20260531T144156.765250
|
||||
:END:
|
||||
|
||||
Siccome ho lo script che fa il commit ogni ora dei documenti, il minuto
|
||||
precedente, lancio il comando di salvataggio di tutti i buffer in emacs, così
|
||||
posso committarli e mantenere il backup di tutto usando gitea.
|
||||
|
||||
#+begin_src emacs-lisp :tangle "~/.emacs.d/init.el"
|
||||
;; Dalle 00:00 e ripetuto ogni ora:
|
||||
(run-at-time "00:00" 3600 'org-save-all-org-buffers)
|
||||
#+end_src
|
||||
|
||||
** Impostazione per mandare ~custom-file~ nell'oblio:
|
||||
:PROPERTIES:
|
||||
:ID: 8f4ba6e8-b50c-49c3-aa88-5451986e0fdc
|
||||
@@ -810,6 +823,9 @@ Imposto come formato di default dei file: UTF8
|
||||
:PROPERTIES:
|
||||
:ID: 89b37a37-0f9b-42f6-9afa-bbe3648a04df
|
||||
:END:
|
||||
:BACKLINKS:
|
||||
[2026-05-31 dom 16:28] <- [[id:20260531T154957.127764][Imposto il pacchetto: org-super-links]]
|
||||
:END:
|
||||
|
||||
Gli eventuali codici lisp custom, che voglio utilizzare, li metterò manualmente
|
||||
nella cartella =~/.emacs.d/MyAddOn/= e devo fare in modo che emacs li carichi
|
||||
@@ -1427,6 +1443,114 @@ Carico il file con la configurazione della UI che descrivo [[id:3a5bad5e-b492-44
|
||||
(load "~/.emacs.d/org-init.el")
|
||||
#+end_src
|
||||
|
||||
** Uso dei pacchetti zip e find di unix:
|
||||
|
||||
Per prima cosa ho scaricato gli eseguibili dal progetto [[https://gnuwin32.sourceforge.net/packages.html][GnuWin32]] e li homessi
|
||||
nella cartella =C:\MyTools\GnuWin32=. Quindi ho configurato emacs per caricare
|
||||
quella cartella in modo che ritrovi i relativi eseguibili.
|
||||
|
||||
#+begin_src emacs-lisp :tangle "~/.emacs.d/init.el"
|
||||
;; 1. Aggiunge la cartella con zip.exe e unzip.exe ai percorsi di Emacs
|
||||
(add-to-list 'exec-path "C:/MyTools/GnuWin32")
|
||||
|
||||
;; 2. Disattiva il vecchio standard PKZIP (obbligatorio su Windows moderno)
|
||||
(setq archive-zip-use-pkzip nil)
|
||||
|
||||
;; 3. Definisce i comandi esatti per la gestione degli archivi zip
|
||||
(setq archive-zip-program "zip")
|
||||
(setq archive-zip-extract '("unzip" "-qq" "-c"))
|
||||
|
||||
;; Verifica che sta prendendo gli eseguibili voluti:
|
||||
;; (executable-find "zip") C-j --> "c:/MyTools/GnuWin32/zip.exe"
|
||||
;; (executable-find "unzip") C-j --> "c:/MyTools/GnuWin32/unzip.exe"
|
||||
;; (executable-find "find") C-j --> "c:/MyTools/GnuWin32/find.exe"
|
||||
#+end_src
|
||||
|
||||
** Uso del Latex
|
||||
|
||||
Per usare latex, utilizzo il pacchetto portable MikTex, che ho configurato sul
|
||||
disco virtuale X tramite il file batch =C:\MyTools\miktex\miktex -
|
||||
Avvia.bat=. In questo modo posso esportare in latex avendo l'accortezza di
|
||||
lanciare miktex prima di avviare l'esportazione.
|
||||
|
||||
Per fare in modo che emacs riconosca miktex, ho configurato:
|
||||
|
||||
#+begin_src emacs-lisp :tangle "~/.emacs.d/init.el"
|
||||
;; X:/texmfs/install/miktex/bin/x64/pdflatex.exe
|
||||
;; 1. Aggiunge la cartella con MikTex ai percorsi di Emacs
|
||||
(add-to-list 'exec-path "X:/texmfs/install/miktex/bin/x64")
|
||||
;; ;; 1. Dice a Emacs dove trovare pdflatex su Windows
|
||||
;; (setenv "PATH" (concat "C:\\Users\\" (user-login-name) "\\AppData\\Local\\Programs\\MiKTeX\\miktex\\bin\\x64;" (getenv "PATH")))
|
||||
;; ;; 2. Sincronizza il percorso interno di Emacs
|
||||
;; ;; (setq exec-path (append '("C:/Users/" (user-login-name) "/AppData/Local/Programs/MiKTeX/miktex/bin/x64") exec-path))
|
||||
;; ;; 3. Dice a Org-mode di usare pdflatex
|
||||
;; (setq org-latex-pdf-process '("pdflatex -interaction nonstopmode -output-directory %o %F"))
|
||||
;; ;; questultima dà ancora errore pdflatex non trovato, quindi lo indico direttamente:
|
||||
;; Risolviamo aggirando completamente il problema del PATH: inseriamo il percorso assoluto dell'eseguibile direttamente nel comando di compilazione, così Windows non dovrà "cercarlo".
|
||||
(setq org-latex-pdf-process '("X:/texmfs/install/miktex/bin/x64/pdflatex.exe -interaction nonstopmode -output-directory %o %F"))
|
||||
;; dopo questo ho:
|
||||
;; (executable-find "pdflatex") --> "x:/texmfs/install/miktex/bin/x64/pdflatex.exe"
|
||||
;; (executable-find "dvipng") --> "x:/texmfs/install/miktex/bin/x64/dvipng.exe"
|
||||
#+end_src
|
||||
|
||||
Alcune volte dà problemi, per esempio se vi sono formule matematiche in latex,
|
||||
perchè non riesce a caricare correttamente dvipng. Per risolvere bisogna
|
||||
utilizzare i riferimenti assoluti =%F= dei file e non relativi =%f= e quindi
|
||||
occorre sistemare la variabile =org-preview-latex-process-alist= in modo che tutti i riferimenti siano
|
||||
assoluti:
|
||||
|
||||
#+begin_src emacs-lisp :tangle no
|
||||
;; Configurazione presa da internet
|
||||
(with-eval-after-load 'org
|
||||
(add-to-list 'org-preview-latex-process-alist
|
||||
'(dvisvgm :programs ("latex" "dvisvgm")
|
||||
:description "dvi > svg"
|
||||
:message "you need to install the programs: latex and dvisvgm."
|
||||
:use-xcolor t
|
||||
:image-input-type "dvi"
|
||||
:image-output-type "svg"
|
||||
:image-size-adjust (1.7 . 1.5)
|
||||
:latex-compiler ("latex -interaction nonstopmode -output-directory %o %f")
|
||||
:image-converter ("dvisvgm %f -n -b min -c %S --currentcolor -o %O")))
|
||||
|
||||
;; Imposta il programma predefinito per il rendering
|
||||
(setq org-preview-latex-default-process 'dvisvgm))
|
||||
#+end_src
|
||||
|
||||
#+begin_src emacs-lisp :tangle no
|
||||
;; Configurazione creata da me con M-x customize-variable RET org-preview-latex-process-alist RET
|
||||
(custom-set-variables
|
||||
;; custom-set-variables was added by Custom.
|
||||
;; If you edit it by hand, you could mess it up, so be careful.
|
||||
;; Your init file should contain only one such instance.
|
||||
;; If there is more than one, they won't work right.
|
||||
'(org-preview-latex-process-alist
|
||||
'((dvipng :programs ("latex" "dvipng") :description "dvi > png"
|
||||
:message
|
||||
"you need to install the programs: latex and dvipng."
|
||||
:image-input-type "dvi" :image-output-type "png"
|
||||
:image-size-adjust (1.0 . 1.0) :latex-compiler
|
||||
("latex -interaction nonstopmode -output-directory %o %F")
|
||||
:image-converter ("dvipng -D %D -T tight -o %O %F")
|
||||
:transparent-image-converter
|
||||
("dvipng -D %D -T tight -bg Transparent -o %O %F"))
|
||||
(dvisvgm :programs ("latex" "dvisvgm") :description "dvi > svg"
|
||||
:message
|
||||
"you need to install the programs: latex and dvisvgm."
|
||||
:image-input-type "dvi" :image-output-type "svg"
|
||||
:image-size-adjust (1.7 . 1.5) :latex-compiler
|
||||
("latex -interaction nonstopmode -output-directory %o %F")
|
||||
:image-converter
|
||||
("dvisvgm %F --no-fonts --exact-bbox --scale=%S --output=%O"))
|
||||
(imagemagick :programs ("latex" "convert") :description
|
||||
"pdf > png" :message
|
||||
"you need to install the programs: latex and imagemagick."
|
||||
:image-input-type "pdf" :image-output-type "png"
|
||||
:image-size-adjust (1.0 . 1.0) :latex-compiler
|
||||
("pdflatex -interaction nonstopmode -output-directory %o %F")
|
||||
:image-converter
|
||||
("convert -density %D -trim -antialias %F -quality 100 %O")))))
|
||||
#+end_src
|
||||
|
||||
* \checkmark File di configurazione della grafica *UI-init.el*
|
||||
:PROPERTIES:
|
||||
@@ -2327,6 +2451,117 @@ org:
|
||||
(setq default-process-coding-system '(utf-8-unix . utf-8-unix))
|
||||
#+end_src
|
||||
|
||||
** Imposto il pacchetto: org-id
|
||||
:PROPERTIES:
|
||||
:ID: 20260531T154540.446558
|
||||
:END:
|
||||
|
||||
Per poter usare gli id univoci, abilito l'uso del pacchetto org-id:
|
||||
|
||||
Org-id è una funzionalità integrata di Org Mode che assegna identificatori
|
||||
univoci e permanenti a titoli o file specifici. Consente di creare collegamenti
|
||||
ipertestuali permanenti e resilienti che continuano a funzionare anche se si
|
||||
sposta, rinomina o archivia il file di destinazione.
|
||||
|
||||
Come si vede dal sito [[https://medium.com/@James86768479/org-id-org-attach-better-folder-names-3905f3841044][Org ID, Org Attach & Better Folder Names]] ricavo come
|
||||
personalizzare =org-id= e =org-attach= per id più significativi:
|
||||
|
||||
#+begin_src emacs-lisp :tangle "~/.emacs.d/org-init.el"
|
||||
;; Load org-id
|
||||
(require 'org-id)
|
||||
;;
|
||||
;; Customize how IDs are generated (optional)
|
||||
;; 'ts generates a timestamped ID,
|
||||
;; 'uuid generates a random UUID (default)
|
||||
(setq org-id-method 'ts)
|
||||
;;
|
||||
;; Ordino anche le funzioni pe ril path:
|
||||
;; La funzione UUID prende i primi due caratteri dell'UUID e crea una cartella
|
||||
;; padre a partire da essi, mentre la funzione ts prende i primi sei cioè
|
||||
;; l'anno e il mese.
|
||||
(setq org-attach-id-to-path-function-list
|
||||
'(org-attach-id-ts-folder-format org-attach-id-uuid-folder-format)
|
||||
)
|
||||
;;
|
||||
;; Dalla configurazione di org-super-links:
|
||||
(setq org-id-link-to-org-use-id 'create-if-interactive-and-no-custom-id)
|
||||
#+end_src
|
||||
|
||||
Comandi essenziali
|
||||
|
||||
Una volta caricati, è possibile gestire gli ID utilizzando i seguenti comandi
|
||||
interattivi:
|
||||
- =M-x org-id-get-create= :: Assegna una proprietà :ID: univoca al titolo nel
|
||||
punto specificato (annidata all'interno di un riquadro :PROPERTIES:). Se
|
||||
esiste già un ID, lo lascia invariato.
|
||||
- =M-x org-store-link= (=C-c l=) :: Mentre ci si trova su un titolo con un ID,
|
||||
questo comando memorizza un collegamento che punta specificamente a quell'ID.
|
||||
- =M-x org-insert-link= (=C-c C-l=) :: Inserisce il collegamento ID
|
||||
precedentemente memorizzato nel documento, consentendo di assegnare un nome
|
||||
alla descrizione del collegamento.
|
||||
|
||||
** Imposto il pacchetto: org-super-links
|
||||
:PROPERTIES:
|
||||
:ID: 20260531T154957.127764
|
||||
:END:
|
||||
:RELATED:
|
||||
[2026-05-31 dom 16:28] -> [[id:89b37a37-0f9b-42f6-9afa-bbe3648a04df][Impostazione per directory con il codice lisp custom:]]
|
||||
:END:
|
||||
|
||||
Dai reference [[https://github.com/toshism/org-super-links][GitHub]], [[https://karl-voit.at/2020/07/22/org-super-links/][Karl Voit article]], [[https://writequit.org/articles/emacs-org-mode-generate-ids.html][Lee Hinman article]]
|
||||
|
||||
L'idea generale è quella di creare link con backlink automatici. In poche
|
||||
parole, questo pacchetto automatizza la creazione di ID org, il loro
|
||||
collegamento a un'intestazione org e la creazione di un backlink da tale
|
||||
intestazione a quella che si collega da essa.
|
||||
|
||||
Mi basta cercare l'intestazione a cui voglio collegarmi e tutto viene creato
|
||||
automaticamente: un ID per l'intestazione in cui mi trovo, un ID per
|
||||
l'intestazione a cui mi sto collegando, un link che punta a quell'ID nel mio
|
||||
marcatore e un backlink nell'intestazione a cui mi sto collegando che punta
|
||||
all'intestazione in cui mi trovo.
|
||||
|
||||
Nel post, Hinman spiega che se si utilizzano gli ID nel file org, si otterrà un
|
||||
vantaggio anche durante l'esportazione in un file HTML: i link di intestazione
|
||||
utilizzati punteranno alla posizione desiderata, anche dopo aver spostato le
|
||||
intestazioni.
|
||||
|
||||
Per ora non vi è un pacchetto ELPA, quindi bisogna scaricare i file
|
||||
=org-super-links.el=, =org-super-links-org-ql.el=,
|
||||
=org-super-links-org-rifle.el= e metterli nella cartella di [[id:89b37a37-0f9b-42f6-9afa-bbe3648a04df][custom lisp]] in modo
|
||||
che siano caricati all'avvio di emacs.
|
||||
|
||||
#+begin_src emacs-lisp :tangle "~/.emacs.d/org-init.el"
|
||||
(use-package org-super-links
|
||||
:bind (
|
||||
("C-c s s" . org-super-links-link)
|
||||
("C-c s l" . org-super-links-store-link)
|
||||
("C-c s C-l" . org-super-links-insert-link)
|
||||
("C-c s d" . org-super-links-quick-insert-drawer-link)
|
||||
("C-c s i" . org-super-links-quick-insert-inline-link)
|
||||
("C-c s C-d" . org-super-links-delete-link)
|
||||
)
|
||||
:config (
|
||||
setq org-super-links-related-into-drawer t
|
||||
org-super-links-link-prefix 'org-super-links-link-prefix-timestamp)
|
||||
)
|
||||
#+end_src
|
||||
|
||||
*** Utilizzo:
|
||||
:PROPERTIES:
|
||||
:ID: 20260531T161241.670404
|
||||
:END:
|
||||
|
||||
Si può semplicemente usarlo in sostituzione del collegamento Org:
|
||||
|
||||
Usalo esattamente come useresti i normali link org. Invece di chiamare
|
||||
=org-store-link= chiama =org-super-links-store-link= (=C-c s l=). Quindi per
|
||||
inserire il link invece di =org-insert-link= chiama
|
||||
=org-super-links-insert-link= (=C-c s C-l=). Questo inserirà un link normalmente
|
||||
aggiungendo anche un backlink alla destinazione del link. Questo dovrebbe
|
||||
funzionare allo stesso modo dei normali link org, con il vantaggio di aggiungere
|
||||
il backlink.
|
||||
|
||||
** Imposto la visibilità iniziale di default:
|
||||
:PROPERTIES:
|
||||
:ID: e51a0604-d2d1-486e-ad56-20103e765ebd
|
||||
|
||||
Reference in new issue
Block a user