如何为 xelatex/graphviz 组合指定 RGB 颜色

如何为 xelatex/graphviz 组合指定 RGB 颜色

Xelatex 在处理 graphviz 代码时,将 RGB 颜色规范之前的井号 (#) 字符加倍。

例如 latex/graphviz 代码:

\digraph [scale=1]{mygraph} {
  node [color="#365559"]
  a->b
}

得到的 mygraph.dot:

digraph mygraph {
  node [color="##365559"]
  a->b
}

我该如何克服这个{bug/feature},而不接触shell(例如sed)?

答案1

在包中定义了一个宏,它有三个参数:图形选项、图形文件的名称和内容。在该宏中,这些参数的内容使用命令graphviz写入文件。.dot\write

LaTeX 试图避免将#宏参数内容中的字符视为参数本身,因此字符被重复。如果将#视为逐字处理,则在当前用例中会更直观一些。但是,您可以使用包将其定义为逐字处理newverbs(类似于https://tex.stackexchange.com/a/37757) 并在图表代码中使用该宏。

梅威瑟:

\documentclass{article}
\usepackage{newverbs}
\usepackage{graphviz}
\begin{document}
\Verbdef\myhash{#}
\digraph [scale=1]{mygraph} {
  node [color="\myhash FF0000"]
  a->b
}
\end{document}

结果:

在此处输入图片描述

相关内容