foreach loop print PGF analisado matemática

foreach loop print PGF analisado matemática

Saída desejada: uma tabela com número de linha e uma função disso (digamos, número de linha mais um).

1 2
2 3
... ...
10 11

Tentar:

Aqui está meu MWE adaptado deForeach dentro de uma matriz TikZ.

\documentclass[tikz,preview]{standalone}
\usetikzlibrary{matrix}
\usepackage{etoolbox}

\begin{document}
\pgfkeys{/pgf/number format/.cd,fixed,int detect,precision=2}
\begin{tikzpicture}
    \let\mymatrixcontent\empty
    \foreach \myc in {1,...,10}{%
        \pgfmathparse{\myc+1}
        \xappto\mymatrixcontent{\expandonce{\myc \&}}
        \xappto\mymatrixcontent{\expandonce{\pgfmathresult\\}}
    }
    \matrix [matrix of nodes,ampersand replacement=\&] {
        \mymatrixcontent
    };
\end{tikzpicture}
\end{document}

matriz forloop de látex

Pergunta: como eliminar a parte decimal da coluna da direita?

Eu tentei usar \pgfkeys{/pgf/number format/.cd,int detect,precision=2}deTikManual de Z emImpressão de números, mas isso não mudou nada. Fechar \pgfmathresultcom \pgfmathprintnumber{}fornece resultados inesperados.

erro de matriz forloop de látex

Responder1

Não tenho certeza de qual é o seu objetivo. Aqui está um método bastante geral para gerar valores dependendo do índice da linha.

\documentclass{article}
\usepackage{siunitx}

\ExplSyntaxOn

\NewDocumentCommand{\formulatable}{mmm}
 {% #1 = number of rows
  % #2 = format of the column
  % #3 = formula to typeset
  \gnusupporter_formulatable:nnn { #1 } { #2 } { #3 }
 }

\cs_new:Nn \__gnusupporter_formulatable_do:n {}
\cs_new:Nn \__gnusupporter_formulatable_cycle:n
 {
  #1 & \__gnusupporter_formulatable_do:n { #1 } \\
 }

\cs_new_protected:Nn \gnusupporter_formulatable:nnn
 {
  \cs_set:Nn \__gnusupporter_formulatable_do:n { \fp_eval:n { #3 } }
  \begin{tabular}{rS[table-format=#2]}
  \int_step_function:nN { #1 } \__gnusupporter_formulatable_cycle:n
  \end{tabular}
 }

\ExplSyntaxOff

\begin{document}

\formulatable{10}{2.0}{#1+1}
\qquad
\formulatable{10}{1.6}{round(exp(#1/10),6)}
\qquad
\formulatable{10}{1.4}{round(sind(#1),4)}

\end{document}

insira a descrição da imagem aqui

O segundo argumento deve ser ajustado assim que você souber a quantidade de dígitos na segunda coluna.

Podemos adicionar também um ponto de partida, para que possamos compor a tabela de senos para ângulos em graus de 1 a 45, o que teria sido muito útil para Ptolomeu.

\documentclass{article}
\usepackage{siunitx}

\ExplSyntaxOn

\NewDocumentCommand{\formulatable}{mO{1}mm}
 {% #1 = number of rows
  % #2 = starting point
  % #3 = format of the column
  % #4 = formula to typeset
  \gnusupporter_formulatable:nnnn { #1 } { #2 } { #3 } { #4 }
 }

\cs_new:Nn \__gnusupporter_formulatable_do:n {}
\cs_new:Nn \__gnusupporter_formulatable_cycle:n
 {
  #1 & \__gnusupporter_formulatable_do:n { #1 } \\
 }

\cs_new_protected:Nn \gnusupporter_formulatable:nnnn
 {
  \cs_set:Nn \__gnusupporter_formulatable_do:n { \fp_eval:n { #4 } }
  \begin{tabular}{rS[table-format=#3]}
  \int_step_function:nnN { #2 } { #1+#2-1 } \__gnusupporter_formulatable_cycle:n
  \end{tabular}
 }

\ExplSyntaxOff

\begin{document}

\formulatable{15}{1.4}{round(sind(#1),4)}
\quad
\formulatable{15}[16]{1.4}{round(sind(#1),4)}
\quad
\formulatable{15}[31]{1.4}{round(sind(#1),4)}

\end{document}

insira a descrição da imagem aqui

informação relacionada