我正在使用库pgfplots
中的(版本 1.12)units
。当我创建单位标签时\si{molecules \cm^{-2}}
,结果显示“分子”和“厘米”之间没有任何间距。当我使用相同的\si{molecules \cm^{-2}}
在普通文本中使用相同的标签时,我做获得适当的间距。MWE 和生成的图像如下:
\documentclass{standalone}
\usepackage{siunitx}
\usepackage{pgfplots}
\pgfplotsset{compat=1.12}
\usepgfplotslibrary{units}
\begin{document}%
\begin{tikzpicture}%
\begin{axis}[xlabel=quantity,x unit=\si{molecules \cm^{-2}}]%
\addplot coordinates {(0,0) (1,1) (2,3)};
\end{axis}%
\end{tikzpicture}%
\end{document}
如何在“molecules”和“cm”之间留出一些空白?
答案1
为分子定义一个新的 siunit,无论如何都应该这样做。然后,让 pgfplots 将 unitpart 发送给 siunitx,让它控制排版。
\documentclass[border=6pt]{standalone}
\usepackage{siunitx}
\usepackage{pgfplots}
\pgfplotsset{compat=1.12}
\usepgfplotslibrary{units}
\DeclareSIUnit{\molecules}{molecules}
\pgfplotsset{unit code/.code 2 args={\si{#1#2}}}
\sisetup{per-mode=power}
\DeclareSIUnit{\molrate}{\molecules\per\centi\meter\squared}%for convenience
\begin{document}%
\begin{tikzpicture}%
\begin{axis}[xlabel=quantity,x unit=\molecules\per\centi\meter\squared]%
\addplot coordinates {(0,0) (1,1) (2,3)};
\end{axis}%
\end{tikzpicture}%
\end{document}
您也可以将整个事物定义为一个单元,以方便使用。这可能会节省一些输入,并确保您的工作一致。