
Желаемый результат: таблица с номером строки и функцией от него (например, номер строки плюс один).
1 | 2 |
2 | 3 |
... | ... |
10 | 11 |
Пытаться:
Вот мой MWE, адаптированный изForeach внутри матрицы 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}
Вопрос: как отбросить десятичную часть в правом столбце?
Я пробовал использовать \pgfkeys{/pgf/number format/.cd,int detect,precision=2}
изТикРуководство Z поПечать номеров, но это ничего не изменило. Вложение \pgfmathresult
с \pgfmathprintnumber{}
дает неожиданные результаты.
решение1
Я не уверен, какова ваша цель. Вот довольно общий метод вывода значений в зависимости от индекса строки.
\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}
Второй аргумент следует скорректировать, как только вы узнаете количество цифр во втором столбце.
Мы также можем добавить отправную точку, чтобы иметь возможность составить таблицу синусов для углов в градусах от 1 до 45, что было бы очень полезно Птолемею.
\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}