gpt4 book ai didi

matlab2tikz 生成繁重的排版 tikz 代码

转载 作者:行者123 更新时间:2023-12-02 05:20:27 27 4
gpt4 key购买 nike

matlab2tikz是将 matlab/octave 数字转换为 tikz 代码的绝佳软件包。

但是,如果图形包含很多点,则生成的 tikz 代码对于 Latex 的排版来说非常繁重。有时编译甚至会失败,并显示以下消息:TeX 容量超出,抱歉

有办法解决这个问题吗?

最佳答案

matlab2tikz 有一个非常聪明的选项,可以在转换为 tikz-pgf 期间对数字进行下采样。它称为minimumPointsDistance。这在大多数情况下确实可以解决这种情况。

但是,有时当实际保留的点数非常低时,它可能会扭曲曲线的某些“僵化”区域。如下图所示

enter image description here

蓝色曲线(1184点)是原始曲线,红色曲线(117点)是缩小后的曲线。变形很明显。

为了解决这个问题并同时保持较低的点数,我编写了一种新的点减少算法,该算法更有效(但有时会更慢)。结果(红色曲线为116点)

enter image description here

很明显,失真消失了。

但是还是有的

还有一个缺点

这两种算法都存在。当人们将一批图形转换为 tikz 时,他们通常希望所有简化图表具有统一的质量。但有时这是不可能的(至少不需要额外的努力),因为通常minimumPointsDistance必须为每个图形设置不同的,并且结果实际上取决于图形的大小区间[min_y, max_y]和[min_x, max_x]以及图中的点数。

因此,为了克服这个问题并使 minimumPointsDistance 能够为所有图形统一设置为特定值,从而产生统一质量的简化版本,使用了归一化,现在 minimumPointsDistance “内部”是指打印在纸上的图形的实际尺寸。

您可以从 here 下载修改后的 matlab2tikz.m 文件以及说明。

注意并未进行详尽的测试,所以要小心!

关于matlab2tikz 生成繁重的排版 tikz 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11992397/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com