如何在没有方括号的情况下设置 pgfplots 中的单位?

如何在没有方括号的情况下设置 pgfplots 中的单位?

此 MWE:

\documentclass{article}
% translate with >> pdflatex -shell-escape <file>

% This file is an extract of the PGFPLOTS manual, copyright by Christian Feuersaenger.
% 
% Feel free to use it as long as you cite the pgfplots manual properly.
%
% See
%   http://pgfplots.sourceforge.net/pgfplots.pdf
% for the complete manual.
%
% Any required input files (for <plot table> or <plot file> or the table package) can be downloaded
% at
% http://www.ctan.org/tex-archive/graphics/pgf/contrib/pgfplots/doc/latex/
% and
% http://www.ctan.org/tex-archive/graphics/pgf/contrib/pgfplots/doc/latex/plotdata/

\usepackage{pgfplots}
\pgfplotsset{compat=newest}

\pagestyle{empty}

\usepgfplotslibrary{units}

\begin{document}
\begin{tikzpicture}
  \begin{axis}[change x base,
    x SI prefix=kilo,x unit=m,
    y SI prefix=milli,y unit=N,
    xlabel=Distance,ylabel=Force]
    \addplot coordinates {
        (1000,1)
        (2000,1.1)
        (3000,1.2)
        (4000,1.3)
    };
  \end{axis}
\end{tikzpicture}
\end{document}

结果是单位设置在方括号中。这与 SI 手册 8 和德国标准 DIN 1313 相冲突。

我怎样才能关闭它或者将其改为“/单元“或”+在+单元“?我无法在 sourceforge 上报告这个问题,这很遗憾,因为这种错误的单位格式越来越流行。

如果 Feuersänger 先生正在阅读 TEX.SX,那么我对以下单位有以下功能请求:

  • 根本不要使用括号,而是使用斜线或“in”(编辑:对于斜线符号,用于划分单位的圆括号可能很有用,如评论中所述。例如$a$/(m/s^2)
  • 可以在符号(轴标签)之后或最后两个刻度标签之间设置单位(如果空间较小,则代替倒数第二个刻度标签)
  • 允许siunitx语法
  • 自动在每个刻度标签旁边设置角度单位(°''')和时间单位(^h^min^s)(不要与时间段单位(ahmin和)混淆)s
  • 设置十的幂或单位,如%ppm在最后两个刻度标签之间

答案1

你可以改变它的外观。该units库尚未完全实现,并且可能永远不会完全实现。附加单元可能是一个相当综合的问题。

但是你可以通过以下方式完成你的请求:

\begin{tikzpicture}
  \begin{axis}[change x base,
    x SI prefix=kilo,x unit=m,
    y SI prefix=milli,y unit=N,
    unit markings=slash space,
    % Or do it by your self...
    % unit marking pre={\text{in }}, % requires amsmath
    % unit marking post={},
    xlabel=Distance,ylabel=Force]
    \addplot coordinates {
        (1000,1)
        (2000,1.1)
        (3000,1.2)
        (4000,1.3)
    };
  \end{axis}
\end{tikzpicture}

其结果(两个例子均显示):

在此处输入图片描述

编辑:根据评论,我添加了一种更好的方法来满足 op 的需求。它可以被容纳:

unit marking pre={\!\!/},
unit marking post={},
ylabel=$F$

负空间\!\!应该吞噬一个人\space(我永远记不清这是确切地不管是否如此,如果您知道要插入的确切负空间,请填补空白)。
这应该会产生 OP 所要求的内容。

相关内容