问题标签 [pangocairo]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
141 浏览

cairo - cairo_debug_reset_static_data() 使用 pango 库的问题

当我将 pango lib 和 cairo 结合起来时,我遇到了 cairo_debug_reset_static_data() 函数的问题,因为当它被调用时我得到了以下断言。

绘制:cairo-hash.c:217:_cairo_hash_table_destroy:断言“hash_table->live_entries == 0”失败。

这是我从以下帖子中获取的代码:有人遇到类似问题但他们没有在那里共享任何有效的解决方案(我已经尝试过帖子中的解决方案,但它不起作用)。如果我们删除注释行,那么就会有断言。

我试图解决这个问题,也搜索了他们的文档,但找不到任何有用的东西。一些对pangocairo有专业知识的人,请给我一些启发并指出正确的方向。

谢谢

0 投票
0 回答
117 浏览

python - 为什么我只收到错误“#error”可以直接包含。”在为 pygobject-2.15.2 运行 make 时?

我正在尝试安装 pygoobject-2.15.2 以使 pango、pangocairo 在 python3 中工作,但是在制作 pygobject 时出现错误。另外,有没有其他方法可以在 python 中安装 pango、pangocairo 和 cairo?

我不确定为什么会收到此错误,但我认为它与我的 ubuntu 版本有关。目前,我已经安装了 ubuntu-18.04.3。

0 投票
3 回答
1436 浏览

r - 如何修复在 Linux/Fedora 31 上的 R 中未正确显示的度数符号

我制作的任何地图:

ggplot() + geom_sf()

生成预期的地图,但未正确显示度数符号,如下图所示。

地图一角的度数符号错误

这个答案中给出的关于 SO -地图轴标签中的度数符号不正确- 的答案没有帮助,我发布了一个单独的问题,因为我看到了一个不同的标志。

更改字体没有帮助。

我还尝试sf在一个单独的项目中安装来自 Github 的 (0.9)的当前版本renv,但结果相同。

我在Linux上,Fedora 31。

要复制:

2019-03-15 更新

该问题并非特定于 ggplot/geom_sf;正如评论中所建议的,我遇到了同样的问题plot.new(); text(0.5,0.5, bquote(120*degree*N), cex=5) 错误度数符号的附加示例

另外,为了澄清,我没有在帮助中详细说明与 Wine 相关的问题?X11()。如果我在终端中运行fc-match Symbol,我会得到:

StandardSymbolsPS.t1:“标准符号 PS”“常规”

2019-03-19 更新

在全新的 Fedora 31 和 Fedora 32 beta 安装中得到确认。可能是 Fedora 的问题。

我尝试了不同的语言环境(包括例如“en_US.UTF-8”或“German”)和设备(例如cairo_pdf()cairo_ps()),结果相同。

X11.options() 将“cairo”显示为类型(将其更改为 Xlib,或者 dbcairo 不会更改结果)。

在下面的答案中使用TestChars()dww 提出的功能显示如下: 测试

但是,如果我用 knitr 编织成 pdf,我会得到大多数符号,包括°。

从pdf测试

如果我编织到 html,我会得到通常的乱码。

2020-03-20 更新

正如@jpmam1 所建议的,这似乎与 中的回归有关pango,可以通过降级来临时修复pango。然而,对 pango 进行降级会破坏操作系统的其他核心部分,例如nautilus.

我在 Fedora 上打开了一个错误:https ://bugzilla.redhat.com/show_bug.cgi?id=1815128

0 投票
1 回答
229 浏览

python - 如何使用 Pango 和 (py)Cairo 激活亚像素定位?

我刚刚看到这篇文章说,亚像素定位是在 2019 年添加到 Pango 1.44 中的——尽管它并非没有问题。显然它默认是关闭的。两篇文章都说需要来自开罗的最新大师。也许它已经在此期间发布(?)。

其实有两个问题:

  • 我需要哪个版本的 Cairo(或 pycairo)来激活此功能?还是我(仍然)需要从(未发布的)大师构建开罗?
  • 如何使用 Cairo (pycairo) / pangocairo 激活亚像素定位?

pangocairo 有多个 Python 绑定。我在 Python 3 中使用以下方法:

我的文本渲染如下所示:

0 投票
1 回答
116 浏览

python - “显示” Pango 布局后需要“中风”吗?

我一直在寻找 PyCairo 和 PangoCairo 之间的问题。下面的代码说明了这一点:

结果如下图:

两个圆圈和文字

我的意图是画两个圆圈和文字。文本和右下角圆圈之间的线不存在。我可以通过在中心文本代码块的ctx.stroke()正下方添加/取消注释调用来使该行消失。PangoCairo.show_layout

它有效,但感觉不对。文本不需要线条笔划。出了什么问题?中风是真的需要还是我犯了另一个错误?

0 投票
1 回答
180 浏览

c++ - PangoLayout 中忽略的新行

我正在开发一个PangoLayout用于文本布局和Cairo渲染的程序,并且在处理多行文本(或者更确切地说,包含换行符的文本)时遇到问题。

Pango 似乎在任何换行符之后截断文本。的结果pango_layout_get_extents()似乎只包括第一行(我已经通过在第一行之后包含很长的行进行了测试)。pango_cairo_show_layout()也只渲染第一行。我试过使用\n, \r, and\r\n作为换行符,但没有任何效果。

奇怪的是,pango_layout_get_line_count()报告了正确的行数。

这是我用来创建的代码PangoLayout

这是Github 上的完整源代码

vcpkg在 Windows 上使用 Pango 版本。我相信我缺少一些导致问题的东西。谢谢您的帮助。

0 投票
1 回答
272 浏览

python - 如何解决使用诗歌安装 manim 的错误?

我想使用诗歌设置 manim 社区回购。我运行了命令“诗歌安装”。我收到以下错误。Python 3.8.5,点 20.2.4

0 投票
1 回答
34 浏览

cairo - 使用模式生成时访问 cairo_path_t

我对在开罗绘制各种路径很感兴趣。然后通过 cairo_path_t 和 cairo_path_data_t 访问这些路径以供 pango 使用。当我使用模式时,这会成为一个问题。例如下面的代码效果很好。

我可以使用 pat 访问路径。但是,如果我将其用作重复模式。路径已丢失。

我无法使用 cr 访问任何路径。作为测试,如果我添加一个矩形来定义窗口,则只有窗口路径可见。重复图案消失。

知道我做错了什么吗?

0 投票
0 回答
71 浏览

c++ - 使用 PANGO_ALIGN_MIDDLE 时 PangoCairo 文本截断

在 C++ 游戏中,我们使用 Pango 用 cairo 渲染文本,然后从那里渲染到 OpenGL 纹理。我最近在通过 Pango 实现文本换行时注意到了这个问题。

我正在做的是通过将我们自己的坐标系转换为像素来计算宽度,然后将其用作 PANGO UNITS 或代码中窗口宽度的一部分:

然后我们从布局中得到一个矩形,传递给 cairo:

但是正如您在下面看到的那样,输出是截止的;如果我在这里使用搜索,这不会发生PANGO_ALIGN_LEFT ,我发现Cairo + Pango 布局非左对齐

这似乎与我的问题有关,但并没有完全提供解决方案(或者我没有正确理解);我尝试计算逻辑矩形和墨迹矩形的 x 和 y 坐标之间的差异,并将其添加到cairo_move_to输出中,但这对输出没有真正的影响,所以我只是在这里粘贴了原始代码。

纹理输出(应该是

0 投票
0 回答
27 浏览

pango - 尝试清理 PangoCairo / FontConfig 时的 SIGABRT

操作系统:Arch Linux

我在窗口管理器中使用 pango cairo 来绘制文本。到目前为止,我在退出窗口管理器清理 pangocairo 后一直在使用这三个语句。

但是自从更新 pango 到 1:1.48.3-1 (从 1:1.48.2-1 )。

如果我删除这些语句,valgrind 会显示一些直接丢失的块和许多 (3k+) 间接丢失的块,这些块通常分别为 0 和少量 (~900) 块,这些行和以前的 pango 版本。

这只是最近 pango 版本的错误还是发生了一些变化?

我目前的解决方案是安装 pango 1:1.48.2-1/var/cache/pacman/pkg/并忽略更新。

编辑:我正在链接到 gist,它在不使用 3 行时有内存泄漏的 valgrind 报告。 https://gist.github.com/Abh15h3k/6bfd9c17d6a6714676626df1eb4b02cf

编辑 2:我正在添加一个简短的 c 代码来演示该问题。我已经添加了关于我如何编译它以及问题发生在哪里以及它们是什么的评论。 https://gist.github.com/Abh15h3k/45df35e56bcc4fd55662d51d53620a16