エクスシートの質問 (またはソリューション) 内にテーブルを作成したいのですが (その外部の別の pycode 環境で定義されたデータを使用します)、うまくいきません。何が間違っていたのでしょうか。どうすればうまく機能するのでしょうか。
以下に最小限の例を示します。
\documentclass{article}
\usepackage{exsheets}
\usepackage[gobble=auto]{pythontex}
\usepackage{siunitx}
\sisetup{
round-mode=places,
round-precision=1
}
\begin{document}
\begin{pycode}[mySession]
X = [1,2,3]
Y = [4,5,6]
k = len(X)
\end{pycode}
\begin{question}
A question with a table:
% The following code doesn't work
% \begin{pycode}[mySession]
% print(r'''\begin{tabular}{c*{%s}{|c}}''' %k)
% print(r'''$X$''')
% for x in X:
% print(r'''& \num{%s}''' %x)
% print(r'''\\\hline''')
% print(r'''$Y$''')
% for y in Y:
% print(r'''& \num{%s}''' %y)
% print(r'''\end{tabular}''')
% \end{pycode}
\end{question}
Table outside of the question environment:
\begin{pycode}[mySession]
print(r'''\begin{tabular}{c*{%s}{|c}}''' %k)
print(r'''$X$''')
for x in X:
print(r'''& \num{%s}''' %x)
print(r'''\\\hline''')
print(r'''$Y$''')
for y in Y:
print(r'''& \num{%s}''' %y)
print(r'''\end{tabular}''')
\end{pycode}
\end{document}
編集
exsheets を xsim に置き換えると演習内では機能しますが、演習とソリューション環境の両方にある場合は機能しません。
\documentclass{article}
\usepackage{xsim}
\usepackage[gobble=auto]{pythontex}
\usepackage{siunitx}
\sisetup{
round-mode=places,
round-precision=1
}
\begin{document}
\begin{pycode}[mySession]
X = [1,2,3]
Y = [4,5,6]
k = len(X)
\end{pycode}
\begin{exercise}
A exercise with a table:
\begin{pycode}[mySession]
print(r'''\begin{tabular}{c*{%s}{|c}}''' %k)
print(r'''$X$''')
for x in X:
print(r'''& \num{%s}''' %x)
print(r'''\\\hline''')
print(r'''$Y$''')
for y in Y:
print(r'''& \num{%s}''' %y)
print(r'''\end{tabular}''')
\end{pycode}
\end{exercise}
\begin{solution}
\begin{pycode}[mySession]
print(r'''\begin{tabular}{c*{%s}{|c}}''' %k)
print(r'''$X$''')
for x in X:
print(r'''& \num{%s}''' %x)
print(r'''\\\hline''')
print(r'''$Y$''')
for y in Y:
print(r'''& \num{%s}''' %y)
print(r'''\end{tabular}''')
\end{pycode}
\end{solution}
\printsolutions
\end{document}
答え1
パッケージexsheets
は古くなっているため、パッケージに正式に置き換えられましたxsim
。
\begin{question}
を次のように置き換える必要があります\begin{exercise}