mode d'affichage de l'image inline en mode org


11

Je souhaite afficher l'image en ligne du mode org (en emacs) avec une largeur de 400, mais en fait, elle l'affiche toujours en taille d'origine.

Mes étapes comme ci-dessous:

  1. Installez ImageMagick avec la commande ci-dessous: sudo port install imagemagick
  2. Installez emacs avec la commande ci-dessous: brew install emacs --HEAD --use-git-head --cocoa --with-gnutls --with-rsvg --with-imagemagick Ensuite, je le vérifie, la version emacs est GNU Emacs 26.0.50.1, mais le (image-type-available-p 'imagemagick)résultat estnil

  3. Modifiez ~ / .emacs.d / init.el pour ajouter la ligne ci-dessous: (setq org-image-actual-width nil)

  4. Écrivez ci-dessous le code org dans test.org:

#+ATTR_ORG: :width 400 [[file:test.png]] 5. Après l'exécution C-c C-x C-v, l'image ne s'affiche pas en 400 mais en taille réelle.


Pour installer Emacs graphiques (Emacs.app) avec la prise en charge d'ImageMagick via MacPorts, utilisez sudo port install emacs-app +imagemagick. Il semble que vous utilisez MacPorts pour installer les dépendances pour HomeBrew, je ne sais pas si cela devrait fonctionner. et il n'est pas nécessaire d'installer la dépendance manuellement, c'est le travail de votre gestionnaire de packages. En outre, l'utilisation de deux gestionnaires de packages à la fois est généralement une mauvaise idée et inutile.
xuchunyang

@xuchunyang Exactement, après avoir réinstallé emacs-app avec le port, cela fonctionne bien maintenant. Merci
beetlej

Réponses:


6

La version d'Imagemagick ne correspond pas.

Modifiez la commande d'installation de brew comme ci-dessous:

brew install emacs --with-cocoa --with-gnutls --with-dbus --with-librsvg --with-imagemagick@6 --with-mailutils --devel

Ensuite, exécutez brew info emacspour vérifier si magicmagick va bien!

emacs: stable 25.1 (bottled), devel 25.2-rc2, HEAD
GNU Emacs text editor
https://www.gnu.org/software/emacs/
/usr/local/Cellar/emacs/25.2-rc2 (4,051 files, 120.1MB) *
  Built from source on 2017-03-11 at 16:56:47 with: --with-cocoa --with-gnutls --with-dbus --with-librsvg --with-imagemagick@6 --with-mailutils
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/emacs.rb
==> Dependencies
Build: pkg-config ✔
Optional: dbus ✔, gnutls ✔, librsvg ✔, imagemagick@6 ✔, mailutils ✔

Si imagemagick @ 6 est coché, alors tout devrait bien se passer.

Dans emacs, exécutez la commande ci-dessous pour vérifier si le package imagemagick est disponible:

*** Welcome to IELM ***  Type (describe-mode) for help.
ELISP> (image-type-available-p 'imagemagick)
t
ELISP>

7
(setq org-image-actual-width 400)

devrait faire le travail. La documentation de la variable ( C-h v org-image-actual-width RET) donne plus de détails:

org-image-actual-width est une variable définie dans 'org.el'. Sa valeur est t

Documentation: Devrions-nous utiliser la largeur réelle des images lors de leur alignement?

Lorsqu'il est réglé sur t, utilisez toujours la largeur de l'image.

Lorsqu'il est défini sur un nombre, utilisez imagemagick (lorsqu'il est disponible) pour définir la largeur de l'image sur cette valeur.

Lorsqu'il est défini sur un nombre dans une liste, essayez d'obtenir la largeur à partir de n'importe quel mot clé # + ATTR. * S'il correspond à une spécification de largeur comme

#+ATTR_HTML: :width 300px

et retomber sur ce nombre si aucun n'est trouvé.

Lorsqu'il est défini sur nil, essayez d'obtenir la largeur à partir d'un mot clé # + ATTR. * Et retombez sur la largeur d'origine si aucune n'est trouvée.

Cela nécessite Emacs> = 24.1, build (sic) avec le support imagemagick.


Cela ne ressemble pas à une réponse, mais pourrait être un commentaire.
JeanPierre

Cela ne fournit pas de réponse à la question. Pour critiquer ou demander des éclaircissements à un auteur, laissez un commentaire sous son article. - De l'avis
JeanPierre

Est-ce mieux?
NickD

5

Dans votre étape 2,

(image-type-available-p 'imagemagick)

devrait revenir t. nilest pour indisponible. Peut-être que la raison pour laquelle vous obtenez nilest que les chemins depuis l'installation macports d'imagemagick ne sont pas pris en compte par l'installation de brassage d'emacs. Avez-vous remarqué des erreurs de compilation à cet effet?

Dans tous les cas, ajustez manuellement le chemin vers imagemagick ou installez-le à partir de l'infusion. L'installation d'imagemagick et d'emacs à partir de macports fonctionne pour moi.


Exactement, après avoir désinstallé emacs et le réinstaller avec le port, cela fonctionne bien maintenant.
beetlej
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.