如何对齐 pgfplots 图例中的单词,是否有水平 \smash?

如何对齐 pgfplots 图例中的单词,是否有水平 \smash?

在此图例中,我希望第二个单词(“measured”、“measured”、“regression”、“regression”)排成一行,这样所有四个单词都从同一水平位置开始。如何实现?

在此处输入图片描述

如果有一个水平\smash命令,我会尝试通过将第一个图例条目更改为来解决它\hphantom{\textsc{qt}}\hsmash{\textsc{pt}}, measured

\documentclass{memoir}
\usepackage{tikz,pgfplots}
\begin{document}
\begin{tikzpicture}
  \begin{axis}[
    legend entries={
    {\textsc{pt}, measured},
    {\textsc{qt}, measured},
    {\textsc{pt}, regression},
    {\textsc{qt}, regression}
    },
    legend cell align={left},
  ]
  \addplot {x}; \addplot {x^2}; \addplot {x^3}; \addplot {x^4};
  \end{axis}
\end{tikzpicture}
\end{document}

答案1

您可以使用\makebox来确保所有的ptqt具有相同的宽度:

\documentclass{memoir}
\usepackage{tikz,pgfplots}

\newlength{\mylen}
\settowidth{\mylen}{\textsc{qt},}

\begin{document}
\begin{tikzpicture}
  \begin{axis}[
    legend entries={
    {\makebox[\mylen][l]{\textsc{pt},} measured},
    {\makebox[\mylen][l]{\textsc{qt},} measured},
    {\makebox[\mylen][l]{\textsc{pt},} regression},
    {\makebox[\mylen][l]{\textsc{qt},} regression}
    },
    legend cell align={left},
  ]
  \addplot {x}; \addplot {x^2}; \addplot {x^3}; \addplot {x^4};
  \end{axis}
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容