为了获得一些水平空间(例如将两个图并排放置),因为这是最不丑陋的解决方案,我希望能够将 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}
我知道我必须使用锚点,但后来我在浮动环境中工作,无法给出与页面相关的精确(垂直)位置。谁知道怎么做?
答案1
trim axis left
和就是您要找的。这些选项可以添加到(不是)trim axis right
的参数中,并更改边界框,以便( ) 左侧(右侧)的所有内容都被修剪掉。tikzpicture
axis
current axis.south west
current 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}