弯曲的非整数值是否正确=TikZ 中允许吗?

弯曲的非整数值是否正确=TikZ 中允许吗?

下面的 MWE 使用非整数值 bend right=9.5键并在日志文件中产生以下消息:

缺少字符:nullfont 字体中没有 . !

缺少字符:字体 nullfont 中没有 5!

如果使用整数值,这两条消息就会消失。

问题:

  1. 这是一个错误tikz还是要求bend right=<angle><angle>是一个整数?
  2. 如果要求它是一个整数,那么是否存在一个列表,列出所有必须具有整数值的参数(不是计数器)?

笔记:

  • 这些消息不属于错误或警告,但我仍然不想执行此操作未曾料到部分代码tikz
  • 我意识到差异可能微不足道。但是,当我做初始规范时,我一定看到了一些差异,才会选择这个数字。那是很久以前的事了,但我怀疑我放大到了最大值(6400%)并调整了参数。

参考:

代码:

\documentclass{article}
\usepackage{tikz}

\def\BendAngle{9}
\def\BendAngle{9.5}% <-- Commenting this out clears the two "Missing character" messages

\begin{document}
\begin{tikzpicture}
    \draw [ultra thick] (0,0) to [bend right=\BendAngle] (3,0); 
\end{tikzpicture}
\end{document}

答案1

我觉得你发现了一个问题。tikzlibrarytopaths.code.tex其中一个发现

\tikzoption{bend right}[]{%
  \def\pgf@temp{#1}%
  \ifx\pgf@temp\pgfutil@empty%
  \else%
    \pgfmathsetmacro\tikz@to@bend{#1}%
  \fi%
  % Now, negate
  \pgfmathsetmacro\tikz@to@out{\tikz@to@bend}
  \c@pgf@counta=\tikz@to@bend\relax%
  \c@pgf@counta=-\c@pgf@counta\relax%
  \edef\tikz@to@out{\the\c@pgf@counta}%
  \c@pgf@counta=180\relax%
  \advance\c@pgf@counta by-\tikz@to@out\relax%
  \edef\tikz@to@in{\the\c@pgf@counta}%
  \tikz@to@switch@on%
  \tikz@to@relativetrue%
}

因此求反确实是使用 TeX 计数(即整数)完成的。这解释了为什么非整数部分被删除了。

\documentclass{article}
\usepackage{tikz}

\begin{document}
\begin{tikzpicture}
    \draw [ultra thick] (0,0) to [bend right=9.5] (3,0); 
    \draw [ultra thick,red,dashed] (0,0) to [bend right=9] (3,0); 
\end{tikzpicture}
\end{document}

在此处输入图片描述

您可以在以下位置添加问题适当的地方(如果你不愿意我很乐意这么做。)

相关内容