অর্গ-মোডে উদ্ধৃতি সহ ইনলাইন ভারব্যাটিম এবং কোড


37

অর্গ-মোডে আমি পাঠ্যকে চারপাশে =বা ইনলাইন ভারব্যাটিম বা কোড মোডে ~পাঠাতে পারি ।

তবে এটি ব্যর্থ হয় যদি পাঠ্যের উদ্ধৃতি থাকে এবং আমি ডকুমেন্টেশনে কোনও ব্যাখ্যা বা কাজ খুঁজে পাইনি ।

উদাহরণ স্বরূপ:

  • =hello= শব্দবাচক হিসাবে রেন্ডার
  • ~hello~ কোড হিসাবে রেন্ডার
  • =hello'= ভারব্যাটিম হিসাবে রেন্ডার করতে ব্যর্থ
  • ~hello'~ কোড হিসাবে রেন্ডার করতে ব্যর্থ

আমি এখনও অবধি খুঁজে পাওয়া একমাত্র সমাধান হ'ল অদৃশ্য অক্ষরগুলি সন্নিবেশ করানো, উদাহরণস্বরূপ টাইপিং C-x 8 <RET> 200b <RET>, এই প্রশ্নটিতে বর্ণিত ।

কেন এটি (এটি কোনও বাগ?) এবং অদৃশ্য চরিত্রগুলি না Iুকিয়ে আমি কীভাবে এই সমস্যাটি এড়াতে পারি?

উত্তর:


47

প্রথমত: এটি ইমাক্স। এটি কোনও বাগ নয়, এটি একটি সেটিং!

দ্বিতীয়ত, @glucas এই কথাটি সঠিক যে আপনি যাorg-emphasis-regexp-components চান তা পেতে আপনাকে পরিবর্তন করতে হবে। তবে আমি তার (@ মালাবার্বার) কোডটিতে দুটি পরিবর্তন করার পরামর্শ দিতে চাই এবং আরও কিছু প্রসঙ্গ সরবরাহ করতে চাই:

  1. org-emphasis-regexp-componentsএকটি একক উপাদান পরিবর্তন করতে আপনাকে আপনার আর-ফাইলটিতে পুরো মানটি অনুলিপি করার দরকার নেই । আপনার ব্যবহারের ক্ষেত্রে নিম্নলিখিতটি যথেষ্ট:

    (setcar (nthcdr 2 org-emphasis-regexp-components) " \t\r\n,\"")
  2. এর মাধ্যমে লোড করার আগে আপনাকে কোনও সংশোধন করতে হবে না । আপনার পরিবর্তনগুলির পরে কেবল নিম্নলিখিত লাইনটি যুক্ত করুন:org-emphasis-regexp-componentsorg-mode(require 'org)

    (org-set-emph-re 'org-emphasis-regexp-components org-emphasis-regexp-components)

আরও প্রসঙ্গ

আপনি কীভাবে জোর মার্কসআপে কাজ করে তার অন্যান্য দিকগুলি কাস্টমাইজ করতে চান তবে এটি জানুন org-mode:

মানটি org-emphasis-regexp-componentsপাঁচটি এন্ট্রি সহ একটি তালিকা।

  1. প্রথম এন্ট্রি নিয়ন্ত্রণ করে যে কোন অক্ষরগুলি অবিলম্বে মার্কআপের অক্ষরগুলির আগে উপস্থিত হওয়ার অনুমতি রয়েছে । আপনি যদি why=hello=সঠিকভাবে রেন্ডারের মতো কিছু পেতে সক্ষম হতে চান তবে আপনাকে এই প্রবেশিকাটি পরিবর্তন করতে হবে।

    (setcar org-emphasis-regexp-components "...")
  2. দ্বিতীয় এন্ট্রি নিয়ন্ত্রণ করে যা কোন অক্ষরগুলি অবিলম্বে মার্কআপ অক্ষর অনুসরণ করার অনুমতিপ্রাপ্ত । আপনি যদি =hello=thereসঠিকভাবে রেন্ডারের মতো কিছু পেতে সক্ষম হতে চান তবে আপনাকে এই প্রবেশিকাটি পরিবর্তন করতে হবে।

    (setcar (nthcdr 1 org-emphasis-regexp-components) "...")
  3. তৃতীয় এন্ট্রি সীমান্ত অক্ষর হিসাবে অনুমোদিত নয় এমন অক্ষরগুলি নির্দিষ্ট করে , অর্থাত্ অবিলম্বে একটি খোলার মার্কআপ চরিত্র অনুসরণ করে বা একটি সমাপনী মার্কআপ চরিত্রের আগে। রেন্ডার মতো জিনিসগুলি সঠিকভাবে তৈরি করতে আপনাকে এটি সংশোধন করতে হবে ।='hello'=

    (setcar (nthcdr 2 org-emphasis-regexp-components) "...")
  4. চতুর্থ এন্ট্রি এমন অক্ষর তালিকাভুক্ত করে যা আপনার চিহ্নিত আপ স্ট্রিংয়ের শরীরে অনুমোদিত, অর্থাত্ সীমান্ত অক্ষরের মধ্যে উপস্থিত হওয়া অক্ষর। আপনার খুব কমই এটিকে সংশোধন করতে হবে; ডিফল্টরূপে, কোনও অক্ষরকে বডি চরিত্র হিসাবে অনুমোদিত।

    (setcar (nthcdr 3 org-emphasis-regexp-components) "...")
  5. পঞ্চম এন্ট্রি নির্দিষ্ট করা এক্সপ্রেশনটির ভিতরে কতগুলি নতুন লাইনের অনুমতি রয়েছে তা নির্দিষ্ট করে। ডিফল্টরূপে, org-modeএকটি একক নতুন লাইনের অনুমতি দেয়। সুতরাং আপনি যদি টানা দুই লাইনের বেশি বিস্তৃত পাঠ্যে মার্কআপ যুক্ত করতে সক্ষম হতে চান তবে আপনাকে এই প্রবেশিকাটি পরিবর্তন করতে হবে।

    (setcar (nthcdr 4 org-emphasis-regexp-components) N)

    ... Nআপনি যে নতুন লাইনের অনুমতি দিতে চান তা কোথায় ।

সম্পর্কিত পোস্ট

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


7
আমি আপনার উত্তরটি উন্নত করেছিলাম তবে উত্তরের গুণমানের জন্যও প্রশংসা করতে চাই।
দক্ষ মোদী

ধন্যবাদ @itsjeyd এটি দুর্দান্ত কাজ করে যদি আমি ইমাস্যাক্সটি ইতিমধ্যে আমার বাফারগুলি পুরোপুরি লোড হয়ে যায় তবে আমি যদি দুটি লাইন ইন্টারেক্টিভভাবে চালিত করি। যাইহোক, এবং আশ্চর্যের সাথে যথেষ্ট, আমি "Symbol's value as variable is void: org-emphasis-regexp-components"আমার .emacsফাইলের নীচে two দুটি লাইন রাখলেও এমনকি আমি এতে প্রবেশ করি । কেন এমন হতে পারে তা নিয়ে কোনও চিন্তা?
আমেলিও ওয়াজকেজ-রেইনা

@ আমেলিওভাজেকিজ-রেইনা আপনাকে স্বাগতম! :) কেবলমাত্র নিশ্চিত করার জন্য: কোনও কাস্টমাইজেশন করার আগে (require 'org)আপনি কি আপনার .emacsফাইলটিতে আছেন org-emphasis-regexp-components?
20 এজেড

1
@ অ্যামেলিওভাজেকেজ-রেইনা আমি আনন্দিত যে আপনার জন্য এখন সবকিছু ঠিকঠাকভাবে কাজ করছে :) আপনার পর্যবেক্ষণগুলি সঠিক - (require 'org)এটির ব্যবহারের জন্য আপনার আর-ডি-ফাইলের দরকার নেই । আপনি যদি এটি না করেন তবে ইমাসগুলি স্বয়ংক্রিয়ভাবে এটি লোড করবে যখন আপনি: (ক) .orgবর্তমান সেশনে প্রথমবারের মতো কোনও ফাইল খুলুন , বা (খ) M-x org-modeবর্তমান অধিবেশনে প্রথমবারের মতো মোডটি ম্যানুয়ালি সক্ষম করুন বা (সি) ) যখন এটি কোনও সংরক্ষিত ডেস্কটপ পুনরুদ্ধার করে যাতে কমপক্ষে একটি .orgফাইল অন্তর্ভুক্ত থাকে। (contd।)
itsjeyd

1
@ অ্যামিলিও ওয়াজকেজ-রেইনা (নিয়ন্ত্রিত) জিনিসটি হ'ল : ইমাকগুলি স্বয়ংক্রিয়ভাবে লোড হবে নাorg-mode কারণ আপনি এটির জন্য নিজের জন্য নিজের পছন্দটি কিছু পরিবর্তন করেছেন init এজন্য এর (require 'org)যেকোন ভেরিয়েবলকে কাস্টমাইজ করার আগে আপনার প্রয়োজন । মোডটি সম্পূর্ণরূপে লোড না করে, ইম্যাকসগুলি ভেরিয়েবলগুলির মতো কী করতে হবে তা জানতে পারে না org-emphasis-regexp-components; ইম্যাকস যখন প্রথম তাদের মুখোমুখি হয় তখন সেগুলি সংজ্ঞায়িত করা হয় না, সুতরাং Symbol's value as variable is voidবার্তাটি।
ইজিজড

11

আরও সহজ বিকল্প রয়েছে: ইনলাইন উত্স ব্লকগুলি ব্যবহার করুন :

src_python{hello'}

এটি উদ্ধৃতি চিহ্নগুলির মতো অক্ষরগুলির জন্য সমস্যা ছাড়াই কাজ করে এবং এটি ইনলাইন কোডের জন্য সিনট্যাক্স হাইলাইট সরবরাহ করে।

রফতানির সময় ইনলাইন উত্স কোড অন্তর্ভুক্ত করতে, আপনি এই ঘোষণাটি শিরোনামে যুক্ত করতে চাইবেন:

#+PROPERTY: header-args :exports code

1
এটি একটি মহান টিপ! ইনলাইন কোডের জন্য সিনট্যাক্স হাইলাইট করতে পেরে খুব সুন্দর!
শন

এটা অসাধারণ! এটি আমাকে
লেটেক্সকে

7

আপনি org-emphasis-regexp-componentsএই ব্লগ পোস্টে @ মালবারবা দ্বারা বর্ণিত উদ্ধৃতি চরিত্রগুলি মুছে ফেলতে পারেন ।

পোস্ট থেকে প্রাসঙ্গিক কোড:

;; This HAS to come before (require 'org)
(setq org-emphasis-regexp-components
      '("     ('\"{“”"
        "-   .,!?;''“”\")}/\\“”"
        "    \r\n,"
        "."
        1))

এর জন্য ডক স্ট্রিংটি দেখুন org-emphasis-regexp-components: ডিফল্টরূপে উদ্ধৃতি অক্ষর বিবেচনা করা হয়:

সীমানা - অক্ষরগুলি সীমান্ত অক্ষর হিসাবে নিষিদ্ধ

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.