棺材盒中的 LaTeX3 扩展

棺材盒中的 LaTeX3 扩展

我尝试设置一个棺材盒,它扩展了一些在其中排版的变量,但却无功而返。


编辑

背景信息:我正在尝试编写一个包,让用户可以编写会议记录或备忘录文件。公司设计规则要求,作者姓名以及其他信息(日期、组织等)应打印在一个框中,该框通常位于页面的右上方。左侧是徽标。

如果文档不用于打印,则需要用浅灰色填充徽标、作者框和右侧边距。如果打印在纸上,您有两个选择。最好使用预印纸,其中已经存在徽标和灰色框,因此文档中不能包含徽标和灰色边距框(但作者框当然必须包含!)。如果没有这种预印纸,则应将徽标、灰色边距框和作者信息框的位置稍微向内修正,这是由于(激光、喷墨等)打印机的常见限制,它们无法打印到给定纸张的边框。

预定义/预填充的棺材盒的概念似乎是我选择的工具。


我定义了一个局部变量l__author_tl。为了说明清楚,该变量用一个起始值初始化。我还定义了一个文档命令,用于操作该变量的值。

接下来,我定义了一个棺材l__author_coffin,用于打印变量l__author_tl。到目前为止,效果很好,但是变量没有扩展,正如您在 MWE 中看到的那样。

\documentclass{arcticle}
\usepackage{expl3}

\ExplSyntaxOn
%% Defining the internal, local author variable
\tl_new:N \l__author_tl
\tl_set:Nn \l__author_tl {first\ value}
%% How to manipulate the variable
\NewDocumentCommand{\myauthor} {m}
  {
    \tl_set:Nn \l__author_tl {#1}
  }
%% Just for debugging: print out the actual value of the variable
\NewDocumentCommand {\printauthor} {}
  {
    \l__author_tl
  }
%% Create a new coffin box and define its content.
\coffin_new:N \l__author_coffin
\hcoffin_set:Nn \l__author_coffin
  {
    \sffamily\footnotesize
    \tl_use:N \l__author_tl\ 
    \today 
  }
%% This command will print out the coffin box
\NewDocumentCommand {\mybox} {}
  {
    \fbox{%
      \coffin_typeset:Nnnnn \l__author_coffin {l}{t}{0pt}{0pt}%
    }
  }
\ExplSyntaxOff


\begin{document}
%% Print the box, as is
\mybox
%% Redefine the authors name
\myauthor{new value}
%% Just to be sure, the value of \l__author_tl was changed.
\printauthor
%% Print the box again
\mybox
\end{document}

从下面的输出可以看出,棺材可以工作,但它不会扩展变量内容。

棺材的输出,不会膨胀

(我将变量定义为局部内部变量。我也尝试了全局变量。结果相同!)

我是 LaTeX3 的新手,很难理解什么时候会扩展。我也尝试添加\tl_use:N \l__author_tl棺材,但结果还是一样,没有扩展。

任何帮助将不胜感激。

答案1

做的时候需要先设置棺材\myauthor,因为一旦设置了棺材,里面的内容就是固定的,因为已经排版过了。

%% This command will print out the coffin box
\NewDocumentCommand {\mybox} {}
  {
    \hcoffin_set:Nn \l__author_coffin
      {
        \sffamily\footnotesize
        \tl_use:N \l__author_tl\ 
        \today 
      }
    \fbox{%
      \coffin_typeset:Nnnnn \l__author_coffin {l}{t}{0pt}{0pt}%
    }
  }

相关内容