У меня есть столбец в таблице режима организации с номерами в каждой ячейке. Я хотел бы изменить цвет фона ячейки на красный, если число меньше 1 или больше 2.
Как я могу это сделать?
org-table
formatting
formula
Trevoke
источник
источник
org-table-edit-formulas
aka,C-c '
иorg-table-toggle-coordinate-overlays
akaC-c }
предоставляют подсказки о том, как реализовать функцию подсветки этого типа. Возможно, гуру-элисп предоставит дополнительные советы или примеры.Ответы:
Я получил форматирование всей таблицы для работы с некоторыми Elisp:
Формула оценивается для содержимого ячеек и преобразуется в цвет с использованием градиента.
Org файл, включающий код:
источник
cs/itpl
выполняет простую линейную интерполяцию иcs/gradient
использует ее для интерполяции цвета с использованием списка точек данных и цветовых остановок. Оттуда, это просто добавляет наложение, как в вашем ответе. Пример немного нетривиален, так как он обращается к данным из других частей таблицы.org-table-map-tables
.Использование оверлея - вот как я хочу это делать. Я могу подключиться к org-ctrl-c-ctrl-c-hook. Это означает, что я могу нажать Cc Cc, чтобы запустить проверку.
Мне нужно правильно проверить, что я нахожусь в таблице и запустить это для всех ячеек.
Тогда мне, вероятно, нужно подключиться к функции выравнивания, чтобы либо повторить наложения, либо хотя бы очистить их.
Этот код сделает красный фон ячейки для ячейки, в которой я нахожусь, если значение меньше 1 или больше 2, когда я нажимаю Cc Cc ... Но он все еще глючит и очищает оверлеи, если один из них не ' не соответствует правилам.
источник
Это еще не ответ, но я хочу отслеживать вещи, которые я здесь открываю, поскольку они могут дать кому-то еще представление.
Можно условно изменить значение самой ячейки :
Мы можем создать функцию форматирования в elisp и затем вызвать ее из строки формулы:
И это можно использовать так:
Я думаю, что то, что я хочу, может потребовать создания наложения.
источник
Emacs предоставляет функцию,
hi-lock-face-buffer
M-s h rкоторая выделяет регулярное выражение в буфере при вводе.Все, что нам нужно, это регулярное выражение, которое соответствует любому числу, которое не равно 1 или 2 и находится в ячейке таблицы. Попробуй это:
(Вы можете вспомнить предыдущие выражения с помощью M-nи M-p.)
источник