如何更改 gnuplot 输出的纵横比?

如何更改 gnuplot 输出的纵横比?

如何使用 gnuplottex 包更改 LaTeX 中 gnuplot 图画布的纵横比?

下面的操作会改变输出的纵横比,但不改变画布大小,从而在图形的上方和下方留下边距。

\documentclass{scrreprt}

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage[miktex,cleanup]{gnuplottex}   %miktex option for my editor
\usepackage{graphicx}
\usepackage{epstopdf}

\begin{document}

\begin{figure}[htbp]
    \centering
    \begin{gnuplot}[terminal=cairolatex]
    set size ratio 0.2
    plot [0:2*pi] sin(x) with lines linewidth 2 title 'Sine'
    \end{gnuplot}
\end{figure}

\end{document}

上述输出

答案1

我不擅长gnuplot,所以这可以改进。你传递基于的参数\textwidth,只要它们在选项中即可gnuplot

\documentclass{scrreprt}

\usepackage{lipsum}
\usepackage[cleanup]{gnuplottex}
\usepackage{xparse}
\ExplSyntaxOn
\DeclareExpandableDocumentCommand{\convertlen}{ O{cm} m }
 {
  \dim_to_decimal_in_unit:nn { #2 } { 1 #1 } cm
 }
\ExplSyntaxOff

\begin{document}

\lipsum[2]

\begin{figure}[htbp]
    \centering
    \begin{gnuplot}[
      terminal=cairolatex,
      terminaloptions={size \convertlen{\textwidth},\convertlen{.3\textwidth}}
    ]
    set size ratio 0.3
    plot [0:2*pi] sin(x) with lines linewidth 2 title 'Sine'
    \end{gnuplot}
\end{figure}

\lipsum[2]

\end{document}

\convertlen只是提供gnuplot它知道的东西(在本例中为厘米)。该命令还有一个可选参数,用于指定另一个单位。

在此处输入图片描述

答案2

为了设置画布大小,您必须将size选项传递给gnuplot。我不知道如何自动切断边距,这需要包crop的一个选项gnuplottex

因此,我可以向您介绍的解决方案是手动设置大小,并使用gnuplot例如set lmargin和从内部调整边距set rmargin。您也可以使用终端pdf的选项cairolatex,那么您不需要epstopdf

\documentclass{article}

\usepackage[cleanup]{gnuplottex}
\usepackage{graphicx}
\usepackage{lipsum}

\begin{document}
\lipsum[1]

\noindent\begin{minipage}{\textwidth}%
  \centering  
  \begin{gnuplot}[terminal=cairolatex, terminaloptions={pdf size 12cm,4cm}]
     set lmargin 4.5
     set rmargin 0.1
     plot [0:2*pi] sin(x) with lines linewidth 2 title 'Sine'
  \end{gnuplot}
\end{minipage}%

\lipsum[1]
\end{document}

得出:

在此处输入图片描述

答案3

我只会用

\begin{gnuplot}[terminal=cairolatex]
set size 1,0.6
plot [0:2*pi] sin(x) with lines linewidth 2 title 'Sine'
\end{gnuplot}

也许一开始需要一些摆弄,但我认为最终这会比摆弄边距更容易。

相关内容