সাহসী ফন্টিফিকেশন রোধ করতে আমি কীভাবে * org- মোডে পালাতে পারি


12

আমি যদি *shrug*org মোডের মতো কিছু লিখি তবে এটি স্বয়ংক্রিয়ভাবে সাহসী পাঠ্য হিসাবে সজ্জিত হবে । আমি কীভাবে এটি রোধ করতে পারি, যেমন *shrug*রফতানির সময় আসলে ভারব্যাটিম উপস্থিত হয়?

সম্পাদনা:

আমি এখনও সাহসী ফন্টিফিকেশন (বোল্ড টেক্সটের জন্য ডিফল্ট স্টার-সিনট্যাক্স পরিবর্তন না করে) ব্যবহার করতে সক্ষম হতে চাই এবং আমার org ফাইলটি কোন ফর্ম্যাট রফতানি হবে তা বিবেচনা করা উচিত নয়, উদাহরণস্বরূপ এটি মার্কডাউনের পাশাপাশি HTML এর জন্য কাজ করা উচিত রপ্তানি।

এটি কিছু গুরুত্বপূর্ণ জিনিস, এ কারণেই এটি গা bold়ভাবে লেখা হয়। তবে অন্য কিছুর জন্য আমার কোনও আইডিয়া * শ্রাগ * নেই।


1
আপনি পরে লেটেক্ এই রপ্তানি হয়, আপনি চেষ্টা করে দেখতে পারেন \ast{}shrug\ast{}অথবা \star{}shrug\star{}, অনুরূপ, এইচটিএমএল সঙ্গে আপনি সত্তা এনকোডিং ব্যবহার করতে পারে: &#2a;, অথবা যদি আগে বা তারকাচিহ্ন পর স্পেস যোগ করার সময় একটি বিকল্প হয়, যে খুব কাজ করে।
wvxvw

দেখে মনে হচ্ছে সুবায়ুর উত্তরটি কেবল ভারব্যাটিম চিহ্নিতকারীগুলিতে মুড়িয়ে দেওয়ার জন্য আপনি যা চান তা হ'ল। বিকল্পভাবে, আপনি org- জোর-তালিকাকে সংশোধন করতে পারেন যাতে অন্য অক্ষরটি সাহসী পাঠ্যের জন্য ব্যবহৃত হয়।
ব্যবহারকারী2699

বেপারটা এমন না. = * শ্রাগ * = এর ফলে রফতানি হওয়া এইচটিএমএল-এ- codeট্যাগে মোড়ানো হবে এবং মার্কডাউন-এ ব্যাকটিক রয়েছে। আমি চাই যে এটি কোনওভাবেই বিন্যাসিত না হয়।
টিমোর

Org- জোর-তালিকাগুলি পরিবর্তিত করার জন্য সম্পাদিত প্রশ্নটি আসলে কোনও বিকল্প নয়। আমার .org ফাইলে ইতিমধ্যে বিদ্যমান এমন গা bold় সব কিছুই আমি পরিবর্তন করতে চাই না।
টিমোর

2
\ast{}shrug\ast{}Wvxvw দ্বারা উল্লিখিত সম্ভবত আপনার সেরা বিকল্প। এটি যথাযথ অক্ষর সত্তা ব্যবহার করে ∗shrug∗হিসাবে এইচটিএমএল এবং ল্যাটেক্সে রফতানি $\ast$shrug$\ast$করে। org-toggle-pretty-entitiesorg বাফারগুলিতে তাদের UTF8 অক্ষর হিসাবে প্রদর্শন করে।
mutbuerger

উত্তর:


9

এই উত্তরটি ইমাস-অরগ-মোড জিএনইউ তালিকার সম্মিলিত পরামর্শের পরে শূন্য প্রস্থের অক্ষরের পরিবর্তে org-entity( C-h i g (org) Special symbols) যা আমি আমার অন্যান্য উত্তরে প্রস্তাব দিয়েছি ) ব্যবহার করার জন্য অনুপ্রাণিত হয়েছি\ast{}

নীচে একটি জেনেরিক সমাধান রয়েছে যেখানে ব্যবহারকারীর বিভিন্ন চিহ্নের জন্য org সত্তাগুলি মনে রাখার দরকার নেই। এটি ব্যবহারকারী যখন করে তখন org সত্তা সন্নিবেশ করে (যদি উপলভ্য থাকে) C-u SYMBOL; কাজ করার জন্য C-u *, C-u /, C-u =, ইত্যাদি

(defun modi/org-entity-get-name (char)
  "Return the entity name for CHAR. For example, return \"ast\" for *."
  (let ((ll (append org-entities-user
                    org-entities))
        e name utf8)
    (catch 'break
      (while ll
        (setq e (pop ll))
        (when (not (stringp e))
          (setq utf8 (nth 6 e))
          (when (string= char utf8)
            (setq name (car e))
            (throw 'break name)))))))

(defun modi/org-insert-org-entity-maybe (&rest args)
  "When the universal prefix C-u is used before entering any character,
    insert the character's `org-entity' name if available.

    If C-u prefix is not used and if `org-entity' name is not available, the
    returned value `entity-name' will be nil."
  ;; It would be fine to use just (this-command-keys) instead of
  ;; (substring (this-command-keys) -1) below in emacs 25+.
  ;; But if the user pressed "C-u *", then
  ;;  - in emacs 24.5, (this-command-keys) would return "^U*", and
  ;;  - in emacs 25.x, (this-command-keys) would return "*".
  ;; But in both versions, (substring (this-command-keys) -1) will return
  ;; "*", which is what we want.
  ;; http://thread.gmane.org/gmane.emacs.orgmode/106974/focus=106996
  (let ((pressed-key (substring (this-command-keys) -1))
        entity-name)
    (when (and (listp args) (eq 4 (car args)))
      (setq entity-name (modi/org-entity-get-name pressed-key))
      (when entity-name
        (setq entity-name (concat "\\" entity-name "{}"))
        (insert entity-name)
        (message (concat "Inserted `org-entity' "
                         (propertize entity-name
                                     'face 'font-lock-function-name-face)
                         " for the symbol "
                         (propertize pressed-key
                                     'face 'font-lock-function-name-face)
                         "."))))
    entity-name))

;; Run `org-self-insert-command' only if `modi/org-insert-org-entity-maybe'
;; returns nil.
(advice-add 'org-self-insert-command :before-until #'modi/org-insert-org-entity-maybe)

সুতরাং যখন ব্যবহারকারী টাইপ করেন C-u *, \ast{}sertedোকানো হয় এবং নীচের বার্তাটি প্রতিধ্বনি অঞ্চলে প্রদর্শিত হয়,

প্রতীক * এর জন্য 'org- সত্তা' \ অ্যাস্ট {। .োকানো হয়েছে।

যদি উপরে org-pretty-entitiesসেট করা থাকে tতবে serted োকানো হিসাবে প্রদর্শিত\ast{} হবে ।*

একটি এমন org-entityএকটি অক্ষর জন্য বিদ্যমান নয় এক্স এবং ব্যবহারকারী হলে C-u এক্স , এক্স কেবল 4 বার ঢোকানো হয় (যেমন C-uসাধারণত কি হবে)।


1
এটি দেখতে খুব সুবিধাজনক looks একটি ড্রাবাব্যাক (আমার মতে) যেটি রয়ে গেছে তা হ'ল .org ফাইলটিতে এখন পর্যন্ত কোনও ল্যাটেক্স কনস্ট্রাক্টস নেই, এখন পুরো ফাইল জুড়ে নন-অর্গ-মোড সিনট্যাক্স (ল্যাটেক্স) বিট রয়েছে has যাইহোক, এর মতো কোনও নির্মাণের কোনও কারণ \*thisisnotbold\*নেই কি?
টিমোর

1
এটি org সিনট্যাক্সও। org-entitiesডকুমেন্টেশন পরীক্ষা করে দেখুন ।
দক্ষ মোদী

8

জিরো প্রশস্ত স্পেস ইউনিকোড চর ব্যবহার করে

প্রথম নক্ষত্রের আগে বা দ্বিতীয় নক্ষত্রের পরে শূন্য-প্রস্থের স্থান অক্ষর (নীচে স্নিপেটগুলিতে [ZWS] দ্বারা নির্দেশিত) যোগ করে আপনি সাহসী জোরকে পার্সিংয়ে ব্যর্থ করতে পারেন।

নীচের দুটি স্নিপেটই আমার পরীক্ষায় এইচটিএমএলকে সূক্ষ্ম রফতানি করেছে:

  • [জেডডব্লিউএস] প্রথম তারকাচিহ্নের আগে

    This is some *bold* test and this is ​[ZWS]*not bold*.
    
  • [জেডডব্লিউএস] দ্বিতীয় তারকাচিহ্নের পরে

    This is some *bold* test and this is *not bold*​[ZWS].
    

আপনি জিরো প্রশস্ত স্পেসে প্রবেশ করতে পারেন (ইউনিকোড নাম) করে C-x 8 RET 200b RET
আমি এটি প্রায়শই ব্যবহার করি, তাই আমি এটির সাথে আবদ্ধC-x 8 0


হালনাগাদ

অনুযায়ী Emacs-সংস্থা-মোড মেইলিং লিস্টে আলোচনা , পলায়নপর বাঞ্ছনীয় নয় জন্য নন- ASCII অক্ষর ব্যবহার করা; পরিবর্তে org-entitiesপ্রযোজ্য ক্ষেত্রে ব্যবহার করা উচিত। আমিও এটির সাথে একমত হয়েছি এবং এটির সাথে আরও একটি সমাধান নিয়ে এসেছি যা সন্নিবেশ করা org-entitiesসত্যিই সহজ করে ( C-u *এই ক্ষেত্রে)।


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

@ টিমোর আমি emacs-orgmode@gnu.orgমেলিং তালিকায় এই আলোচনাটি নিয়ে এসেছি । আগ্রহী হলে আপনি এখানে আলোচনাটি অনুসরণ করতে / যুক্ত করতে পারেন ।
দক্ষ মোদী

@ টিমোর, এটি সুস্পষ্ট নয়, তবে এখানে প্রদত্ত সমস্ত সমাধানগুলির মধ্যে কেবলমাত্র ইম্যাকস কনফিগারেশনটি পরিবর্তন না করেই এটি কাজ করে, তাই আপনি যদি আপনার ফাইলগুলি ভাগ করতে চান তবে এটি সর্বাধিক সুস্পষ্ট।
ব্যবহারকারী2699

@ user2699 FWIW, ফাইলগুলিতে org সত্ত্বাগুলি ব্যবহার কোনও ব্যবহারকারী কনফিগারেশন ছাড়াই তাত্ক্ষণিকভাবে কাজ করবে .. এটি কেবল \ast{}ফাইলগুলিতে সাদামাটা আসকি ব্যবহার । আমার অন্যান্য সমাধানটি সহজেই \ast{}মনে রাখা সহজ এবং দ্রুত প্রবেশ করাতে সক্ষম করে।
দক্ষ মোদী

3

ভারব্যাটিম দ্বারা, আপনি যদি আসলে রফতানি করা ল্যাটেক্সে কিছু মার্কআপ ব্যবহার করেন তবে আপনি কেবল ব্যবহার করতে পারেন =*shrug*=। তবে আপনি যদি এটির হিসাবে কেবল রফতানি *shrug*করতে চান এবং আপনি সর্বদা এটি করতে চান তবে আমি ফিল্টারগুলির পরামর্শ দেব । তবে, আপনার কেবলমাত্র কয়েকটি উদাহরণের জন্য এটি প্রয়োজন *shrug*, আপনার @Wvxvw দ্বারা প্রস্তাবিত বিকল্পটি ব্যবহার করা উচিত। আপনি ম্যাক্রোগুলি ব্যবহার করে পরিষ্কারভাবে এটি করতে পারেন । কিছু উদাহরণ অনুসরণ।

ফিল্টার

(defun my-bold (contents backend info)
  (when (org-export-derived-backend-p backend 'latex)
    (replace-regexp-in-string "\\`\\\\textbf{\\(.+\\)}"
                              "\\\\ast{}\\1\\\\ast{}" contents)))

(add-to-list 'org-export-filter-bold-functions 'my-bold)

মূলত উপরের ফিল্টারটি \textbf{..}ট্রান্সকোডড স্ট্রিংয়ের মার্কআপের সন্ধান করে এবং \ast{}..\ast{}ভিতরে যা মোড়ানো ছিল তা পরিবর্তন না করে এটিকে প্রতিস্থাপন করে {..}। আমি নিয়মিত প্রকাশ এবং প্রতিস্থাপনের স্ট্রিং পরীক্ষা করিনি, সুতরাং ভুল হতে পারে তবে আপনি ধারণাটি পেয়ে যান। একইভাবে অন্যান্য ব্যাকএন্ডগুলি কভার করার জন্য, কেউ এর মতো অতিরিক্ত স্নিপেটগুলি অন্তর্ভুক্ত করতে পারে:

(when (org-export-derived-backend-p backend 'html)
   (replace-regexp-in-string "<b>\\(.+\\)</b>" "\&#2a;\\1\&#2a;" contents))

উপরের নিয়মিত প্রকাশের জন্য একই ক্যাভিয়েট ধারন করে।

ম্যাক্রো

সংগঠনের উত্স:

#+macro: nobold @@latex:\ast{}$1\ast{}@@ @@html:&#2a;$1&#2a;@@

This text is *bold* this is nobold{{{not}}}

ল্যাটেক্সে রফতানি হিসাবে:

This text is \textbf{bold} this is \ast{}not\ast{}

এবং এইচটিএমএল হিসাবে:

This text is <b>bold</b> this is  &#2a;not&#2a;

আপনি অবশ্যই ম্যাক্রোটিতে যতগুলি ব্যাকেন্ড চান তা যুক্ত করতে পারেন।

সম্পাদনা: মন্তব্যে কাউশাল উল্লেখ করার সাথে সাথে ল্যাটেক্সের রফতানি স্নিপেট এক্ষেত্রে isচ্ছিক। যাইহোক আমি যখনই খালি ক্ষীর জড়িত তখন আমি সেগুলি ব্যবহার করতে পছন্দ করি, যেহেতু org-entitiesorg উত্সে খালি ল্যাটেক্স শনাক্ত করার পিছনে সুনির্দিষ্ট বিধিগুলির তালিকা এবং তালিকাকে রাখা আমার পক্ষে কঠিন rather

বিঃদ্রঃ:

  • ফিল্টার উদাহরণগুলি অপরিশোধিত,
  • আমি কোনও কিছুই জানি না HTML, সুতরাং সংশ্লিষ্ট বিটগুলিতে কিছু ভুল থাকতে পারে।

এই ম্যাক্রো সংজ্ঞা চলা উচিত: #+macro: nobold \ast{}$1\ast{}? astসদস্যদের অন্যতম org-entitiesতালিকা, যে নির্দিষ্ট করে কি ক্ষীর, HTML, ASCII, ইত্যাদি রপ্তানি মত হওয়া উচিত: ("ast" "\\ast" t "&lowast;" "*" "*" "*")। এই তালিকার উপাদানের ক্রম হ'ল "নাম, ল্যাটেক্স রিপ্লেসমেন্ট, ল্যাটেক্স ম্যাথপ, এইচটিএমএল রিপ্লেসমেন্ট, এএসসিআই প্রতিস্থাপন, লাতিন 1 রিপ্লেসমেন্ট, ইউটিএফ -8 প্রতিস্থাপন"।
কুশল মোদী

@ কৈশালমোদি হ্যাঁ এটি হ'ল, তবে যেহেতু আমরা ইতিমধ্যে জানি যে এটি ল্যাটেক্স, তাই এটি কোনও ল্যাটেক্স স্নিপেটের ভিতরে রাখার কোনও ক্ষতি নেই। আমার অভিজ্ঞতায় স্নিপেটগুলি ব্যবহার করা তার দৃ rob়তার কারণে আরও বেশি শক্ত।
কোয়ার্কি

-1

এটি ভেরিয়েবল org- জোর-অ্যালিস্ট দ্বারা নিয়ন্ত্রিত হয় এবং সহজেই পরিবর্তন করা যায়।

  • পাঠ্য বোল্ড করতে উপর রাখুন বিন্দু, ব্যবহার কমান্ড কি-কার্সার অবস্থানে রয়েছে এমন C-u C-x =মুখ খুঁজে পেতে, নোট এটা সম্পত্তি আছে org-emphasis
  • customize-groupOrg- জোরের জন্য কল করুন এবং অনুসন্ধান করুন
  • পাঠ্য চিহ্নিত করার জন্য বিভিন্ন বিকল্প সহ org-जोर-তালিকাগুলি প্রদর্শিত হবে।
  • * এর সাথে সম্পর্কিত এন্ট্রি মুছুন
  • পরিবর্তনগুলি প্রয়োগ করুন, এবং org- মোড বা emacs পুনরায় চালু করুন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.