Re: Decisione errata in base a confronto tra dimensioni

#81310
Up
0
Down
::

Liverpool” post=80543Non riesco a capire perché questo codice non funzioni correttamente (la parte che conta è il blocco [tt]ifdim[/tt], non c’è bisogno che vi concentriate sul resto):
`\documentclass{article}
\usepackage{tikz}
\makeatletter
\pgfarrowsdeclare{*}{*}
{
\pgfutil@tempdima=\pgfgetarrowoptions{*}%
\advance\pgfutil@tempdima by -0.5\pgflinewidth%
\pgfarrowsleftextend{+-0.5\pgflinewidth}
\pgfarrowsrightextend{+\pgfutil@tempdima}
}
{
\pgfutil@tempdima=\pgfgetarrowoptions{*}%
\ifdim\pgfutil@tempdima>5pt%
\PackageWarning{TikZ}{* arrow: tip length is too short for the selected line width}
\fi
\advance\pgfutil@tempdima by -\pgflinewidth%
\divide\pgfutil@tempdima by 2%
\pgfsetdash{}{+0pt}
\pgfpathcircle{\pgfqpoint{\pgfutil@tempdima}{0pt}}{\pgfutil@tempdima}
\pgfusepathqfillstroke
}
\makeatother
\pgfsetarrowoptions{*}{3pt}
\begin{document}
\begin{tikzpicture}
\draw[-*] (0,0) — (1,0);
\end{tikzpicture}
\end{document}`
[tt]\pgfutil@tempdima[/tt] è registro dimensione definito da [tt]TikZ[/tt]. Essendo uguale a 3 pt, non dovrei avere l’avviso; invece si comporta al contrario di come dovrebbe. Ho notato che il comportamento cambia a seconda dei valori che scelgo.

Altra domanda: riesco ad ottenere l’asterisco dell’avviso nel file di log, ma non nella finestrella dei messaggi di Texmaker. Come faccio a visualizzare l’asterisco anche lì?

Grazie e ciao

Credo che tu debba comunque dichiarare l’espressione `\pgfutil@tempdima=\pgfgetarrowoptions{*}%` come dimensione; quindi `\pgfmathsetlength{\pgfutil@tempdima}{\pgfgetarrowoptions{*}}%` dovrebbe essere il modo corretto.

Ciao
Claudio

Go to top