获取 \seq_show:N 以打印到 PDF

获取 \seq_show:N 以打印到 PDF

有人能向我解释一下这是怎么回事吗?为什么没有\seq_show:N任何输出?

\documentclass{article}

\ExplSyntaxOn

\seq_new:N \l_test

\seq_put_right:Nn \l_test {a}

\begin{document}

\seq_count:N \l_test % returns 1, as expected

\seq_show:N \l_test % returns nothing

\end{document}

答案1

\seq_show:N打印到终端和文件.log\seq_log:N仅打印到.log),但不产生任何排版输出。如果您从 IDE(通常隐藏终端输出)运行 LaTeX,则必须打开文件.log才能查看输出:

The sequence \l_test_seq contains the items (without outer braces):
>  {a}
>  {b}.

也就是说,您可以轻松模仿该行为并创建一个对序列内容进行排版的函数:

在此处输入图片描述

\documentclass{article}

\ExplSyntaxOn

\seq_new:N \l_test_seq

\seq_put_right:Nn \l_test_seq {a}
\seq_put_right:Nn \l_test_seq {b}

\cs_new_protected:Npn \mjc_seq_print:N #1
  {
    \seq_if_empty:NTF #1
      { The~sequence~\token_to_str:N #1~is~empty. }
      {
        The~sequence~\token_to_str:N #1~contains~
        the~items~(without~outer~braces):
        \seq_map_inline:Nn #1
          { \\ >~\use:n { ~ } \char`{~ ##1 \char`}~ } .
      }
  }
\ExplSyntaxOff

\begin{document}

\ExplSyntaxOn
\seq_count:N \l_test_seq % returns 1, as expected

\seq_show:N \l_test_seq % returns nothing

\par

\noindent
\texttt{\mjc_seq_print:N \l_test_seq} % returns nothing

\end{document}

相关内容