조직 모드의 기본 인라인 이미지 배경


9

이미지가 투명한 배경을 가질 때, 이맥스는 물론 그것을 존중합니다.

불행히도 이로 인해 디스플레이 문제가 발생할 수 있습니다.

어두운 배경에 검은 색 텍스트

이미지 뒤에 특정 색상 (예 : 흰색)을 표시하는 방법이 있습니까? ImageMagick 이미지 에서 일부 지원이있는 것 같습니다 .

내가 지금 사용하고있는 특정 물건은 배경색을 설정할 수 있지만 , 그렇게하기 위해서는 모든 그림 에 몇 줄을 더 추가 해야합니다. 이상적이지 않습니다. 조직 모드에 표시되는 인라인 이미지가 기본적으로 배경색을 설정하는 위치로 가져 가고 싶습니다.

(참고 : 이것은 org-babel과 관련이 없으며, 지금이 이미지를 얻는 방법 일뿐입니다)

답변:


8

더 파고 후가 않습니다 하지 것으로 보인다 내장 조직 또는 일반적으로이를 조정하는 옵션을 선택합니다. 이미지 시스템에는 기본 배경을 사용자 정의 할 수있는 방법이 없으며 조직은 :background속성 을 설정할 수있는 방법이 없습니다 . 그러나 대부분의 이미지가 :background디스플레이 속성을 지원하는 것처럼 보입니다 .

이 기능을 수정하여 조직에 추가했습니다 (읽기 : 한 .emacs.d줄 변경 으로 복사하여 붙여 넣기 ) org-display-inline-images.

이 기능은 다소 길기 때문에 여기서는 재생산하지 않습니다. 함수의 51 행은 다음과 같습니다.

(setq img (save-match-data (create-image file type nil :width width)))

(투명한 배경) 또는 색상을 org-inline-image-background보유 할 수 있는 새로운 사용자 정의 변수를 정의했습니다 nil.

(defcustom org-inline-image-background nil
  "The color used as the default background for inline images.
  When nil, use the default face background."
  :group 'org
  :type '(choice color (const nil)))

그런 다음 라인 51에 추가했습니다.

(setq img (save-match-data (create-image file type nil :width width 
                                                       :background org-inline-image-background)))

이것은 아름답게 작동하며 색상 피커를 사용하여 사용자 정의 할 수 있으므로 모든 요구 사항을 충족시킵니다.

검은 색 텍스트 밝은 배경


이 일을 알아 내기 위해 많은 노력을 기울인 것 같습니다. emacs-orgmode@gnu.org로 이메일을 보내 패치를 제출 하시겠습니까? 아니면 org-mode에 추가하도록 요청 하시겠습니까?
Kaushal Modi

일단 그 속도에 도달하면 (아무것도 깨지지 않도록하십시오) 나는 또한 바라고 있습니다.
J David Smith

새로운 조직 모드 버전 8.0은 인라인 이미지를 표시하기 위해 오버레이를 사용하기 시작한 것 같습니다. 오버레이 기본 배경색을 수정하는 방법이 있습니까?
stardiviner

@stardiviner 이것이 정확히하는 일
J David Smith

내 조직 버전을 확인했습니다 8.3.4. org-display-inline-images소스 코드를 확인했지만 코드 정의를 찾지 못했습니다. 소스 코드는 다음과 같습니다. gist.github.com/649a7b36031d6adb4a96
stardiviner

3

조언을 통해 더 나은 솔루션을 얻었습니다.

(defun create-image-with-background-color (args)
  "Specify background color of Org-mode inline image through modify `ARGS'."
  (let* ((file (car args))
         (type (cadr args))
         (data-p (caddr args))
         (props (cdddr args)))
    ;; get this return result style from `create-image'
    (append (list file type data-p)
            (list :background (face-background 'default))
            props)))

(advice-add 'create-image :filter-args
            #'create-image-with-background-color)

좋은 해결책. org-솔루션이 훨씬 광범위하게 적용되기 때문에 조언 기능의 이름을 바꾸어 접두사 를 제거하는 것이 좋습니다 . 기본이 아닌 테마의 경우 목표는 아마도 흰색 배경 (기본 얼굴 배경이 아님) 일 (list :background "white")수 있으므로 유용한 예일 수 있습니다.
ebpa

1
그것은 사용자의 선택이며, 당신의 생각은 옳습니다. 귀하의 의견은이 코드를 찾은 사용자에게 충분하다고 생각합니다. :)
stardiviner
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.