注意:以下 MWE 对于任何形式的使用或进一步应用都没有任何意义,而仅仅是为了尝试问题标题上明确写的包。
\documentclass{article}
\usepackage{xparse}
\ExplSyntaxOn
\dim_new:N \l_shcstyle_instruction_length
\dim_set:Nn \l_shcstyle_instruction_length { 8em }
\box_new:N \l_shcstyle_bullet_box
\hbox_set:Nn \l_shcstyle_bullet_box { \textbullet\ }
\NewDocumentCommand{\mybulletpar}{ m }
{
\parbox{\dim_use:N \l_shcstyle_instruction_length}
{
\hbox_overlap_left:n
{
%\box_move_up:nn { 0ex }
%{
\box_use:N \l_shcstyle_bullet_box
%}
}
#1
}
}
\ExplSyntaxOff
\begin{document}
This is a \mybulletpar{some random text used to test newcommand}
\end{document}
因此,我一直在研究一些 LaTeX 3 包,尤其是l3box
和,l3skip
因为它们看起来很容易理解,但我不确定它们是否正确使用以及在命令中的实现。例如,上面的 MWE,我创建了一个新的维度;我想我把它命名为 local 是正确的。之后,我把它的大小设置为8em
。然后我创建了一个框并用它来设置的内容hbox
。到目前为止还不算什么难事。然后我尝试使用命令\hbox_overlap_left:n { box }
来让它有点像一个\llap{<content>}
。(不太确定这是否是它的正确用法。)但请注意,当我使用我创建的框时\box_use:N \l_shcstyle_bullet_box
,它会创建一个空行。奇怪的?老实说,我只是在试验这个。
对命令的命名、使用或其他示例实现的任何见解和更正都会帮助我更好地理解 LaTeX 3。请注意,interface3
仅提供了一些命令的描述。
我还对如何使用以下命令感兴趣:
\box_move_right:nn {<dimexpr>} {<box function>}
\box_move_left:nn {<dimexpr>} {<box function>}
以及涉及以下方面的命令:\vbox:n {<contents>}