如何在Latex中使用pgf/tikz图形控制字体大小?

73

我正在使用pgf/tikz创建图表。当我在我的文档中使用它们时,它们会被缩放,其中有一些在minipage/subfig这样的环境中。当这种情况发生时,字体大小会随着图形的缩放而变得非常小或无法阅读。我已经查看了手册,但在尝试控制它时迄今未能成功。

有没有一种直接设置字体大小的方法?有哪些选项可用?

下面的一个答案展示了如何在tikzpicture环境内使用\tikzstyle字体选项来指定字体大小。

现在我正在使用:

\beginppgfgraphicnamed{graph}
\input{graph.tex}
\endpgfgraphicnamed

我的输入文件中使用了tikzpicture环境。是否有任何方式可以在我使用的设置中指定字体大小?这可能是问题所在吗?graph.tex文件是通过另一个程序自动生成的。

除了为单个图形设置字体大小外,最理想的情况是拥有一个参数来全局设置所有tikz图形的字体大小? 我猜问题在于minipagesubfig中的缩放。

非常感谢,

Jay


创建了一个专门关于缩放时在minipage/subfig中控制LaTeX图形字体大小的问题的独立问题https://dev59.com/cHE95IYBdhLWcg3wmvGh - Jay
5个回答

107
\begin{tikzpicture}

    \tikzstyle{every node}=[font=\small]

\end{tikzpicture}

将为您提供每个节点的字体大小控制。


感谢您的快速回复。我将我的\input{graph.tex}包含在\beginpgfgraphicnamed{graph} ... \endpgfgraphicnamed中,因为当我像您上面所做的那样使用tikzpicture环境时,会出现关于大小超限的错误。当我将tikzstyle命令放在那里时,似乎没有影响? - Jay
我正在使用另一个工具将我的图形转换为pgf格式...我仔细查看了文件,发现我的输入文件中使用了\begin\end {tikzpicture}。 - Jay
我调整了输出,以便手动指定tikzpicture环境。它会给出错误“Dimension too large I can't work with sizes bigger than about 19 feet.”,并且在尝试使用上述\small时无法编译。 - Jay
30
你可能也想尝试:\begin{tikzpicture}[font=\small] - Mica
5
还有其他有趣的命令:font=\tinyfont=\scriptsize - Martin Thoma
显示剩余2条评论

36

我发现更好的控制方式是使用scalefnt包:

\usepackage{scalefnt}
...
{\scalefont{0.5}
\begin{tikzpicture}
...
\end{tikzpicture}
}

1
谢谢,这是一个有用的解决方案!非常宝贵,因为它不依赖于更改实际的tikzpicture内容。 - chinnychinchin
1
如果您需要字体非常大,那么这是在“沿路径文本”上工作的唯一方法。 - bitmask
这对我只适用于y轴刻度,其他文本(x-y标签)保持不变。 - AbdelKh

25

我认为Mica的方式应该被评为答案,因为它作为评论并不够明显。

\begin{tikzpicture}[font=\small]

1
可用的字体大小和样式javatpoint.com/latex-fonts-size-and-styles - Alexey Nikonov

10
\begin{tikzpicture}
    \tikzstyle{every node}=[font=\fontsize{30}{30}\selectfont]
\end{tikzpicture}

我认为你需要使用一个包来完成这个任务。 - Tomasz Gandor

2

您还可以使用:

\usepackage{anyfontsize}

anyfontsize 包的巨大优势在于不需要将整个 {tikzpicture} 放入 \scalefont 环境中。

只需在导言区添加 \usepackage{anyfontsize} 即可实现字体缩放魔法。


1
你可以演示一下这个魔法。(我认为这在 Gavin Gao 的答案中有提到) - Tomasz Gandor

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