Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过Emacs/Org模式导出的HTML表格单元格的精细(CSS)粒度_Emacs_Org Mode_Ergonomics - Fatal编程技术网

通过Emacs/Org模式导出的HTML表格单元格的精细(CSS)粒度

通过Emacs/Org模式导出的HTML表格单元格的精细(CSS)粒度,emacs,org-mode,ergonomics,Emacs,Org Mode,Ergonomics,我试图对从Emacs的组织模式导出到HTML的一组表进行更精细的编程(Emacs Lisp)控制。[此任务是社区采用的替代方法的一部分,社区使用SVG将文本文件转换为PNG文件,说明使用Emacs的替代人体工程学布局。] 简言之,这些表是Apple BlueTooth键盘的抽象,其中每个Emacs/Org模式表表示一行键盘键,因此有六个表,每行有12到14个键(列) 在Emacs中,在组织模式缓冲区中,使用组织模式元行来指定每列的大小,可以完美地呈现我的抽象:/| | | |… Emacs中生成

我试图对从Emacs的组织模式导出到HTML的一组表进行更精细的编程(Emacs Lisp)控制。[此任务是社区采用的替代方法的一部分,社区使用SVG将文本文件转换为PNG文件,说明使用Emacs的替代人体工程学布局。] 简言之,这些表是Apple BlueTooth键盘的抽象,其中每个Emacs/Org模式表表示一行键盘键,因此有六个表,每行有12到14个键(列)

在Emacs中,在组织模式缓冲区中,使用组织模式元行来指定每列的大小,可以完美地呈现我的抽象:
/| | | |…

Emacs中生成的组织模式输出既准确又强大。在使用CSS导出到HTML时,我能做的最好的事情(组织模式是Version7,顺便说一句)是将每个单元格的宽度固定为一个相同的值,这会产生非常不准确的渲染。我正试图找到一种方法(使用CSS或其他保留Emacs缓冲区呈现的方法)为导出的HTML指定单个单元格宽度或单个列宽


建议?

我想你可以(尝试)通过在你的桌子前面添加一行#+ATTR_HTML来达到你的目标。在那里,您应该插入CSS规范。我错了吗?

我想你可以(尝试)通过在你的桌子前面添加一行#+ATTR_HTML来达到你的目标。在那里,您应该插入CSS规范。我弄错了吗?

如果fniessen的建议还不够,您可以使用
:custom\u id:special table
属性将其分配给相关的表,然后将CSS定义放入
#special table{…}
类中

但是,实际上,
org模式
已经创建了一些id(它从节号派生),因此您可以通过类似于
#section id table:nth child(x){…}
规则的方式始终访问您感兴趣的表

如果您想动态生成CSS规则,那么一种方法是使用
org babel
代码块,在该块上使用
:results html
呈现结果。例如,类似这样的方法会起作用:

#+NAME: insert-css
#+BEGIN_SRC emacs-lisp :exports none :var nth-child=1
   (print
    (format
     "<style type=\"text/css\">
       #section table:nth-child(%s) { color: orange }
      </style>" nth-child))
#+END_SRC

#+CALL: insert-css(nth-child=3) :results html

The code above produces this output:
# <style type="text/css">
#     #section table:nth-child(3) { color: orange }
#    </style>
#+名称:插入css
#+BEGIN\u SRC emacs lisp:exports none:var nth child=1
(印刷品
(格式
"
#节表:第n个子(%s){颜色:橙色}
“第n个孩子)
#+结束(SRC)
#+调用:插入css(第n个子项=3):结果html
上面的代码生成以下输出:
# 
##截面表:第n个子(3){颜色:橙色}
#    

然而,后一种方法有一个小缺点:尽管所有浏览器都理解HTML文档主体中的标记,但从技术上讲,将其放在那里是无效的。当然,如果你是超级学究,你可以让JavaScript函数在运行时在一个更合适的位置插入CSS,但我认为这对于这项任务来说是一种过分的做法。

如果fniessen建议的还不够,您可以使用
:custom_id:special table
属性将其分配给相关的表,然后将CSS定义放入
#special table{…}
类中

但是,实际上,
org模式
已经创建了一些id(它从节号派生),因此您可以通过类似于
#section id table:nth child(x){…}
规则的方式始终访问您感兴趣的表

如果您想动态生成CSS规则,那么一种方法是使用
org babel
代码块,在该块上使用
:results html
呈现结果。例如,类似这样的方法会起作用:

#+NAME: insert-css
#+BEGIN_SRC emacs-lisp :exports none :var nth-child=1
   (print
    (format
     "<style type=\"text/css\">
       #section table:nth-child(%s) { color: orange }
      </style>" nth-child))
#+END_SRC

#+CALL: insert-css(nth-child=3) :results html

The code above produces this output:
# <style type="text/css">
#     #section table:nth-child(3) { color: orange }
#    </style>
#+名称:插入css
#+BEGIN\u SRC emacs lisp:exports none:var nth child=1
(印刷品
(格式
"
#节表:第n个子(%s){颜色:橙色}
“第n个孩子)
#+结束(SRC)
#+调用:插入css(第n个子项=3):结果html
上面的代码生成以下输出:
# 
##截面表:第n个子(3){颜色:橙色}
#    

然而,后一种方法有一个小缺点:尽管所有浏览器都理解HTML文档主体中的标记,但从技术上讲,将其放在那里是无效的。当然,如果你是超级学究,你可以让JavaScript函数在运行时在一个更合适的位置插入CSS,但我认为这对这项任务来说是一种过分的操作。

只有当你知道这个特定属性可以写成像列1是宽度9em,列2到14是宽度7em,等等。我不知道如何从ATTR_HTML实体中执行此操作。只有当您知道可以将此特定属性编写为第1列为宽度9em,第2列到第14列为宽度7em等时,您才不会弄错。我不知道如何从ATTR_HTML实体中执行此操作。这种方法具有一定的潜力,因为它利用了节id,这是我应该想到的。我认为正确的做法是让elisp代码生成外部CSS文件。很值得研究。这种方法有一些潜力,因为它利用了节id,这是我应该想到的。我认为正确的做法是让elisp代码生成外部CSS文件。很值得调查。