Э-э-э, куда вывести-то? В REPL? Тогда лучше используй какой-нибудь пакет для вывода таблиц в ascii для Common Lisp либо свой напиши. Сходу не скажу сейчас, что лучше взять — поищи.
Хотя таблицу можно вывести по хуку, наверное. table-capture может помочь в этом случае.
пока что да. Сейчас я использую format, принципе пока устраивает, т.е. плевать на table package from emacs, но совсем скоро надо будет это дело распечатывать.
Я понимаю что table-... не лучший выход, но мне нравится как он делает таблицы.
>пока что да. Сейчас я использую format, принципе пока устраивает, т.е. плевать на table package from emacs, но совсем скоро надо будет это дело распечатывать.
А какие проблемы с распечаткой-то?
Я понимаю что table-... не лучший выход, но мне нравится как он делает таблицы.
А мне не до конца. У table-mode слишком упрощенная модель ячейки: есть значки пересечения (по умолчанию '+' в любом месте), горизонтальная линия (по умолчанию '-' в любом месте) и вертикальная линия (по умолчанию '|' в любом месте). Хотелось бы иметь более разухабистую модель, чтобы можно было псевдографикой таблицы рисовать, т. е. должно быть: «вертикальное пересечение у края слева» (┤), «пересечение у края справа» (├), углы (┌, ┘, ┐, └), горизонтальные пересечения (┴, ┬) и просто пересечение (┼). Модель более сложная, чем та, что в table-mode и потребует полной переделки кода.
а мне жутко нравится, да и условию задачи такой вид вполне устраивает. Если есть какой нибудь простой способ вогнать свои данные в эту таблицу, я буду счастлив.
Ну тут вариантов масса же есть. Вариант с table-mode не самый удобный. По-моему, тут изображена обычная таблица без объединенных и разбитых ячеек. format из CL вполне решает задачку. А потом уже можно и печатать. Если нужно более красивую таблицу, то можно сгенерировать ASCII-таблицу, LaTeX-код, groff-код (макропакет tbl выдаст таблицу в ASCII, совместимую c table-mode — можно будет правку осуществить интерактивно), ODF и подобное. Причем это совершенно быстро можно сделать самостоятельно без поиска каких-то библиотек, так как элементарно все.
Передача вывода в emacs из REPL в рамках SLIME с целью рисовать таблицу — это не лучший вариант и по сложности, и по способу решения. Все-таки table-mode — это больше интерактивное средство для создания таблиц, нежели удачный способ их рендеринга по набору данных, хотя и такое возможно с некоторыми ограничениями: table-capture выбирает фиксированную ширину столбцов и выравнивание для всех данных, и указать для каждого столбца отдельно ничего нельзя. Автоматический расчет ширины столбцов невозможен.
Есть вариант поиграться с table-insert-* и table-forward-cell с целью последовательного заполнения ячеек. И это потребует код на Emacs Lisp, который будет выяснять по набору данных, что и куда засовывать, а также выравнивание выставлять, если будешь набор данных сопровождать такой информацией.
table-capture выбирает фиксированную ширину столбцов и выравнивание для всех данных, и указать для каждого столбца отдельно ничего нельзя. Автоматический расчет ширины столбцов невозможен.
Нет, наврал. Он вычисляет ширину. Это ему минимальная выставляется глобально. Можно в 1 выставить. А вот выравнивание — одно на все столбцы. Надо посмотреть, нельзя ли вручную выравнивать, добивая пробелами.
Нет, не наврал. Если несколько слов в одном поле, то он не вычисляет нифига. Переносит слово (и правильно делает). Ширина колонки все-таки не задается. Ее можно выставить уже после отрисовки таблицы.