LaTeX / AUCTeX আইটেমাইজ পরিবেশের আইটেমগুলি কীভাবে যুক্ত করা যায়?


17

প্রশ্ন: আমি কীভাবে লটেক্স itemizeপরিবেশের "যথাযথ" ইনডেন্টেশন পেতে পারি auctex?

এখানে যেখানে আমি একটি সাথে থাকতে চাই itemএকটি ইন itemizeপরিবেশ:

  • \item লাইনের পরিবেশের শুরুর তুলনায় দুটি স্পেস ফাঁকা থাকে
  • আইটেমের ধারাবাহিকতা রেখাগুলি \itemরেখার তুলনায় অতিরিক্ত দুটি স্পেস যুক্ত হয়

এটি আমি দেখতে চাই / আশা করি:

\begin{itemize}
  \item Here's a really long item in a LaTeX itemize environment;
    note how the *initial* item line is indented two spaces, and the
    continuation lines are indented another two spaces.
\end{itemize}

যে কোনওটি LaTeX-item-indentভেরিয়েবলের সাহায্যে আইটেমের প্রাথমিক সূচকটি সামঞ্জস্য করতে পারে , যা ডিফল্ট হয় -2। এই ডিফল্ট, আমি এর অবাঞ্ছিত আচরণ পেতে \itemইন্ডেন্টযুক্ত করা হচ্ছে না, কিন্তু আমি কি করতে ধারাবাহিকতা লাইন একটি অতিরিক্ত দুই শূণ্যস্থান দ্বারা অফসেট হচ্ছে কাঙ্ক্ষিত আচরণ পাবেন:

\begin{itemize}
\item Here's a really long item in a LaTeX itemize environment;
  note how the *initial* item line is *NOT* indented two spaces,
  but the continuation lines are indented two spaces.
\end{itemize}

সেট LaTeX-item-indentথেকে 0আমার উপর পছন্দসই খাঁজ পায় \itemলাইন (দুই শূণ্যস্থান), কিন্তু নেই না আমাকে ধারাবাহিকতা লাইনের আকাঙ্ক্ষিত আচরণ দ্বিতীয়ার্ধে পেতে একটি অতিরিক্ত দুই শূণ্যস্থান দ্বারা অফসেট করা হচ্ছে:

\begin{itemize}
  \item Here's a really long item in a LaTeX itemize environment;
  note how the *initial* item line is indented two spaces, but the
  continuation lines are *NOT* indented an additional two spaces.
\end{itemize}

সুতরাং: কেউ কীভাবে উভয় পছন্দসই আচরণ পেতে পারে:

  • \itemলাইনের দুটি স্পেসের প্রাথমিক ইন্ডেন্ট এবং
  • ধারাবাহিকতায় অতিরিক্ত দুটি স্পেস ইন্টেন্টেড?

(নোট সম্পর্কিত এসও থ্রেড ।)


2
আমি কয়েক ঘন্টা ধরে এই সঠিক সমস্যাটি নিয়ে ঘোরাঘুরি করছি; আপনার প্রথম পদ্ধতিটি যদি আপনি LaTeX-indent-level4 এ সেট করেন তবে কাজ করে 4 আইটেমগুলি 4 - 2 = 2 তে ইন্ডেন্ট করা হবে এবং ধারাবাহিকতা লাইনগুলি 4 = 2 + 2 তে ইনডেন্ট হবে তবে যাইহোক, এর অর্থ এই নয় যে ফাইলটির অন্য প্রতিটি পরিবেশ যুক্ত হবে 4 (এবং 2 নয়), যা কাম্য হতে পারে বা নাও পারে। আমি বরং তারা নিজেরাই দু'জনে অভিযুক্ত হব, যেখানে আমি আটকে আছি।
সেকোড়া

আপনি LaTeX-indent-environment-listইন্ডেন্টেশনের জন্য কাস্টমাইজড এবং একটি কাস্টম ফাংশন যুক্ত করার চেষ্টা করেছিলেন ? ফাংশনটি LaTeX-indent-tabularযুক্তিসঙ্গত প্রারম্ভিক বিন্দু সরবরাহ করতে পারে (বা কোনও পরিবেশের মধ্যে স্বনির্ধারিত অন্তর্ভুক্তির কমপক্ষে যুক্তিসঙ্গত উদাহরণ)। আমি কেবল এই পরিবর্তনশীল / ফাংশন জুড়ে হোঁচট খেয়েছি, তাই আমি নিজে এটি খতিয়ে দেখার সুযোগ পাইনি।
zroth

উত্তর:


14

@ সাইকোরার মন্তব্য (setq LaTeX-item-indent -2 LaTeX-indent-level 4)প্রায় রয়েছে, তবে এর অর্থ এই যে আমরা অন্য প্রতিটি পরিবেশেও ছড়িয়ে পড়ি। সুতরাং, উদাহরণস্বরূপ, আমাদের আরও রয়েছে:

\begin{abstract}
    This indents to the 4th column, which is way too far!
\end{abstract}

নিম্নলিখিত ফাংশনটি তাসিলো হর্ন থেকে একটি পুরানো (এবং আপাতদৃষ্টিতে ভাঙা?) কোড স্নিপেট তৈরি করে । নেস্টেড পরিবেশ সহ এটি ইন্ডেন্টেশন সঠিকভাবে পায়। এটি বুট করার জন্য itemize, enumerateএবং descriptionপরিবেশের জন্য কাজ করে :

(defun LaTeX-indent-item ()
  "Provide proper indentation for LaTeX \"itemize\",\"enumerate\", and
\"description\" environments.

  \"\\item\" is indented `LaTeX-indent-level' spaces relative to
  the the beginning of the environment.

  Continuation lines are indented either twice
  `LaTeX-indent-level', or `LaTeX-indent-level-item-continuation'
  if the latter is bound."
  (save-match-data
    (let* ((offset LaTeX-indent-level)
           (contin (or (and (boundp 'LaTeX-indent-level-item-continuation)
                            LaTeX-indent-level-item-continuation)
                       (* 2 LaTeX-indent-level)))
           (re-beg "\\\\begin{")
           (re-end "\\\\end{")
           (re-env "\\(itemize\\|\\enumerate\\|description\\)")
           (indent (save-excursion
                     (when (looking-at (concat re-beg re-env "}"))
                       (end-of-line))
                     (LaTeX-find-matching-begin)
                     (current-column))))
      (cond ((looking-at (concat re-beg re-env "}"))
             (or (save-excursion
                   (beginning-of-line)
                   (ignore-errors
                     (LaTeX-find-matching-begin)
                     (+ (current-column)
                        (if (looking-at (concat re-beg re-env "}"))
                            contin
                          offset))))
                 indent))
             ((looking-at (concat re-end re-env "}"))
              indent)
            ((looking-at "\\\\item")
             (+ offset indent))
            (t
             (+ contin indent))))))

(defcustom LaTeX-indent-level-item-continuation 4
  "*Indentation of continuation lines for items in itemize-like
environments."
  :group 'LaTeX-indentation
  :type 'integer)

(eval-after-load "latex"
  '(setq LaTeX-indent-environment-list
         (nconc '(("itemize" LaTeX-indent-item)
                  ("enumerate" LaTeX-indent-item)
                  ("description" LaTeX-indent-item))
                LaTeX-indent-environment-list)))

আমি সাহায্য করতে পারি না তবে অনুভব করতে পারি যে আমি খুব সাধারণ সেটিংটি মিস করছি যা আমি মিস করছি এবং এটি রুবে গোল্ডবার্গ সংস্করণ। তবুও, এটি কাজ করে, এবং এটি আমার চুলকানি স্ক্র্যাচ করে যা আমি বছরের পর বছর ধরে

সম্পাদনা: @ সাইকোরার মন্তব্যের জবাবে, হার্ড কোডিংয়ের জন্য আমি ফাংশনটি সংশোধন করেছি। \items এখন ইন্টেন্টেড LaTeX-indent-levelস্পেস। ধারাবাহিকতা রেখাগুলি একটি নতুন ভেরিয়েবলের মান নিতে পারে LaTeX-indent-level-item-continuationবা আপনি যদি পরবর্তীটির সাথে আবদ্ধ হতে না চান তবে এর মান দ্বিগুণ LaTeX-indent-level

যেমনটি ঘটে, বাঁধাই এবং LaTeX-indent-level-item-continuation8 এ সেট করা নান্দনিকভাবে-আনন্দদায়ক ফলাফল দেয়। আমি এমনকি এটি যেতে পারে:

\begin{itemize}
  \item Example with LaTeX-indent-level-item-continuation set to 8.
  \item Here's a really long item that will spill over onto the
        continuation line; text lines up pretty nicely this way!
        \begin{itemize} 
          \item And here's a sub-item, with the environment
                indented to the relevant continuation line.
        \end{itemize}
\end{itemize}

আমি আজ সকালে এটি দেখার জন্য কিছুটা সময় ব্যয় করেছি, তবে অন্য কিছুতে ফোকাস করা দরকার to আমি মনে করি 3060 এর লাইন latex.el- যেমন - ইনডেন্টের (+ (LaTeX-indent-calculate-last force-type) LaTeX-item-indent))স্তরে অবদান রাখছে।
আইনজীবি

আমি এটি কেবল পরীক্ষার যাত্রার জন্য নিয়েছি এবং মনে হচ্ছে এটি বেশ ভালভাবে সম্পাদন করেছে - ধন্যবাদ! যদি সম্ভব হয় তবে আপনি হার্ড-কোডেড 2 গুলি দুটি LaTeX-indent-levelবা একটি নতুন ভেরিয়েবলের সাথে প্রতিস্থাপন করতে পারেন - LateX-item-continuation-indent?
সাইকোড়া

@ সাইকোড়া: ভাল পরামর্শ! অন্তর্ভূক্ত.
ড্যান

ঘন ঘন টেক্সার হিসাবে এটি দুর্দান্ত । এটা সত্যিই আমাকে সর্বদা বগড! ধন্যবাদ :)
সান অলরেড

আপনি এখানে কোন মোড়ক মোড ব্যবহার করছেন? আমি প্রতিটি লাইন বাম দিকে ফ্লাশ পেয়েছি। I61.tinypic.com/eq8n7b.jpg
এনভাগন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.