迷你页面中的 tikzpicture

迷你页面中的 tikzpicture

我可以为 tikzpicture 设置精确的宽度吗?我以为可以用“width”,但我尝试了以下方法:

\colorbox{gray}{
\begin{minipage}{.33\textwidth}
adfjk adfjk adfjk adfjk adfjk adfjk adfjk adfjk adfjk adfjk adfjk adfjk 
\colorbox{yellow}{
\begin{tikzpicture}
\begin{axis}[width=\textwidth,ymax=3.5, ymin=-3.5]
  \addplot[blue, domain=-5.8:5.8,samples=30] {sin((180/pi)*x)};
% ....
\end{axis}
\end{tikzpicture}
}
\end{minipage}
}

(--抱歉:我无法发布图片--)但黄色矩形比 \textwidth 小。我将其设置为 \textwidth+1.3cm(似乎是固定边距),效果大致符合我的预期,但有没有更简洁的解决方案?谢谢

答案1

PGFPlots 中的选项width只能产生大致正确的大小,因为它适用于标签占用空间的静态假设。要将图精确缩放到某个指定宽度,您有几个选项:请参阅pgfplots:如何缩放到文本宽度?

这里似乎特别适合的一种方法是使用 Patrick Häckler 的优秀软件包tikzscale。要使用它,您需要将代码保存tikzpicture在单独的文件中(无论如何,这在实际文档中都是一个好主意,因为它使所有内容更易于维护),然后使用 将其包含在内\includepicture[width=...]{<filename>}tikzscale然后在后台做一些神奇的事情,最终您会得到一个大小完美的图。

\documentclass[border=5mm]{standalone}

\usepackage{pgfplots}
\pgfplotsset{compat=1.7}

\usepackage{tikzscale}

\usepackage{filecontents}
\begin{filecontents}{graph1.tikz}
\begin{tikzpicture}
\begin{axis}[width=\textwidth,ymax=3.5, ymin=-3.5]
  \addplot[blue, domain=-5.8:5.8,samples=30] {sin((180/pi)*x)};
\end{axis}
\end{tikzpicture}
\end{filecontents}


\setlength{\fboxsep}{0pt} % Otherwise you introduce padding in the yellow box

\begin{document}
\colorbox{gray}{%
\begin{minipage}{.33\textwidth}
adfjk adfjk adfjk adfjk adfjk adfjk adfjk adfjk adfjk adfjk adfjk adfjk 
\colorbox{yellow}{\includegraphics[width=\textwidth]{graph1.tikz}}
\end{minipage}%
}
\end{document}

相关内容