根据图形的缩放比例调整 tikzfigures 中轴标签的字体大小

根据图形的缩放比例调整 tikzfigures 中轴标签的字体大小

我有一个相当大的文档,包含几个 tikz 图形。它们被分开放在各自的文件中,文件AxisImage.tex如下:

\begin{tikzpicture}
\begin{axis}
[ylabel = y,
xlabel = x]
\addplot table [x=a, y=c, col sep=comma] {data.csv};
\end{axis}
\end{tikzpicture}

为了减少编译时间,我standalone使用 -figure将它们编译为

\documentclass{standalone}
\input{common_header}
\begin{document}
\input{AxisImage}
\end{document}

到各自的 pdf 文件中。为了将所有包含和调整都放在一个地方,以便将主文档和图表放在一个地方,我生成了一个通用标题,其中包含

\usepackage{pgfplots}
\usepackage[english]{babel}
\usepackage{blindtext}

之后,所有内容都放在主文档中:

\documentclass{article}
\input{common_header}
\begin{document}
\blindtext[1]
\begin{figure}[htpb]
    \centering
    \includegraphics[width=0.4\linewidth]{image_generator}
    \caption{This is a figure}
\end{figure}
\blindtext[2]
\end{document}

现在我收到请求,要求将轴标签的字体大小设置为与图形标题相同的大小,而不管图形的缩放比例如何(即,如果我增加图形的大小,则必须减小字体大小)。
我可以通过尝试并错误地更改每个图形大小来做到这一点,但很快就会变得很烦人。还有其他可能性吗,例如可以为我做到这一点的宏(放置在公共标题中)?

答案1

您可以使用external库来减少编译时间并设置图形的大小,pgfplots而无需改变标签字体大小。

请注意,external加载库后,您需要使用例如 来编译 tex 文件pdflatex -shell-escape main.tex

一个例子:

\documentclass{article}
\usepackage{pgfplots}
\usepackage[english]{babel}
\usepackage{blindtext}

\usetikzlibrary{external}
% option -shell-escape required
\tikzexternalize
\pgfplotsset{compat=1.17}

\begin{document}
\blindtext[1]
\begin{figure}[htpb]
  \centering
  \begin{tikzpicture}
    \begin{axis}[
        ylabel = y, 
        xlabel = x,
        % set size of pgfplots figure
        width=.4\linewidth,
        % set label font
        label style={font=\normalfont}
      ]
      \addplot {x};
    \end{axis}
  \end{tikzpicture}
  \caption{This is a figure}
\end{figure}
\blindtext[2]
\end{document}

相关内容