組織モードの番号付きリストのテキストの配置?


13

Q:org-mode番号付きリストにゼロを追加する方法はありますか?

番号付きリストのテキストの配置は、数字が2桁になると不快に見え始めます。

* A numbered list

  1. Item 1
  2. Item 2
  3. Item 3
  4. Item 4
  5. Item 5
  6. Item 6
  7. Item 7
  8. Item 8
  9. Item 9
  10. Item 10   # ah, my eyes!

プレーンリストorg-modeマニュアルには、次のように記載されています。

同じリストに属するアイテムは、最初の行に同じインデントが必要です。特に、順序付きリストが番号「10.」に達した場合、2桁の番号はリスト内の他の番号と左揃えで記述する必要があります。アイテムは次の行の前で終了します。次の行は、行頭記号/番号よりも小さいか、またはインデントされています。

したがってorg-mode、数字を左揃えにする必要があるようです。そのため、1桁のアイテムにゼロを追加して、テキストを適切に揃えることができるかどうか疑問に思っています。

* A zero-padded numbered list

  01. Item 1
  02. Item 2
  03. Item 3
  04. Item 4
  05. Item 5
  06. Item 6
  07. Item 7
  08. Item 8
  09. Item 9
  10. Item 10   # much better!

好奇心から、リストにゼロを手動で入力してを押してみましたC-c C-c

だから:番号付きリストにゼロを追加するよう説得org-modeする方法はありますか?

(注:このSOスレッドに触発された質問。)

回答:


10

次のdiff org-list.elがトリックを行います!

diff --git a/lisp/org-list.el b/lisp/org-list.el
index b1d47c9..509e79f 100644
--- a/lisp/org-list.el
+++ b/lisp/org-list.el
@@ -1641,7 +1641,8 @@ as returned by `org-list-prevs-alist'."
      ;; Num bullet: increment it.
      ((string-match "[0-9]+" bullet)
       (replace-match
-       (number-to-string (1+ (string-to-number (match-string 0 bullet))))
+       (format (format "%%0%dd" (length (match-string 0 bullet)))
+          (1+ (string-to-number (match-string 0 bullet))))
        nil nil bullet))
      ;; Alpha bullet: increment it.
      ((string-match "[A-Za-z]" bullet)
@@ -1715,7 +1716,7 @@ This function modifies STRUCT."
          (replace-match "a" nil nil bullet))
         ;; First bullet is num: use "1".
         ((string-match "\\([0-9]+\\|[A-Za-z]\\)" bullet)
-         (replace-match "1" nil nil bullet))
+         (replace-match (format (format "%%0%dd" (1+ (log (length struct) 10))) 1) nil nil bullet))
         ;; Not an ordered list: keep bullet.
         (t bullet)))))))))
     (mapc fix-bul (mapcar 'car struct))))

最初のチャンクパッチorg-list-inc-bullet-maybeは、最初のアイテムで使用されているパディングを保持するように機能します。2番目のチャンクパッチorg-list-struct-fix-bulは、リスト内の要素の数に基づいてパディングを計算するように機能 します。


2
いいね!組織モードの開発者に(できれば切り替えオプションを付けて)それを送信できたら素晴らしいと思います。
セントアードヴァークザカーペット
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.