使用 *% 和 %* 来阻止注释

使用 *% 和 %* 来阻止注释

comment我知道允许使用的包:

\begin{comment}
Lines
to
comment
\end{comment}

这个使用起来不是很友好。我希望有以下可能性:

*%
Lines
to
comment
%*

这类似于 JavaScript、C 或 C++ 中的多行版本注释。

这种语法非常有用,因为我可以使用......

评论

*%
Lines
to
comment
%*

没有意见

%*%
Lines
to
comment
%*

有没有办法分别使用*%%*代替\begin{comment}\end{comment}

答案1

不使用 LuaTeX 也是可行的,但不够稳定。我使用了~%%~而不是*因为激活会破坏预期属于其他类别代码的*命令(例如,将不再起作用)。*\section*{...}

\begingroup
    \catcode `\@ = 11
    \catcode `\~ = 13
    \catcode `\% = 12
    \protected\long\gdef\cmt@remove#1%~{\endgroup}
    \ifdefined~
        \global\let\cmt@old~
    \else
        \global\let\cmt@old\relax
    \fi
    \protected\gdef~{\begingroup\catcode`%=12
        \futurelet\next\cmt@}
    \protected\gdef\cmt@
      {\ifx%\next
           \expandafter\cmt@remove
       \else
           \endgroup\expandafter\cmt@old
       \fi}
\endgroup

答案2

在 ConTeXt MkIV 中,您可以使用普通注释环境(称为隐藏)执行此操作。环境停止标记不必位于其自己的行上。因此,您可以使用:

\starttext
Normal
\starthiding                                                                                                                              
  Hidden
%\stophiding
\stoptext

如果注释以 开头的行\starthiding,则会显示隐藏的内容。

但是如果您想包含和排除环境,最好定义一个新的注释环境并使用\includecomment\excludecomment改变其行为。

相关内容