我在org-mode中有一组我正在导出的表,但是我希望从LaTeX导出中排除用于计算和使用代码块的某些列。
我确信通过在表格下方指定要导出的列范围,我看到了一种方法,但我无法在网络上的任何地方找到对它的引用,所以我很有可能梦到它。
答案 0 :(得分:5)
实现此目的的另一种方法是在org文件的LaTeX标头选项中定义“隐藏”列类型H
,然后使用#+ATTR_LATEX: :align llH
指示要隐藏第三列导出(source):
#+LATEX_HEADER: \usepackage{array}
#+LATEX_HEADER: \newcolumntype{H}{>{\setbox0=\hbox\bgroup}c<{\egroup}@{}}
#+ATTR_LATEX: :align llH
|-----+-------+------|
| 2 | 1/2 | junk |
| 4 | 1/4 | junk |
| 8 | 1/2 | junk |
答案 1 :(得分:3)
如果您使用“收音机表”,您可以执行类似
的操作#+ORGTBL: SEND some-name orgtbl-to-latex :skipcols (3)
|-----+-------+------|
| 2 | 1/2 | junk |
| 4 | 1/4 | junk |
| 8 | 1/2 | junk |
有关所有详细信息,请参阅http://www.gnu.org/software/emacs/manual/html_mono/org.html#Radio-tables。
我认为可能无法直接通过C-c C-e
导出,因为他们在2010年11月的http://comments.gmane.org/gmane.emacs.orgmode/33946提供相同的答案。
答案 2 :(得分:1)
我使用迈克尔·布兰德({@ 3}}提出的解决方案,并由德里克·费希丁格({3})进行了分类(请确保以原始模式查看文件,否则源代码将被GitHub隐藏)。
为方便起见,我复制以下代码:
* Exporting tables with some columns hidden
It is desirable to be able and hide columns in exported output. This is often the
case in tables where a lot of computations are done, and where intermediate
results end up in columns that one does not want to end up in the exported document.
This functionality is currently not available by standard org, but since this is Emacs, a simple function
implementing this functionality was published by [[https://github.com/brandm][Michael Brand]] within this [[http://lists.gnu.org/archive/html/emacs-orgmode/2016-05/msg00027.html][emacs-orgmode thread]].
#+BEGIN_SRC emacs-lisp :results silent :exports source
(defun dfeich/org-export-delete-commented-cols (back-end)
"Delete columns $2 to $> marked as `<#>' on a row with `/' in $1.
If you want a non-empty column $1 to be deleted make it $2 by
inserting an empty column before and adding `/' in $1."
(while (re-search-forward "^[ \t]*| +/ +|\\(.*|\\)? +\\(<#>\\) *|" nil t)
(goto-char (match-beginning 2))
(org-table-delete-column)
(beginning-of-line)))
(add-hook 'org-export-before-processing-hook #'dfeich/org-export-delete-commented-cols)
;; (remove-hook 'org-export-before-processing-hook #'dfeich/org-export-delete-commented-cols)
#+END_SRC
The exported table will have col2 removed.
| | col1 | col2 | col3 |
| / | <r> | <#> | |
| | a1 | a2 | a3 |
| | b1 | b2 | b3 |
答案 3 :(得分:0)
http://www.gnu.org/software/emacs/manual/html_mono/org.html#The-spreadsheet
3.5.6编辑和调试公式
使用‘/’
:不要导出此行。适用于包含缩小的''标记或列组标记的行。
请注意,为了获得额外信息,您必须使用第一列来执行此操作。
答案 4 :(得分:0)
我发现最方便的方法是:
这是一个 elisp 的例子。
* Hidden :noexport:
#+NAME: google
| file | total | other | p |
|-----------+-------+-------+----|
| de-01.pdf | 312 | 76 | 76 |
| de-02.pdf | 428 | 101 | 77 |
| de-03.pdf | 1069 | 217 | 80 |
* Exported
Here it comes.
#+begin_src elisp :var data=google :colnames yes
;; select 0th and 3rd column from a table accessible with 'google' name
;; and do some math on it
(mapcar (lambda (e) (list (nth 0 e) (nth 3 e))) data)
#+end_src
#+RESULTS:
| file | p |
|-----------+----|
| de-01.pdf | 76 |
| de-02.pdf | 77 |
| de-03.pdf | 80 |
您还可以使用源代码块支持的任何其他语言来循环结果并产生所需的输出。