后续行动我之前的问题,我想将两个文本条目分别与它们下方的第一个文本条目左对齐。换句话说,我需要移动text
到与 左对齐,yy=x^2
并another text
与 左对齐zzyyz=x^3
\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\usepackage{mathtools,calc}
\newcommand{\LHS}[2][1.5em]{\hspace{#1}\mathllap{#2}}
\newcommand{\RHS}[2][1.5em]{\mathrlap{#2}\hspace{#1}}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
legend cell align=left,
legend columns=2,
legend style={
anchor=south,
at={([yshift=2mm]current axis.north)},%,above=0cm,left=0mm,
cells={align=center},
/tikz/every even column/.append style={column sep=5mm}
}
]
\addplot[red] {x};
\addplot[blue,domain=0:2] {x^2};
\addplot[orange] {-x};
\addplot[green] {x^3};
\addplot[green] {x^3};
\addplot[green] {x^3};
\legend{
text,
another text,
$\LHS{yy}=x^2$,
$\LHS[3em]{zzyyz}=\RHS{x^3}$ reference,
$\LHS{k}=xyz$,
$\LHS[3em]{kk}=\RHS{xz}$ cite,
}
\end{axis}
\end{tikzpicture}
\end{document}
答案1
在某种程度上,你正在手动调整方程式,以使等号对齐。然后你可以问 Ti钾Z(或 calc 包,不是使用 java.util.concurrent.library 库来计算所需的水平空间。
\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\usepackage{mathtools,calc}
\newcommand{\LHS}[2][1.5em]{\hspace{#1}\mathllap{#2}}
\newcommand{\RHS}[2][1.5em]{\mathrlap{#2}\hspace{#1}}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
legend cell align=left,
legend columns=2,
legend style={
anchor=south,
at={([yshift=2mm]current axis.north)},%,above=0cm,left=0mm,
cells={align=center},
/tikz/every even column/.append style={column sep=5mm}
}
]
\addplot[red] {x};
\addplot[blue,domain=0:2] {x^2};
\addplot[orange] {-x};
\addplot[green] {x^3};
\addplot[green] {x^3};
\addplot[green] {x^3};
\legend{\pgfmathsetmacro{\myw}{1.5em-width("$yy$")}%
\hspace{\myw pt}text,\pgfmathsetmacro{\myw}{3em-width("$zzyyz$")}%
\hspace{\myw pt}another text,
$\LHS{yy}=x^2$,
$\LHS[3em]{zzyyz}=\RHS{x^3}$ reference,
$\LHS{k}=xyz$,
$\LHS[3em]{kk}=\RHS{xz}$ cite,
}
\end{axis}
\end{tikzpicture}
\end{document}
更吸引人的输出可能是通过修复\myindent
以下 MWE 中的缩进,然后相应地移动内容来实现的。即使您不添加文本,这也可能是更好的选择,因为这样缩进将是通用的。
\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\usepackage{mathtools,calc}
\newcommand{\LHS}[2][1.5em]{\hspace{#1}\mathllap{#2}}
\newcommand{\RHS}[2][1.5em]{\mathrlap{#2}\hspace{#1}}
\newlength\myindent
\myindent=0.5em
\begin{document}
\begin{tikzpicture}
\begin{axis}[
legend cell align=left,
legend columns=2,
legend style={
anchor=south,
at={([yshift=2mm]current axis.north)},%,above=0cm,left=0mm,
cells={align=center},
/tikz/every even column/.append style={column sep=5mm}
}
]
\addplot[red] {x};
\addplot[blue,domain=0:2] {x^2};
\addplot[orange] {-x};
\addplot[green] {x^3};
\addplot[green] {x^3};
\addplot[green] {x^3};
\legend{\hspace{\myindent}text,
\hspace{\myindent}another text,\pgfmathsetmacro{\mywleft}{\myindent+width("$yy$")}%
$\LHS[\mywleft pt]{yy}=x^2$,\pgfmathsetmacro{\mywright}{\myindent+width("$zzyyz$")}%
$\LHS[\mywright pt]{zzyyz}=\RHS{x^3}$ reference,\pgfmathsetmacro{\mywleft}{\myindent+width("$yy$")}%
$\LHS[\mywleft pt]{k}=xyz$,\pgfmathsetmacro{\mywright}{\myindent+width("$zzyyz$")}%
$\LHS[\mywright pt]{kk}=\RHS{xz}$ cite,
}
\end{axis}
\end{tikzpicture}
\end{document}