下面的 MWE 使用非整数值 bend right=9.5
键并在日志文件中产生以下消息:
缺少字符:nullfont 字体中没有 . !
缺少字符:字体 nullfont 中没有 5!
如果使用整数值,这两条消息就会消失。
问题:
- 这是一个错误
tikz
还是要求bend right=<angle>
它<angle>
是一个整数? - 如果要求它是一个整数,那么是否存在一个列表,列出所有必须具有整数值的参数(不是计数器)?
笔记:
- 这些消息不属于错误或警告,但我仍然不想执行此操作未曾料到部分代码
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}
您可以在以下位置添加问题适当的地方(如果你不愿意我很乐意这么做。)