ইনডেন্টেশন না ভেঙে আমি কীভাবে লেটেক্স মোডে [0,1) লিখতে পারি?


9

লাটেক্স ব্যবহার করে লেখার সময় latex-mode, আমি প্রায়শই আমার পাঠ্যে "অর্ধ-খোলা অন্তর" লিখতে চাই। উদাহরণস্বরূপ, [0,1)যা xদিয়ে সমস্ত সংখ্যার সেটকে বোঝায় 0 <= x < 1

দুর্ভাগ্যক্রমে, এই "ভারসাম্যহীন সীমানারগুলি" ইনডেন্টেশন পার্সারটিকে বিভ্রান্ত বলে মনে হচ্ছে, যার ফলে নিম্নলিখিত পাঠ্যটি অনুপযুক্তভাবে অনন্তরিত হয়, সাধারণত ডানদিকে চলে যায়।

এখানে একটি উদাহরণ নথি। নীচের পাঠ্যটি করার পরে ফলাফল C-x h M-x indent-region। সঠিক আচরণটি হ'ল উভয় অনুচ্ছেদকে 0 টি স্পেস দ্বারা ইন্টেন্ট করা হবে।

\documentclass{article}
\begin{document}

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam volutpat
at dui et mattis. Here is a half open interval $[0,1)$.  Proin
  fringilla lectus nec mi tincidunt aliquet. Vestibulum fermentum eu
  neque id egestas. Here is another $[1,2)$.  Nullam et lectus
    convallis, placerat neque non, vehicula nisi.  Fusce imperdiet
    dignissim ante, eget fringilla nisi.

    Integer fermentum nunc eget purus molestie commodo. Integer
    tristique tincidunt odio, vel rutrum diam commodo quis. Fusce a
    aliquet quam. Cras suscipit est et nisl sollicitudin
    iaculis. Aliquam erat volutpat. Phasellus sapien arcu, aliquet ut
    hendrerit in, lobortis nec ante.

\end{document}

বর্তমানে আমি একটি কুরুচিপূর্ণ হ্যাক দিয়ে এটিকে ঘিরে কাজ করছি: আমি একটি ল্যাটেক্স ম্যাক্রো সংজ্ঞায়িত করি যা কিছুতেই প্রসারিত হয় না এবং এই ম্যাক্রোর অনুরোধের ভিতরে "ম্যাচিং" ডিলিমেটারগুলি লিখি। এটি সূচকটি সিঙ্কে ফিরে আসে।

\documentclass{article}
\newcommand{\ugh}[1]{}
\begin{document}
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam volutpat
at dui et mattis. Here is a half open interval $[0,1)$.  Proin
  fringilla lectus nec mi tincidunt aliquet. Vestibulum fermentum eu
  neque id egestas. \ugh{(]} Now on the next line we are back in sync.
Nullam et lectus convallis, placerat neque non, vehicula nisi.  Fusce
imperdiet dignissim ante, eget fringilla nisi.
\end{document}

তবে এটি সত্যই অপ্রীতিকর। এর চেয়ে ভাল সমাধান কি আছে?

আমি জিএনইউ ইম্যাক্স ব্যবহার করছি 24.4.1।


3
আপনার প্রশ্নের উত্তর দিচ্ছেন না, তবে আপনি কি অ্যাকটেক্সকে একবার চেষ্টা করার কথা বিবেচনা করেছেন? এটি এই ক্ষুদ্র বাগটি থেকে ভোগে না, একটির জন্য।
জিওর্ডানো

@ জিওর্ডানো: আমি এটা দেখেছি। এর ডিফল্ট আচরণটি আমি যা চাই তার চেয়ে অনেক বেশি ভারী। আমি কোডের মতো ল্যাটেক্স সম্পাদনা করতে পছন্দ করি এবং আমি সত্যই WYSIWYG- স্টাইলে ইনডিটর রেন্ডারিং চাই না। সম্ভবত এটি সমস্ত বন্ধ করা এবং একটি টেক্সট সম্পাদকের অভিজ্ঞতা থাকতে পারে তবে এটি এখনও অ্যাকটেক্সকে ওভারকিলের মতো দেখায়।
নেট এল্ডারেজ

6
আপনি কোন WYSIWYG- এর মতো আচরণের কথা উল্লেখ করছেন? কেবলমাত্র এ জাতীয় বৈশিষ্ট্যগুলি পূর্বরূপ এবং ভাঁজ-মোড এবং এগুলির কোনওটিই ডিফল্টরূপে সক্রিয় নয় (অ্যাকটিএক্স ব্যবহার করার জন্য আপনাকে প্রাসঙ্গিক প্যাকেজগুলি লোড করার প্রয়োজন নেই)। অ্যাক্টেক্স এবং ভ্যানিলা * টেক্স মোডের মধ্যে প্রধান পার্থক্য হ'ল ম্যাক্রোগুলি এবং পরিবেশ সন্নিবেশ করার সময় অনেক বেশি উচ্চতর স্বয়ংক্রিয়ায়নের প্রক্রিয়া। আপনি যদি স্বতঃপূরণকে মূল্য দেন তবে অ্যাকটেক্স যাবার উপায়। উপরন্তু, অ্যাকটেক্সে আপনাকে সর্বদা * টেক্স কোড সম্পাদনা করতে হবে, অন্য কোনও সম্ভাবনা নেই, আপনার কেন এই ভুল ধারণা ছিল তা আমি জানি না।
জিওরদানো

উত্তর:


7

কোনও ইমাক্স সমাধান নয়, তবে আমার লটেক্স কোডটি \halfopen{0}{1}যেখানে অন্তর অন্তরগুলি লিখেছে

\newcommand\halfopen[2]{\ensuremath{[#1,#2)}}

এই সম্মেলনটি ভারসাম্যপূর্ণ সমস্যাটিকে এমন জায়গায় ঠেলে দেয় যেখানে সমস্যা হওয়ার সম্ভাবনা কম। এবং এটি অনুসন্ধানযোগ্য :-)


2
আপনি কি জন্য ব্যবহার করবেন (0,1]?
অ্যান্ড্রু সোয়ান

@ অ্যান্ড্রু-সোয়ান সম্ভবত \openhalfহিহেহে
ডক্স

@ অ্যান্ড্রুসওয়ান\halfclosed
নর্মন রামসে

2

খাঁজ ফাংশন latex-indentএর latex-modeসেট সিনট্যাক্স-টেবিল tex-latex-indent-syntax-tableএবং কলের latex-find-indentপালা কল যা latex-backward-sexp-1

বাক্য গঠন প্রণালী ?\(?\)সেট করা হয় ".", যা "যতিচিহ্ন" জন্য দাঁড়িয়েছে। সুতরাং এটি আর কোনও সীমানাবিহীন নয়।

অতএব, মত এক্সপ্রেশন [0,1)একটি মধ্যে ফলাফলের scan-errorমধ্যে latex-backward-sexp-1যা অপ্রত্যাশিত আচরণের দিকে নিয়ে যায়।

আপনি আপনার init ফাইলটিতে নিম্নলিখিতগুলি যুক্ত করে এড়াতে পারবেন:

(eval-after-load "tex-mode"
    '(progn (modify-syntax-entry ?\( "()" tex-latex-indent-syntax-table)
             (modify-syntax-entry ?\) ")(" tex-latex-indent-syntax-table)))

তবে, আমি যেহেতু ব্যবহার করি সেহেতু এই সেটিংটির নেতিবাচক পরিণতিগুলি আমি জানি না auctex। সুতরাং, সবচেয়ে খারাপ আশা ;-)।

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