如何更改Graphviz的默认字体大小?

36

我使用doxygen+graphviz来文档化我的代码。graphviz的生成图片功能非常好用。

有没有办法更改graphviz的默认字体大小?默认值是14,但我想使用12。

更改节点、子图、边缘等单个元素的字体大小真的很麻烦。

更新:

以下是我在doxygen中使用的代码(当然,文本字段已重命名)。

@dot
 strict digraph {
   node [shape = box, fontsize = 12];
     subgraph cluster_main {
       fontsize = 12;
       shape    = box;
       label    = "main";
       subgraph cluster_main_common {
         fontsize = 12;
         shape    = box;
         label    = "common";
         subgraph cluster_main_common_source {
           fontsize = 12;
           shape    = box;
           label    = "source"
           subgraph cluster_file1 {
             fontsize = 12;
             shape    = box;
             label    = "file1.c";
             gSystem [label = "var1" URL = "\ref var1"];
           }
           subgraph cluster_file2 {
             fontsize = 12;
             shape    = box;
             label    = "file2.c";
             gCard [label = "var2" URL = "\ref var2"];
           }
           subgraph cluster_file3 {
             fontsize = 12;
             shape    = box;
             label    = "file3.c";
             gPwrSupply [label = "var3" URL = "\ref var3"];
           }
         }
       }
       subgraph cluster_main_docs {
         fontsize = 12;
         shape    = box;
         label    = "docs";
         subgraph cluster_main_docs_features {
           fontsize = 12;
           shape    = box;
           label    = "features";
           subgraph cluster_main_docs_features_source {
             fontsize = 12;
             shape    = box;
             label    = "source"
             subgraph cluster_file4 {
               fontsize = 12;
               shape    = box;
               label    = "file4.c";
               deviceInfo [label = "var4" URL = "\ref var4"];
             }
           }
         }
       }
     }
   }
   @enddot

以下是有用的问题和答案,给两个人都点赞! - ncmathsadist
1个回答

54

字体大小是图形属性(也是边和节点属性)。Doxygen会生成一个dot文件,例如:

strict digraph {
                 graph [ bgcolor=lightgray, resolution=128, fontname=Arial, fontcolor=blue, 
                         fontsize=12 ];
                 node [ fontname=Arial, fontcolor=blue, fontsize=11];
                 edge [ fontname=Helvetica, fontcolor=red, fontsize=10 ];

                }

具体的设置会覆盖通用的设置;因此,将fontsize设置为节点属性将会覆盖作为图形属性设置的fontsize(仅适用于节点),而为特定节点设置fontsize将会覆盖为所有节点设置的fontsize。

如果你尝试了上面的方法却似乎没有生效,请更改fontsize,搜索整个dot文件中的“fontsize”设置,将其删除,然后重新将fontsize设置为节点属性。

这是完整的graphviz属性列表


1
自我检视已有一段时间了,而且我想最终放弃了。不过,尽管如此,你的更新看起来可行,由于没有更好的解决方案,我将其标记为答案。 - chronodekar
1
尝试在字体名称周围加上双引号?这对我有用。 - Josh Petitt
我曾尝试使用在Graphviz页面上描述的labelfontcolor,但没有成功。不过,fontcolor可以正常工作,谢谢。 - user2023370

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接