J'ai une colonne dans une table en mode organisation avec des nombres dans chaque cellule. Je voudrais changer la couleur d'arrière-plan de la cellule en rouge si le nombre est inférieur à 1 ou supérieur à 2.
Comment puis je faire ça?
org-table
formatting
formula
Trevoke
la source
la source
org-table-edit-formulas
aliasC-c '
etorg-table-toggle-coordinate-overlays
aliasC-c }
fournissent des indices sur la façon de mettre en œuvre ce type de mettre en évidence fonction. Peut-être qu'un gourou elisp vous fournira quelques conseils ou exemples supplémentaires.Réponses:
J'ai obtenu une mise en forme de table entière pour travailler avec certains Elisp:
Une formule est évaluée pour le contenu des cellules et convertie en une couleur à l'aide d'un dégradé.
Fichier org avec code:
la source
cs/itpl
effectue une simple interpolation linéaire et l'cs/gradient
utilise pour interpoler une couleur à l'aide d'une liste de points de données et d'arrêts de couleur. De là, il ajoute simplement une superposition comme dans votre réponse. L'exemple est un peu non trivial car il consulte les données d'ailleurs dans le tableau.org-table-map-tables
.L'utilisation d'une superposition est la façon dont je vais vouloir le faire. Je peux me connecter à org-ctrl-c-ctrl-c-hook. Cela signifie que je peux appuyer sur Cc Cc pour exécuter la vérification.
Je dois vérifier correctement que je suis dans une table et l'exécuter pour toutes les cellules.
Ensuite, j'ai probablement besoin de me connecter à la fonction d'alignement pour refaire les superpositions ou au moins les effacer.
Ce code rendra l'arrière-plan de la cellule rouge pour la cellule dans laquelle je suis si la valeur est inférieure à 1 ou supérieure à 2 lorsque j'appuie sur Cc Cc ... Mais il est toujours bogué et effacera les superpositions si l'un d'eux ne le fait pas '' t correspondre aux règles.
la source
Ce n'est pas encore une réponse mais je veux garder une trace des choses que je découvre ici, car elles peuvent donner une idée à quelqu'un d'autre.
Il est possible de modifier conditionnellement la valeur de la cellule elle-même - :
Nous pouvons créer une fonction de mise en forme dans elisp puis l'appeler à partir de la ligne de formule:
Et il peut être utilisé comme ceci:
Je pense que ce que je veux peut nécessiter la création d'une superposition.
la source
Emacs fournit la fonction
hi-lock-face-buffer
M-s h rqui met en évidence une expression régulière dans le tampon lors de la frappe.Tout ce dont nous avons besoin est une expression régulière qui correspond à tout nombre qui n'est pas 1 ou 2 et qui se trouve dans la cellule d'un tableau. Essaye ça:
(Vous pouvez rappeler les expressions précédentes avec M-net M-p.)
la source