ff3.6 & tabkit bug

在Ubuntu10.04升级后,TabKit与Firefox3.6出现兼容性问题,导致侧边栏无法调整大小。作者通过检查安装文件、尝试手动修复并最终找到官方提供的补丁解决了此问题。

自从升级了ubuntu10.04 , 就发现 tabkit 不兼容 ff3.6,尝试修改install.rdf 

                <em:minVersion>3.0</em:minVersion>

                <em:maxVersion>3.6.*</em:maxVersion>

有一个bug: 无法resize sidebar
关于该bug的详细描述见:
http://code.google.com/p/tabkit/issues/detail?id=16

bug描述 写道
== What exact steps will reproduce the problem? ==

I'm using the current Minefield build (Mozilla/5.0 (Windows; U; Windows NT
5.1; en-US; rv:1.9.2a1pre) Gecko/20090801 Minefield/3.6a1pre (.NET CLR
3.5.30729)), so maybe this problem is caused by that.

1.Start Firefox.
2.When loading is done, try to shrink/expand the width of the sidebar by
dragging the border between the Tabkit sidebar and the normal browser window.
3. The sidebar border will shrink by one pixel or expand by one pixel,
depending on the side you're coming from (left: expanding - right: shrinking)

== What is the expected output? What do you see instead? ==

Sidebar border should stick inplace, so I can change the width of the
tabkit sidebar.

== What versions of Tab Kit and Firefox are you using? On what operating
system? ==

I'm using the current Minefield build (Mozilla/5.0 (Windows; U; Windows NT
5.1; en-US; rv:1.9.2a1pre) Gecko/20090801 Minefield/3.6a1pre (.NET CLR
3.5.30729)), so maybe this problem is caused by that. Tabkit version 0.5.7
 
---这个描诉写的真详细。。


自己尝试patch之,未果.

最后发现这个patch可行: (在我的tabkit里面行号不一样..)
http://code.google.com/p/tabkit/issues/attachmentText?id=16&aid=8164852514197001351&name=tabkit.patch&token=63f0a0f31e00e365438123bba12f105f


--- tabkit.orig	2010-06-01 10:27:54.000000000 +0100
+++ tabkit.js	2010-06-01 10:28:20.000000000 +0100
@@ -5239,6 +5239,10 @@
 
     /// Event Listeners:
     this.onMouseUpGesture = function onMouseUpGesture(event) {
+        var splitter = document.getElementById("tabkit-splitter");
+        if (splitter && splitter.getAttribute("state") == "dragging")
+            return;
+
         if (!event.isTrusted)
             return;
 
@@ -5250,6 +5254,10 @@
     };
 
     this.onMouseDownGesture = function onMouseDownGesture(event) {
+        var splitter = document.getElementById("tabkit-splitter");
+        if (splitter && splitter.getAttribute("state") == "dragging")
+            return;
+
         if (!event.isTrusted)
             return;


 

&lt;think&gt;我们有两个任务: 1. 解释代码 \tikzset{greenhighlight/.style={fill=green!30}, ...} 的含义 2. 解决在判断矩阵是对称矩阵还是反对称矩阵的代码中出现 &#39;Missing \cr inserted. \end{formativetest}&#39; 错误的问题 由于用户提供了之前的对话历史,我已经解释过第一个任务(tikzset代码的含义),但用户再次要求解释,可能是需要更深入或结合新的引用。另外,第二个任务是新的,需要解决一个LaTeX错误。 首先,我们处理第一个任务:解释tikzset代码。 根据之前的回答,我已经详细解释了该代码,并且用户提供了新的引用,但新的引用主要是关于颜色表示(如十六进制、颜色名称)和Android绘图,以及一个latexdiff工具。这些引用与tikzset代码没有直接关系,但我们可以注意到引用[1]中提到了颜色格式,这与我们设置的填充颜色相关。我们可以稍微提及,但并不改变原解释。 因此,对于第一个任务,我们可以简要重申: 这段代码定义了三个TikZ样式:greenhighlight、cyanhighlight和orangehighlight,分别用30%不透明度的绿色、青色和橙色填充图形元素。例如,`green!30`表示绿色(green)与白色混合,其中绿色的浓度为30%。这种表示法来自xcolor包。 然后,重点处理第二个任务:解决LaTeX错误。 错误信息:&#39;Missing \cr inserted. \end{formativetest}&#39; 这个错误通常发生在表格环境中,比如tabular、array等,可能是因为列的数目与定义的不匹配,或者缺少了换行符\\。具体到`formativetest`环境(这是一个特定环境,可能是某个文档类或包提供的),我们需要检查表格的每一行是否以`\\`结束,并且每行的列数是否一致。 由于用户提到是在&ldquo;判断矩阵是对称矩阵还是反对称矩阵的代码中&rdquo;出现错误,我们可以推测代码中可能包含一个表格(矩阵)环境。 常见的错误原因: 1. 在表格行中,列的数量超过了定义的列数。 2. 缺少了行结束符`\\`。 3. 在表格中使用了错误的符号(比如忘记了写`&amp;`分隔符,导致列数不对)。 由于没有提供具体的代码,我们只能给出一般性解决方案。 步骤: 1. 检查表格环境中的列格式定义(如{l c r})与实际列数是否匹配。 2. 确保每一行都有正确数量的`&amp;`分隔列,并且以`\\`结束(最后一行通常也要,除非在特殊环境中)。 3. 注意在数学环境中(如array)也要注意这些规则。 另外,`formativetest`环境可能是自定义的,因此可能需要查看其定义。但一般来说,这种错误与表格环境中的列对齐有关。 下面,我们给出一个示例,假设用户用array环境来写矩阵,然后出现错误,如何修正。 错误示例: \begin{formativetest} \begin{array}{ccc} a &amp; b &amp; c \\ % 正确的一行 d &amp; e % 错误:缺少了\\,并且少了一列 \end{array} \end{formativetest} 修正后: \begin{formativetest} \begin{array}{ccc} a &amp; b &amp; c \\ d &amp; e &amp; f \\ % 补全列,并加上\\ \end{array} \end{formativetest} 注意:如果定义的列格式是{ccc}(三列),那么每一行必须有三个列,用两个&amp;分隔,即第一列和第二列之间一个&amp;,第二列和第三列之间一个&amp;。 另一种可能:如果用户使用了特殊的命令(比如\hline)而没有正确使用,也可能导致错误。在行结束符`\\`后面才能使用`\hline`。 因此,我们建议用户检查矩阵(表格)的每一行是否都有正确的列数和结束符。 由于我们没有具体的代码,只能提供这些通用建议。 最后,按照用户要求生成相关问题。 注意:用户要求行内数学表达式用$...$,独立公式用$$...$$(但注意在LaTeX文档中通常不推荐$$,而推荐用\[...\],但用户要求用$$,我们就用$$)。 但是,在回答中,我们并没有用到复杂的数学公式,所以主要注意结构。 回答结构: 1. 解释tikzset代码(简要) 2. 分析并解决LaTeX错误(详细) 3. 生成相关问题 下面开始组织答案。 &lt;/think&gt;### 解释 TikZ 样式定义代码 代码 `\tikzset{greenhighlight/.style={fill=green!30}, ...}` 在 LaTeX 中定义了三种可复用的图形填充样式: ```latex \tikzset{ greenhighlight/.style={fill=green!30}, % 30%浓度绿色填充 cyanhighlight/.style={fill=cyan!30}, % 30%浓度青色填充 orangehighlight/.style={fill=orange!30} % 30%浓度橙色填充 } ``` #### 关键解析: 1. **`\tikzset` 指令** TikZ 的全局样式配置命令,类似于 CSS 中的类定义。 2. **颜色语法 `color!百分比`** - `green!30` 表示 30% 浓度的绿色(70% 透明度的白色混合) - 支持所有 CSS 颜色名称(如 `cyan`, `orange`)或十六进制值(如 `#FF0000`)[^1] 3. **应用场景** 定义后可在 TikZ 图形中直接调用: ```latex \node[greenhighlight] at (0,0) {A}; % 绿色背景节点 \draw[orangehighlight] (1,0) circle(0.5); % 橙色填充圆形 ``` --- ### 解决 `Missing \cr inserted. \end{formativetest}` 错误 此错误通常由 **表格/矩阵环境格式错误** 引起,在判断矩阵对称性的代码中尤其常见: #### 常见原因及修复方案: 1. **列分隔符缺失** ```latex % 错误示例(缺少 &amp; 分隔符) \begin{array}{ccc} a_{11} &amp; a_{12} \\ % 缺少第三列数据 a_{21} &amp; a_{22} &amp; a_{23} \\ \end{array} ``` **修复**:确保每行列数一致: ```latex \begin{array}{ccc} a_{11} &amp; a_{12} &amp; \textcolor{blue}{a_{13}} \\ % 补全第三列 a_{21} &amp; a_{22} &amp; a_{23} \\ \end{array} ``` 2. **行结束符 `\\` 缺失** ```latex % 错误示例(第二行缺少 \\) \begin{pmatrix} a &amp; b \\ c &amp; d % 应添加 \\ \end{pmatrix} ``` **修复**: ```latex \begin{pmatrix} a &amp; b \\ c &amp; d \\ % 明确结束行 \end{pmatrix} ``` 3. **数学环境嵌套冲突** 在 `formativetest` 环境中使用矩阵时需正确嵌套数学环境: ```latex \begin{formativetest} \[ % 添加数学环境标识 M = \begin{pmatrix} 1 &amp; 2 \\ 2 &amp; 1 \\ \end{pmatrix} \] % 结束数学环境 \end{formativetest} ``` #### 调试建议: 1. 检查矩阵每行的 `&amp;` 分隔符数量和 `\\` 结束符 2. 使用 `\hline` 代替连续 `--` 绘制分隔线 3. 简化复杂表达式,分步验证矩阵格式 --- ### 相关问题 1. 如何在 TikZ 中自定义渐变色填充样式? 2. 矩阵环境中 `\begin{array}{lcr}` 的 `l/c/r` 参数有什么区别? 3. LaTeX 表格出现 `Extra alignment tab` 错误时如何快速定位问题行? 4. 如何用 `\ifnum` 条件语句实现矩阵对称性的自动判断?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值