pgfplots - 如何将所有默认线宽/厚度值设置为某个值?

pgfplots - 如何将所有默认线宽/厚度值设置为某个值?

经过讨论并检查了文档的几页打印件(由我自己的打印机打印),我决定尝试将线宽更改为另一个默认值,例如(从默认值semithick增加到,等于)。商店中大型商用机器的打印件可能会产生令人满意的结果,但我想以“宁可安全也不要后悔”的方式进行。0.6pt0.4ptthinthin

我们怎样才能做到这一点?

平均能量损失

\documentclass{scrartcl}

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}

\usepackage{
tikz,
pgfplots,
}

\usetikzlibrary{
intersections,
calc
}

\begin{document}
\begin{center}
    \begin{tikzpicture}
    \draw
    (0,0) coordinate (A)
    (3,3) coordinate (B)
    (0.5,1) coordinate (C)
    (2.5,1) coordinate (D)
    ;
    \draw[thick] (A) rectangle (B);
    \draw[orange, ultra thick, ->] (C) -- (D);
    \end{tikzpicture}
\end{center}
\begin{center}
    \begin{tikzpicture}
    \begin{axis}
    \addplot {rand};
    \end{axis}
    \end{tikzpicture}
\end{center}
\end{document}

答案1

在“12.2.1 使用环境创建图片”的第 126 页,TikZ 手册提供了以下信息:

/tikz/every picture (样式,最初为空)

此样式安装在每张图片的开头。

\tikzset{every picture/.style=semithick}

请注意,您不应\tikzset直接使用 来设置选项。例如,如果您想默认使用 1pt 的线宽,请不要尝试\tikzset{line width=1pt}在文档开头说 。这不会起作用,因为线宽在许多地方都会改变。相反,说\tikzset{every picture/.style={line width=1pt}}。这将产生所需的效果。

为了创造预期的效果

  • 轴线宽度,

  • 绘图线宽度,

  • 网格线宽度和

  • 图例线宽,

我在 MWE 中实现了相关代码。当然,隐含和接受的是,\draw没有任何进一步详细线宽的命令将遵守这些设置。

如果有人有这方面的经验或者发现了错误,请留下评论或回复并提出改进意见。

解决方案图片

在此处输入图片描述

解决方案

\documentclass{scrartcl}

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}

\usepackage{
tikz,
pgfplots,
}

\usetikzlibrary{
calc
}

%===================================================
%SOLUTION STARTS HERE - comment out to see change
%===================================================
\newcommand{\mybasiclinewidth}{semithick}
%source is page 126 in the manual
\tikzset{
every picture/.style={
\mybasiclinewidth} %or use: "`line width=1 pt,"<-- note:if you write line width, you must use a value with unit
}
\pgfplotsset{
every axis/.append style={
\mybasiclinewidth,
grid style={
    \mybasiclinewidth,
},
tick style={
    \mybasiclinewidth,
},
},
}
%===================================================
%SOLUTION ENDS HERE - comment out to see change
%===================================================

\newcommand{\linevertspace}{-0.3cm}

\begin{document}
\begin{center}
\begin{tikzpicture}[font=\footnotesize\sffamily]
\draw
(0,0) coordinate (thinLEFT)
($(thinLEFT)+(0,\linevertspace)$) coordinate (semithicktestLEFT)
($(semithicktestLEFT)+(0,\linevertspace)$) coordinate (semithickLEFT)
($(semithickLEFT)+(0,\linevertspace)$) coordinate (thickLEFT)
%
($(thinLEFT)+(3,0)$) coordinate (thinRIGHT)
($(semithicktestLEFT)+(3,0)$) coordinate (semithicktestRIGHT)
($(semithickLEFT)+(3,0)$) coordinate (semithickRIGHT)
($(thickLEFT)+(3,0)$) coordinate (thickRIGHT)
;
\draw[thin] (thinLEFT) -- (thinRIGHT) node [right] {thin};
\draw (semithicktestLEFT) -- (semithicktestRIGHT) node [right] {$\leftarrow$ default line width!};
\draw[semithick] (semithickLEFT) -- (semithickRIGHT) node [right] {semithick};
\draw[thick] (thickLEFT) -- (thickRIGHT) node [right] {thick};
\end{tikzpicture}
\end{center}
\begin{center}
    \begin{tikzpicture}
    \begin{axis}
    \addplot {rand};
    \end{axis}
    \end{tikzpicture}
\end{center}
\end{document}

相关内容