- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
matlab2tikz
是将 matlab
/octave
数字转换为 tikz 代码的绝佳软件包。
但是,如果图形包含很多点,则生成的 tikz 代码对于 Latex 的排版来说非常繁重。有时编译甚至会失败,并显示以下消息:TeX 容量超出,抱歉
。
有办法解决这个问题吗?
最佳答案
matlab2tikz
有一个非常聪明的选项,可以在转换为 tikz-pgf 期间对数字进行下采样。它称为minimumPointsDistance
。这在大多数情况下确实可以解决这种情况。
但是,有时当实际保留的点数非常低时,它可能会扭曲曲线的某些“僵化”区域。如下图所示
蓝色曲线(1184点)是原始曲线,红色曲线(117点)是缩小后的曲线。变形很明显。
为了解决这个问题并同时保持较低的点数,我编写了一种新的点减少算法,该算法更有效(但有时会更慢)。结果(红色曲线为116点)
很明显,失真消失了。
但是还是有的
还有一个缺点
这两种算法都存在。当人们将一批图形转换为 tikz 时,他们通常希望所有简化图表具有统一的质量。但有时这是不可能的(至少不需要额外的努力),因为通常minimumPointsDistance
必须为每个图形设置不同的,并且结果实际上取决于图形的大小区间[min_y, max_y]和[min_x, max_x]以及图中的点数。
因此,为了克服这个问题并使 minimumPointsDistance
能够为所有图形统一设置为特定值,从而产生统一质量的简化版本,使用了归一化,现在 minimumPointsDistance
“内部”是指打印在纸上的图形的实际尺寸。
您可以从 here 下载修改后的 matlab2tikz.m 文件以及说明。
注意并未进行详尽的测试,所以要小心!
关于matlab2tikz 生成繁重的排版 tikz 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11992397/
我是一名优秀的程序员,十分优秀!