我想将外部文件中的数字读入\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.txt
,filecontents
但是如果您有该文件,则不需要这个。
\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 提议也可以。(我刚才看到这个评论。)