我如何读取 pgfmathsetmacro 命令的输入

我如何读取 pgfmathsetmacro 命令的输入

我想将外部文件中的数字读入\pgfmathsetmacro命令,但它似乎不起作用

\documentclass[tikz]{standalone}

\usepackage{tikz}
\usetikzlibrary{arrows}

\pgfmathsetmacro{\rotateangle}{{\input{rotateanglenum.txt}}}

\begin{document}
    \begin{tikzpicture}
        \pgfmathsetmacro{\radius}{3}
        \pgfmathsetmacro{\angle}{180}
        \pgfmathsetmacro{\sum}{\angle+\rotateangle}
        \draw[blue, thin] (0,0) -- (\sum:\radius);

        \draw[red, thick] (0,0) circle (\radius cm);
    \end{tikzpicture}
\end{document}

编辑:

\begin{filecontents}{rotateanglenum.txt}
-10
\end{filecontents}

日志读取 .tex:6:缺少数字,视为零。\def l.6 ...\rotateangle}{{\input{rotateanglenum.txt}}}

这里应该有一个数字;我0'. (If you can't figure out why I needed to see a number, look up在 TeXbook 索引中插入了“奇怪的错误”。)

有可能吗?为什么会出现此问题?

我试图将命令移动到 tikzpicture 环境内,但编译却卡住了。

答案1

这是一个例子。为了使其独立,我生成了文件rotateanglenum.txtfilecontents但是如果您有该文件,则不需要这个。

\documentclass[tikz]{standalone}
\begin{filecontents*}{rotateanglenum.txt}
10
\end{filecontents*}
\usepackage{catchfile}
\usepackage{tikz}
\usetikzlibrary{arrows}
\CatchFileEdef{\rotateangle}{rotateanglenum.txt}{}

\begin{document}
    \begin{tikzpicture}
        \pgfmathsetmacro{\radius}{3}
        \pgfmathsetmacro{\Angle}{180}
        \pgfmathsetmacro{\Sum}{\Angle+\rotateangle}% better not use \sum
        \draw[blue, thin] (0,0) -- (\Sum:\radius);

        \draw[red, thick] (0,0) circle[radius=\radius cm];
    \end{tikzpicture}
\end{document}

在此处输入图片描述

\CatchFileDef\rotateangle{rotateanglenum.txt}{}, 作为Henri Menke 提议也可以。(我刚才看到这个评论。)

相关内容