如何使用 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}
也许一开始需要一些摆弄,但我认为最终这会比摆弄边距更容易。