TikZ:比例选项改变字体大小

TikZ:比例选项改变字体大小

当我使用\begin{tikzpicture}[scale=X]X<1/X>1时,图片中文本的字体大小也会改变。我需要使用[scale=2][scale=0.5]和 来保留字体大小(例如normalsize)。

\documentclass[a4paper]{article}

\usepackage{tikz} 
\usepackage{pgfplots}
\tikzset{every picture/.append style={font=\normalsize}}

\begin{document}
 Short text with normal size font.

 \begin{tikzpicture}[scale=2, font=\normalsize]
  \begin{axis}
   [
    ymin=0,ymax=12,xmin=0,xmax=3,
    ylabel={frequency},xlabel={group},
    xtick=data,xticklabels={A,B},
    ytick={0,10},
   ]

   \addplot plot coordinates
   {
    (1,10)
    (2,6)
   };
  \end{axis}
 \end{tikzpicture}

  Another short text with normal size font.

 \begin{tikzpicture}[scale=0.5, font=\normalsize]
  \begin{axis}
   [
    ymin=0,ymax=12,xmin=0,xmax=3,
    ylabel={frequency},xlabel={group},
    xtick=data,xticklabels={A,B},
    ytick={0,10},
   ]

   \addplot plot coordinates
   {
    (1,10)
    (2,6)
   };
  \end{axis}
 \end{tikzpicture}

 \end{document}

这是我在 Win7 下使用 TeXstudio 2.6.0 的结果

答案1

如果您的 tikzpicture 仅包含 PGFPlots 轴,您可以将其移动scale=2到轴选项:这样,字体大小就不会受到影响。

\documentclass[a4paper]{article}

\usepackage{tikz} 
\usepackage{pgfplots}
\tikzset{every picture/.append style={font=\normalsize}}

\begin{document}
 Short text with normal size font.

 \begin{tikzpicture}
  \begin{axis}
   [
    scale=2,
    ymin=0,ymax=12,xmin=0,xmax=3,
    ylabel={frequency},xlabel={group},
    xtick=data,xticklabels={A,B},
    ytick={0,10},
   ]

   \addplot plot coordinates
   {
    (1,10)
    (2,6)
   };
  \end{axis}
 \end{tikzpicture}

  Another short text with normal size font.

 \begin{tikzpicture}
  \begin{axis}
   [
    ymin=0,ymax=12,xmin=0,xmax=3,
    ylabel={frequency},xlabel={group},
    xtick=data,xticklabels={A,B},
    ytick={0,10},
    scale=0.5
   ]

   \addplot plot coordinates
   {
    (1,10)
    (2,6)
   };
  \end{axis}
 \end{tikzpicture}

 \end{document}

答案2

按照这个想法线,您可以在使用时设置此属性,\input{}以防您在外部文件中生成图形。以下方法对我有用:

\begingroup
\pgfplotsset{every axis/.style={scale=2}}
\input{tikzfig}
\endgroup

使用 :

\tikzset{every axis/.style={scale=2}}

也是可能的,但会产生警告。

相关内容