请问为什么tcbr中会显示&是错误的呢

发布于 2022-12-31 08:51:32
\documentclass{article}
\usepackage{tabularray}
\ExplSyntaxOn
\seq_gclear:N \g_tmpa_seq
\int_step_inline:nnn {0} {18} {
\seq_put_right:Nn \l_tmpa_seq {
$\sin #1^\circ = \fp_eval:n {sin(#1 * \c_one_degree_fp)}$
}
\int_compare:nNnT {#1} > {0} {
\int_compare:nNnTF {\int_mod:nn {#1 + 1} {3}} = {0} {
\seq_put_right:Nx \g_tmpa_seq {
\seq_use:Nn \l_tmpa_seq {\\}
}
}
{
\seq_put_right:Nx \g_tmpa_seq {
\seq_use:Nn \l_tmpa_seq {&}
}
}
\seq_clear:N \l_tmpa_seq
}
}
\ExplSyntaxOff
\begin{document}
\ExplSyntaxOn
\centering
\begin{tblr}{|c|c|c|}
\seq_use:Nn \g_tmpa_seq {\\}
\end{tblr}
\par
\ExplSyntaxOff
\end{document}

上面代码使用tabularray宏包后,会出现这种报错,请问大佬们这是为什么呢?麻烦了,谢谢
image.png
erewhon-math.zip

查看更多

关注者
0
被浏览
605
2 个回答
雾月
雾月 2022-12-31
这家伙很懒,什么也没写!

第一,你的这个代码逻辑有问题。
第二,tblr 不会自动展开它的内容,必须使用 expand 选项设置要展开的命令,否则这个命令的内容会进入到某一个单元格中。

代码并不复杂:

\ExplSyntaxOn
\tl_clear:N \l_my_tmp_tl
\int_step_inline:nnn { 0 } { 18 }
  {
    \tl_put_right:Nn \l_my_tmp_tl 
      { $ \sin #1^\circ = \fp_eval:n { sin( #1 * \c_one_degree_fp ) } $ }
    \int_compare:nNnTF { \int_mod:nn { #1+1 } { 3 } } = { 0 }
      { \tl_put_right:Nn \l_my_tmp_tl { \\ } }
      { \tl_put_right:Nn \l_my_tmp_tl { & } }
  }

\centering
\begin{tblr}[expand=\l_my_tmp_tl]{|c|c|c|}
\l_my_tmp_tl
\end{tblr}
\par
\ExplSyntaxOff

image.png

另一种排布:

\tl_clear:N \l_my_tmp_tl
\seq_clear:N \l_my_tmpa_seq
\seq_clear:N \l_my_tmpb_seq
\seq_clear:N \l_my_tmpc_seq
\int_step_inline:nnn { 7 } { 12 }
  {
    \seq_put_right:Nn \l_my_tmpb_seq
      { $ \sin #1^\circ = \fp_eval:n { sin( #1 * \c_one_degree_fp ) } $ }
  }
\int_step_inline:nnn { 13 } { 18 }
  {
    \seq_put_right:Nn \l_my_tmpc_seq
      { $ \sin #1^\circ = \fp_eval:n { sin( #1 * \c_one_degree_fp ) } $ }
  }
\int_step_inline:nnn { 0 } { 6 }
  {
    \tl_set:Nn \l_my_tmpa_tl { $ \sin #1^\circ = \fp_eval:n { sin( #1 * \c_one_degree_fp ) } $ }
    \seq_pop_left:NNF \l_my_tmpb_seq \l_my_tmpb_tl 
      { \tl_set_eq:NN \l_my_tmpb_tl \c_empty_tl }
    \seq_pop_left:NNF \l_my_tmpc_seq \l_my_tmpc_tl 
      { \tl_set_eq:NN \l_my_tmpc_tl \c_empty_tl }
    \tl_put_right:Nx \l_my_tmp_tl
      { \exp_not:o \l_my_tmpa_tl & \exp_not:o \l_my_tmpb_tl & \exp_not:o \l_my_tmpc_tl \exp_not:N \\ }
  }

\begin{tblr}[expand=\l_my_tmp_tl]{|c|c|c|}
\l_my_tmp_tl
\end{tblr}
\par

image.png

另外,TeX 的计算结果并不一定十分准确,专业的计算交给专业的软件。

o(∩_∩)o
o(∩_∩)o 2022-12-31
这家伙很懒,什么也没写!

不好意思我附件传错了,谢谢大佬!请问一下expand是tex命令吗?另外expand这些命令,需要看什么文档呢?麻烦了

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览