我有一个相当大的文档,包含几个 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}