You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TikZ自定义Lines图案默认显示虚线,如何改为实线填充?

TikZ自定义Pattern线条实现实线填充的解决方案

问题出在TikZ Pattern库的自定义线条图案中,默认笔触设置可能带有虚线属性,需要显式强制设置实线样式。

修改后的最小工作示例

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{patterns}

% 自定义实线填充图案
\pgfdeclarepatternformonly{solid angled lines}
{\pgfpointorigin} % 图案边界左下角
{\pgfpoint{1cm}{1cm}} % 图案边界右上角
{\pgfpoint{1cm}{0cm}} % 图案重复单元的大小
{
  \pgfsetlinewidth{0.3pt} % 定义填充线条宽度
  \pgfsetdash{}{0pt}      % 强制关闭虚线模式,使用实线
  \pgfpathmoveto{\pgfpoint{0}{0}}
  \pgfpathlineto{\pgfpoint{1cm}{1cm}} % 按指定角度绘制线条
  \pgfusepath{stroke}
}

\begin{document}
\begin{tikzpicture}
  % 使用自定义实线图案填充矩形
  \draw[pattern=solid angled lines] (0,0) rectangle (4,3);
\end{tikzpicture}
\end{document}

关键修改说明

  • \pgfsetdash{}{0pt}:此命令重置线条的虚线参数,第二个参数设为0pt表示无虚线间隔,强制绘制实线,这是解决虚线问题的核心步骤。
  • \pgfsetlinewidth:可选但建议添加,明确指定填充线条的宽度,避免继承全局样式或出现过细线条。

如果使用带颜色的自定义图案(\pgfdeclarepatterninherentlycolored),只需在图案定义块中加入同样的\pgfsetdash和\pgfsetlinewidth命令即可。

内容的提问来源于stack exchange,提问作者Sarah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 09:54:59