何かを計算すると、pgfシステムの中間結果が大きくなることがあります。 fpuライブラリを使用できます。 TikZ & PGF マニュアル(627ページを参照)、 here here ですが、それでもこのエラーが発生します:

Paragraph ended before `\pgfflt@readlowlevelfloat` was complete. 

何が問題になっていますか?

コードは次のとおりです:

\documentclass{scrartcl} \usepackage{tikz} \usetikzlibrary{fpu} \begin{document} %data values: \def\RTable{{100,100.391,100.781,101.172,101.562,101.953,102.343,102.733,103.123,103.513,103.903,104.292,104.682,105.071,105.46,105.849,106.238,106.627,107.016,107.405,107.794,108.182,108.57,108.959,109.347,109.735,110.123,110.51,110.898,111.286,111.673,112.06,112.447,112.835,113.221,113.608,113.995,114.382,114.768,115.155,115.541,115.927,116.313,116.699,117.085,117.47,117.856,118.241,118.627,119.012,119.397,119.782,120.167,120.552,120.936,121.321,121.705,122.09,122.474,122.858,123.242,123.626,124.009,124.393,124.777,125.16,125.543,125.926,126.309,126.692,127.075,127.458,127.84,128.223,128.605,128.987,129.37,129.752,130.133,130.515,130.897}} %prints the result to the console: \pgfkeys{/pgf/fpu} \foreach \i in {0, ..., 80} { \pgfmathparse{abs(\RTable[\i] - 100 - 3.0897 / 8 * \i)}\i, \pgfmathresult\\ } \pgfkeys{/pgf/fpu=false} \end{document} 

更新:

ここでのマクロを使用しています(

シュレーディンガーの猫)。私のMWEを参照してください:

\documentclass{scrartcl} \usepackage{tikz} \usetikzlibrary{fpu} \newcommand\pgfmathparseFPU[1]{ \begingroup \pgfkeys{ /pgf/fpu, /pgf/fpu/output format = fixed } \pgfmathparse{#1} \pgfmathsmuggle \pgfmathresult \endgroup} \begin{document} %data values: \def\UABmValues{{14.9, 15.8, 17.7, 18.3, 19, 20, 21.1, 22.2, 24.3, 26.9, 30.1}} %prints the result to the console: \foreach[count = \i from 0] \k in {30, 35, ..., 80} { \pgfmathparseFPU{-25500 / (\UABmValues[\i] / 1000 - 255 / 52) - 5200 - 3.0897 / 8 * \k}\i, \pgfmathresult\\ } \end{document} 

それでも

Paragraph ended before `\pgfflt@readlowlevelfloat` was complete. 

エラーが発生します。何が問題なのですか?

事前にご協力とご尽力をありがとうございます!

コメント

  • I ' pgfmathはテキスト、次元レジスタ、fpuレジスタの間を絶えず変換しているため、これを修正できるかどうかはわかりません(これが、私がそれを踊る熊と見なす理由です)。
  • みなさん、こんにちは!専門家の誰も解決策の提案をしていませんか?
  • \pgfkeys{pgf/fpu=false}は、最近修正されない限り、缶に書かれていることを実行しないことに注意してください。
  • あなたはすでに良い答えを得ているので、これについて新しい質問をするべきだと思います。 \foreach[count = \i from 0] \k in {30, 35, ..., 80} { \pgfmathsetmacro{\myval}{\UABmValues[\i]} \pgfmathparseFPU{-25500/(\myval/1000-255/52)-5200-3.0897/8*\k}\i, \pgfmathresult\\ }は機能します。現在のところ、fpuは、整数操作やこの種のリスト抽出など、いくつかの機能をサポートしていません。したがって、fpuなしでエントリを抽出する必要があります。
  • @ Su-47 AlainMatthesの回答は良いと思います。どのシステムも数式処理システムと実際に競合することはできないことに注意してください。 TeXの根本的に新しいバージョンでは、内部の制限を本当に解除する必要がありますが、AFAIKでは新しいTeXをセットアップする予定はありません。また、私見では、expl3を使用して、作成した内容が1年後も機能することを確認できる状態になるまで待つことをお勧めします。 MatLabを使用しているように見えるので、いつでもこのツールでデータを生成し、pgfplotsまたはdatavisualizationでプロットできます。

回答

LaTeX3 FPUの仕事のように聞こえます:

\documentclass{article} \usepackage{expl3} \ExplSyntaxOn \cs_new_eq:NN \fpeval \fp_eval:n \cs_new_eq:NN \clistitem \clist_item:Nn \cs_new_eq:NN \foreachint \int_step_inline:nnnn \ExplSyntaxOff \begin{document} %data values: \def\RTable{100,100.391,100.781,101.172,101.562,101.953,102.343,102.733,103.123,103.513,103.903,104.292,104.682,105.071,105.46,105.849,106.238,106.627,107.016,107.405,107.794,108.182,108.57,108.959,109.347,109.735,110.123,110.51,110.898,111.286,111.673,112.06,112.447,112.835,113.221,113.608,113.995,114.382,114.768,115.155,115.541,115.927,116.313,116.699,117.085,117.47,117.856,118.241,118.627,119.012,119.397,119.782,120.167,120.552,120.936,121.321,121.705,122.09,122.474,122.858,123.242,123.626,124.009,124.393,124.777,125.16,125.543,125.926,126.309,126.692,127.075,127.458,127.84,128.223,128.605,128.987,129.37,129.752,130.133,130.515,130.897} %prints the result to the console: \foreachint{1}{1}{81}{% #1, \fpeval{abs(\clistitem\RTable{#1} - 100 - 3.0897 / 8 * (#1 - 1))}\\ } \end{document} 

expl3は、最も一般的な使用例であるタイプセットと一致するため、1からインデックスを付けることです。したがって、リストを1からインデックスを付けましたが、方程式自体については0からインデックスを付けるように修正しました。)

コメント

  • こんにちは@JosephWright!テストした回答ありがとうございます。 1。もちろん機能しますが、インデックス変数はゼロで始まる必要があります( 2。回答の結果は異なります。正しい結果は下向きのパラボラのようになります。こちらをご覧ください。あなたの答えの結果は、開いた上向きのパラボラのように見えます。多分私は何か間違ったことをします。 3。とにかく私は'あなたを使うことができません私の質問に答えてください(上記のリンクを参照してください)。何と言いますか?
  • @ Su-47 'リンクの意味がわかりません'上記'
  • ポイント2のリンクはおそらく( tex.stackexchange.com/questions/348739/ … )。
  • こんにちは@JosephWrightと@Torbj ø rn T.!久しぶりにごめんなさい。コメントしてくださってありがとうございます。 Torbj ø rnT。は正しいです。このリンクを意味します。これで結果は正しいです。しかし、前回のコメントで述べたように、'上記の回答を使用して別の質問を解決することはできません(上記のリンクを参照)。現在正しく理解している場合、TikZで配列とfpuを一緒に使用する方法はありませんか?別の解決策、おそらく配列としての別のデータ構造はありますか?

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です