Gantt Chart with org-mode
Can one construct a Gantt Chart with org-mode ?
Using list with items showing the depth level
I am focused on making a style file in latex so that I can have a list where each item displays the depth level. I am getting the error \textbf #1->\ifmmode \nfss@text {\bfseries #1 }\else \hmode@bgroup \text@com... with the following code \makeatletter \newcount\depthitemizelevel \depthitemizelevel=0 \def\@depthitemize@label{% \textbf{Level \the\depthitemizelevel:}% \the\depthitemizelevel\arabic{\@enumctr}% \space } \newenvironment{depthitemize}{% \advance\depthitemizelevel by 1% \expandafter\edef\csname depthitemize@label\romannumeral\depthitemizelevel\endcsname{\@depthitemize@label}% \list{\csname depthitemize@label\romannumeral\depthitemizelevel\endcsname}{% \usecounter{enum\romannumeral\depthitemizelevel}% \def\makelabel##1{\hss\llap{##1}}% }% }{% \endlist \advance\depthitemizelevel by -1% } \makeatother
Re: Inserting tables programatically in elisp
--- Original Message --- On Saturday, November 5th, 2022 at 9:02 AM, Jean Louis wrote: > * Heime heimebor...@protonmail.com [2022-11-05 10:45]: > > > Have been introspecting the possibility of conveniently inserting table > > programatically > > in elisp and encountered "table.el". > I would go programmatically not by hard coding the table walk, but by > using some structure, for example: > > (setq my-table '(("ID" "Description" "Amount") ;; this must be header > (1 "Payment for domain" 10.50) > (2 "Transfer from Doe" 250))) > > Then I would use some function, something like: > > (my-org-table-generate my-table calculat-total 3rd-column) > > Then the function would only interpolate the table with basic > small details, which allow later automatic table alignment: > > (defun rcd-org-table-cell (object) > (cond ((numberp object) (format "| %.2f " object)) > (t (format "| %s " object > > (rcd-org-table-cell "Hello") ⇒ "| Hello " > > (defun rcd-org-table-horizontal-line () > "Return `|-' as horizontal-line." > "|--\n") > > then for rows: > > (defun rcd-org-table-row (list) > (with-temp-buffer > (while list > (insert (rcd-org-table-cell (pop list > (insert "\n") > (buffer-string))) > > This means you can do something like: > > (rcd-org-table-row '("ID" "Description" "Amount")) ⇒ "| ID | Description | > Amount " > > then you make the main function: > > (defun rcd-org-table (structure) > (let ((header (pop structure))) > (with-temp-buffer > (insert "\n") > (insert (rcd-org-table-row header)) > (insert (rcd-org-table-horizontal-line)) > (while structure > (insert (rcd-org-table-row (pop structure > (insert "\n") > (org-mode) > (goto-char 2) > (org-table-align) > (buffer-substring-no-properties (point-min) (point-max) > > And now the final result: > > (rcd-org-table my-table) ⇒ " > | ID | Description | Amount | > |--++| > | 1.00 | Payment for domain | 10.50 | > | 2.00 | Transfer from Doe | 250.00 | > > " The problem I see is that the code assumes use of org-mode, whereas I am interested in more general tables in any buffer. At first perhaps just making a table for display rather than for user interaction.
Re: Inserting tables programatically in elisp
--- Original Message --- On Saturday, November 5th, 2022 at 8:49 AM, Ihor Radchenko wrote: > Heime heimebor...@protonmail.com writes: > > > Have constructed this function, but the difficulty centers around > > the challenge of inserting text in specific tests. > > > > (defun make-table () > > (interactive) > > (table-insert 4 5) > > (table-forward-cell) > > (table-insert-sequence "icomplt-horz" 1 1 1 'center) > > (table-forward-cell 4) > > (table-insert-sequence "icomplt-vert" 1 1 1 'center) > > (table-release)) > > > > It might be that "table.el" was designed under the assumption that the > > table would > > be edited interactively rather than from ELisp. The lack of info may just > > reflect > > that nobody has thought about it making tables programatically that also > > goes beyond > > its utilisation in "org-mode". > > You can call functions interactively from lisp, if needed. One could work as you say, but only if the calls do not rely on finding table regions and so on. > > I understand that "Org" cooperates with its author Takaaki Ota, perhaps > > things could > > be extended in a way that makes inserting tables programatically much > > easier to work > > with. > > > Do you refer to things on table.el side? Then, you may have more luck > asking on emacs-devel list. Correct. Thanks. > As for programmatically inserting native Org tables, you can always > construct table AST via org-element-create API and then insert it via > org-element-interpret-data. I am discussing the use of tables beyond "org".
Inserting tables programatically in elisp
Have been introspecting the possibility of conveniently inserting table programatically in elisp and encountered "table.el". Have constructed this function, but the difficulty centers around the challenge of inserting text in specific tests. (defun make-table () (interactive) (table-insert 4 5) (table-forward-cell) (table-insert-sequence "icomplt-horz" 1 1 1 'center) (table-forward-cell 4) (table-insert-sequence "icomplt-vert" 1 1 1 'center) (table-release)) It might be that "table.el" was designed under the assumption that the table would be edited interactively rather than from ELisp. The lack of info may just reflect that nobody has thought about it making tables programatically that also goes beyond its utilisation in "org-mode". I understand that "Org" cooperates with its author Takaaki Ota, perhaps things could be extended in a way that makes inserting tables programatically much easier to work with.