将 pgfplots 轴放在可打印文本区域的边缘

将 pgfplots 轴放在可打印文本区域的边缘

为了获得一些水平空间(例如将两个图并排放置),因为这是最不丑陋的解决方案,我希望能够将 pgfplot 的轴线准确地放在文本开始(或结束)的边界上。(在下面的 MWE 中:它应该直接位于文本区域的框架上)。通过尝试适当的值手动移动它们(如在 MWE 中所做的那样)并不是理想的解决方案。

\documentclass{article}
\usepackage{showframe}
\usepackage{pgfplots}

\newcommand{\myfig}{
    \begin{tikzpicture}
    \begin{axis}[height=5cm,width=7cm]
    \addplot {2^x};
    \end{axis}
    \end{tikzpicture}
    }

\begin{document}
\myfig % too much space on the left

\hspace{-12.5mm}\myfig % correct (but manual) placement

\flushright
\myfig % too much space on the right

\myfig\hspace*{-3.3mm} % correct (but manual) placement
\end{document}

MWE 输出

我知道我必须使用锚点,但后来我在浮动环境中工作,无法给出与页面相关的精确(垂直)位置。谁知道怎么做?

答案1

trim axis left和就是您要找的。这些选项可以添加到(不是)trim axis right的参数中,并更改边界框,以便( ) 左侧(右侧)的所有内容都被修剪掉。tikzpictureaxiscurrent axis.south westcurrent axis.south east

请注意,在您的示例中,我还在宏%中添加了一些内容\myfig以避免出现虚假空格(例如%为什么宏定义中有行尾?),并且我添加了一个\noindent以删除标准段落缩进。

在此处输入图片描述

\documentclass{article}
\usepackage{showframe}
\usepackage{pgfplots}

\newcommand{\myfig}[1]{%
    \begin{tikzpicture}[#1]
    \begin{axis}[height=5cm,width=7cm]
    \addplot {2^x};
    \end{axis}
    \end{tikzpicture}%
    }

\begin{document}
\noindent\myfig{trim axis left}


\flushright
\myfig{trim axis right}
\end{document}

相关内容