অর্গ মোডে ডিফল্ট ইনলাইন চিত্রের পটভূমি


9

যখন কোনও চিত্রের স্বচ্ছ পটভূমি থাকে, অবশ্যই ইমাস অবশ্যই সেটিকে সম্মান করে।

দুর্ভাগ্যক্রমে, এটি ডিসপ্লে সহ সমস্যাগুলির দিকে নিয়ে যেতে পারে:

অন্ধকার পটভূমিতে কালো পাঠ্য

চিত্রের পিছনে কোনও নির্দিষ্ট রঙ (উদাহরণস্বরূপ সাদা) প্রদর্শন করার কোনও উপায় আছে কি? ইমেজম্যাগিক ছবিগুলিতে এর জন্য কিছুটা সমর্থন রয়েছে বলে মনে হচ্ছে ।

আমি এই মুহুর্তে যে নির্দিষ্ট স্টাফের সাথে কাজ করছি সেটিতে ব্যাকগ্রাউন্ড কালার সেট থাকতে পারে, তবে এটি করার জন্য আমাকে প্রতিটি একক চিত্রের জন্য অতিরিক্ত কয়েকটি লাইন যুক্ত করতে হবে, যা আদর্শের চেয়ে কম নয়। আমি এটি পেতে চাই যেখানে org-মোডে প্রদর্শিত ইনলাইন চিত্রগুলির ব্যাকগ্রাউন্ড রঙ ডিফল্টরূপে সেট করা আছে।

(দ্রষ্টব্য: এটি অর্গ-বাবেল নির্দিষ্ট নয়, কেবল এখনই কীভাবে এই চিত্রগুলি পাচ্ছি তা হ'ল)

উত্তর:


8

অনেক খননের পরে, আরগ বা সাধারণভাবে এটি সামঞ্জস্য করার জন্য অন্তর্নির্মিত বিকল্প বলে মনে হয় না । চিত্র সিস্টেমের ডিফল্ট ব্যাকগ্রাউন্ডটি কাস্টমাইজ করার কোনও উপায় নেই এবং org এর কাছে :backgroundসম্পত্তি সেট করার কোনও উপায় নেই । যাইহোক, এটি দেখতে বেশিরভাগ চিত্রগুলি :backgroundপ্রদর্শন সম্পত্তি সমর্থন করে ।

আমি এই কার্যকারিতাটি সংশোধন করে অর্গের সাথে যুক্ত করেছি (পড়ুন: .emacs.d1-লাইন পরিবর্তনের মাধ্যমে অনুলিপি করুন এবং আটকান ) 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- মোডে যুক্ত করার অনুরোধ করবেন?
দক্ষ মোদী

আমি একবার এটির গতি দিয়ে রাখলাম (এটি কোনও কিছু ভেঙে না যায় তা নিশ্চিত করুন) আমিও আশা করছি।
জে ডেভিড স্মিথ

নতুন org- মোড সংস্করণ 8.0 মনে হয় ইনলাইন চিত্রগুলি প্রদর্শন করতে ওভারলে ব্যবহার শুরু করে, ওভারলে ডিফল্ট পটভূমির রঙ পরিবর্তন করার কোনও উপায় আছে কি?
স্টারডিভাইনার

@ স্টারডিভিনার ঠিক এটিই করেন
জে ডেভিড স্মিথ

আমি আমার অর্গ সংস্করণ পরীক্ষিত, এটা 8.3.4। আমি org-display-inline-imagesউত্স কোডটি যাচাই করেছি , আপনার কোড সংজ্ঞাটি পাইনি। উত্স কোডটি এখানে: gist.github.com/649a7b36031d6adb4a96
স্টারডিভাইনার

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.