我如何知道默认的 PGF 线宽?

我如何知道默认的 PGF 线宽?

是否有一些宏可以告诉我默认的 PGF 线宽是多少?我曾尝试通过克隆来创建自己的宏,\pgflinewidth但尚未修改,例如

\let\defaultlinewidth\pgflinewidth

\defaultlinewidth似乎无论如何都会受到影响\pgfsetlinewidth,并更改为任何\pgflinewidth内容。因此,问题是在我调用之后\pgfsetlinewidth,我不知道默认的 pgf 线宽是多少了。有什么办法可以解决这个问题吗?

答案1

\pgflinewidth是长度。因此您可以使用\setlength复制其当前值:

\documentclass{standalone}
\usepackage{tikz}
\newlength{\defaultpgflinewidth}
\setlength{\defaultpgflinewidth}{\pgflinewidth}
\begin{document}
\begin{tikzpicture}[line width=1mm]
  \draw circle [radius=1cm];
  \draw[line width=\defaultpgflinewidth] (-1cm,-1cm) rectangle (1cm,1cm);
\end{tikzpicture}
\end{document}

在此处输入图片描述

编辑(来自 Christian Feuersänger 的建议)

您还可以使用\edef它来复制此长度的当前表示。

 \edef\defaultpgflinewidth{\the\pgflinewidth}

答案2

您可以随时直接查询 PGF:

\documentclass{article}
\usepackage{tikz}

\begin{document}

\begin{tikzpicture}
\foreach \width [count=\yi] in {ultra thin,very thin,thin,semithick, thick, very thick, ultra thick}
  \node[\width] at (0,-0.5*\yi) {The value with the \texttt{\width} option is \the\pgflinewidth};
\end{tikzpicture}

\end{document}

在此处输入图片描述

以类似的方式,您可以定义一个命令来保留默认值:

\documentclass{article}
\usepackage{tikz}

\newcommand\defvalue{%
  \tikz[baseline=-0.5ex]\node[line width=\pgflinewidth] {The default value is \the\pgflinewidth};}

\begin{document}

\begin{tikzpicture}
\pgfsetlinewidth{3pt}
\draw (0,3ex) -- (1,3ex);
\node at (6,3ex) {The current value is \the\pgflinewidth. \defvalue};
\pgfsetlinewidth{3mm}
\draw (0,-1cm) -- (1,-1cm);
\node at (6,-1cm) {The current value is \the\pgflinewidth. \defvalue};
\end{tikzpicture}

\end{document}

在此处输入图片描述

答案3

如果您指的是标准线宽,则是0.4 pt或设置thin

\tikzstyle{ultra thin}=              [line width=0.1pt]
\tikzstyle{very thin}=               [line width=0.2pt]
\tikzstyle{thin}=                    [line width=0.4pt]
\tikzstyle{semithick}=               [line width=0.6pt]
\tikzstyle{thick}=                   [line width=0.8pt]
\tikzstyle{very thick}=              [line width=1.2pt]
\tikzstyle{ultra thick}=             [line width=1.6pt]

相关内容