Wie kann ich Checklistenzähler dazu bringen, Ergebnisse aus Unterüberschriften im Org-Modus zu sammeln?

Wie kann ich Checklistenzähler dazu bringen, Ergebnisse aus Unterüberschriften im Org-Modus zu sammeln?

Ich möchte so etwas im Org-Modus von Emacs machen:

* headline [%]
** subheadline1 [%]
   - [ ] list item 1
   - [ ] list item 2
** subheadline2 [%]
   - [ ] list item 1
   - [ ] list item 2

Der Zweck besteht hier darin, dass das Prozent-Cookie in der Überschrift den Gesamtprozentsatz der abgeschlossenen Aufgaben anzeigt, der aus den Prozent-Cookies seiner Unterüberschriften berechnet wird.

Wenn "subheadline1" bei40%, und "subheadline2" ist bei50%, dann sollte "Headline" bei(40 + 50) / 2 = 45% (2ist die Anzahl der Unterüberschriften).

Ist das möglich? Und wenn ja, wie?

Antwort1

Ich glaube nicht, dass das im Moment wirklich möglich ist. Kontrollkästchen behandeln ihre untergeordneten Elemente standardmäßig nur als vollständige/unvollständige Cookies. (SieheKontrollkästchen). Es besteht jedoch die Möglichkeit, org-checkbox-hierarchical-statisticsalle Kontrollkästchen in der Überschrift zu verwenden und einzuschließen, nicht nur die direkten Kinder.

Durch das Hinzufügen oder Bewerten

(setq org-checkbox-hierarchical-statistics nil)

Sie können diese Funktion (alle Kontrollkästchen im Baum rekursiv zählen) für alle Org-Dateien festlegen.

Wenn Sie es nur für bestimmte Bäume festlegen möchten, liefert die Docstring die Antwort:

org-checkbox-hierarchical-statistics is a variable defined in `org-list.el'.
Its value is t

Documentation:
Non-nil means checkbox statistics counts only the state of direct children.
When nil, all boxes below the cookie are counted.
This can be set to nil on a per-node basis using a COOKIE_DATA property
with the word "recursive" in the value.

In diesem Fall würde Ihr Beispiel lauten:

* headline [%]
:PROPERTIES:
:COOKIE_DATA: recursive
:END:
** subheadline1 [%]
   - [ ] list item 1
   - [ ] list item 2
** subheadline2 [%]
   - [ ] list item 1
   - [ ] list item 2

Um Ihr weiteres Beispiel zu verwenden:
Unterüberschrift 1 = 2/4 = 50 %
Unterüberschrift 2 = 2/5 = 45 %
Überschrift 1 = 4/9 = 44,44 %

verwandte Informationen