我正在使用 gnuplot epslatex 终端在独立模式下生成一些图形。生成的图形和质量都没有问题。
但是,在双列模式下使用 elsevier 文章类时,我必须缩放图形以适应列宽,然后,正如预期的那样,字体大小正在缩小。我尝试在 gnuplot 中缩放字体或图形大小。但我遇到了同样的问题。
我在想我应该能够统一 Latex 中的标题、键等字体大小并使它们与文档的文本相同。
有没有办法在不使用其他软件的情况下解决这个问题?
PS:如果可能的话,我想首先在 Latex 和 gnuplot 内部解决这个问题。
答案1
gnuplot
我认为使用当前的工具集(和)无法轻松完成此操作epslatex
。原因是,根据最终 LaTeX 文档的尺寸和字体大小,您需要手动计算图形的尺寸和字体大小。
您可以使用 轻松实现您的要求pgfplots
,这是一个 LaTeX 包,因此可以将绘制图形的所有代码包含在您的.tex
文件中。请参见下面的示例,其中图形自然地填满了文档的列宽并使用相同的字体大小。
我用来生成图表的过程如下:
- 使用选择的程序运行实验,输出文本文件
- 使用
pgfplots
在主文件中编写 LaTeX 代码.tex
来绘制图形
请参阅“从表中读取坐标”部分pgfplots 手册了解更多信息。
\documentclass[5p]{elsarticle}
\usepackage{lipsum}
\usepackage{pgfplots}
\begin{document}
\begin{figure}[h!]
\centering
\begin{tikzpicture}
\begin{axis}[
width=\columnwidth,
xlabel=$x$,
ylabel=$y$,
legend pos=north west]
\addplot {x^3};
\addlegendentry{$y = x^3$};
\end{axis}
\end{tikzpicture}
\end{figure}
\lipsum[1-2]
\end{document}
\documentclass[3p]{elsarticle}
\usepackage{lipsum}
\usepackage{pgfplots}
\begin{document}
\begin{figure}[h!]
\centering
\begin{tikzpicture}
\begin{axis}[
width=\columnwidth,
xlabel=$x$,
ylabel=$y$,
legend pos=north west]
\addplot {x^3};
\addlegendentry{$y = x^3$};
\end{axis}
\end{tikzpicture}
\end{figure}
\lipsum[1-2]
\end{document}
答案2
据我了解,您有两种选择:
使用缩放终端生成的文件
\resizebox
的全部内容,即。请注意,您的字体也会缩放。.tex
epslatex
\resizebox{\linewidth}{!}{\input{epslatex-file.tex}}
在代码中指定绘图的大小
gnuplot
,set terminal epslatex size a b
其中a
和b
可能有单位(例如厘米)。Gnuplot 似乎不接受一些更动态的大小,因为\linewidth
– 我相信这适合您的目的。
或者使用 PGFplots 可能是您的最佳选择 - 假设您不需要 3D 图。当使用 3D 时,PGFplots 对 LaTeX 内存的需求相当大。