어떤 것을 계산할 때 때때로 pgf 시스템의 중간 결과가 커집니다. fpu 라이브러리를 사용할 수 있습니다. TikZ & PGF 매뉴얼 (627 페이지 참조), 여기 여기 이지만 여전히이 오류가 발생합니다.

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} 

업데이트 :

여기 의 매크로를 사용하고 있습니다 ( Schrödinger의 고양이 ). 내 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 Alain Matthes 대답이 좋은 것 같습니다. 어떤 시스템도 실제로 컴퓨터 대수 시스템과 경쟁 할 수 없습니다. 근본적으로 새로운 버전의 TeX는 내부 한계를 정말 해제해야하지만 AFAIK는 새로운 TeX를 설정할 계획이 없습니다. IMHO는 expl3을 사용하여 작성한 내용이 지금부터 1 년 후에도 계속 작동 할 수있는 상태가 될 때까지 기다리는 것이 좋습니다. MatLab을 사용하는 것처럼 보이기 때문에이 도구로 데이터를 생성 한 다음 pgfplots 또는 데이터 시각화로 플롯 할 수 있습니다.

Answer

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부터 인덱싱했습니다.)

Comments

  • @Joseph Wright 안녕하세요! 답변 해 주셔서 감사합니다. 테스트했습니다. 1. 물론 작동하지만 색인 변수는 0으로 시작해야합니다. 나의 특별한 목적). 2. 답변의 결과가 다릅니다. 올바른 결과는 아래쪽 포물선처럼 보여야합니다. 여기 를 참조하세요. 답변의 결과가 위쪽으로 열린 포물선처럼 보입니다. 내가 뭔가 잘못했을 수도 있습니다. 3. 어쨌든 ' 내 질문에 대답하십시오 (위 링크 참조). 무슨 말을 하시나요?
  • @ Su-47 ' 링크에 대해 무슨 뜻인지 모르겠습니다. ' 위 '
  • 점 2의 링크 일 가능성이 높습니다 ( tex.stackexchange.com/questions/348739/ … ).
  • 안녕하세요 @Joseph Wright 및 @Torbj ø rn T.! 오래간만에 죄송합니다. 귀하의 의견에 감사드립니다. Torbj ø rn T. 맞습니다. 이 링크 를 의미했습니다. 이제 결과는 옳습니다. 그러나 마지막 댓글에서 말했듯이 ' 위 답변을 사용하여 다른 질문을 해결할 수 없습니다 (위 링크 참조). 현재 올바르게 이해하면 TikZ에서 배열과 fpu를 함께 사용할 방법이 없습니까? 다른 솔루션이 있습니까, 아마도 배열과 같은 다른 데이터 구조입니까?

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다