我的package.dtx
导出package.sty
和package-debug.sty
包含更多未在中排版的材料package.pdf
。为了实现这一点,我使用以下模式,其中package-debug
当nodebug
导出标志为 false 时,包名称是,当导出标志为 falsepackage
时。环境会吞噬不应出现在中的行。debug
gobble
package.pdf
% \iffalse meta-comment
%<*driver>
\documentclass{l3doc}
\begin{document}
\DocInput{\jobname.dtx}
\end{document}
%</driver>
% \fi
%
% \NewDocumentEnvironment {gobble} { +b } {} {}
% \begin{gobble}
%<*package>
% \end{gobble}
%
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}[2020/01/01]
\ProvidesExplPackage
% \end{macrocode}
% \begin{gobble}
%<*!debug>
% \end{gobble}
% \begin{macrocode}
{package}
% \end{macrocode}
% \begin{gobble}
%</!debug>
%<*!nodebug>
{package-debug}
%</!nodebug>
% \end{gobble}
% \begin{macrocode}
{2022/10/28}
{1.0}
{Minimal example}
% \end{macrocode}
% \begin{gobble}
%</package>
% \end{gobble}
输出内容为
如何删除第 3 行之前和之后的多余垂直空间?
我尝试过类似
\NewDocumentEnvironment {gobble} { +b } {\vspace{-0.5em}} {}
但在实际中,-0.5em
长度有时太大,有时太小。
答案1
这与您的调试和吞噬代码无关。您也可以通过两个宏代码环境轻松获得此空间。宏代码使用 trivlist,因此最简单的方法是使用 enumitem 并设置选项nosep
:
% \iffalse meta-comment
%<*driver>
\documentclass{l3doc}
\usepackage{enumitem}
\setlist[trivlist]{nosep}
\begin{document}
\DocInput{\jobname.dtx}
\end{document}
%</driver>
% \fi
%
% \NewDocumentEnvironment {gobble} { +b } {} {}
% \begin{gobble}
%<*package>
% \end{gobble}
%
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}[2020/01/01]
\ProvidesExplPackage
% \end{macrocode}
% \begin{gobble}
%<*!debug>
% \end{gobble}
% \begin{macrocode}
{package}
% \end{macrocode}
% \begin{gobble}
%</!debug>
%<*!nodebug>
{package-debug}
%</!nodebug>
% \end{gobble}
% \begin{macrocode}
{2022/10/28}
{1.0}
{Minimal example}
% \end{macrocode}
% \begin{gobble}
%</package>
% \end{gobble}