我是否应该使用 \unskip 或 \ignorespaces 来标记并隐藏多余的内容?

我是否应该使用 \unskip 或 \ignorespaces 来标记并隐藏多余的内容?

我想定义一个\removable命令来标记\footnote我认为是多余的和可有可无的单词、短语、句子甚至整个段落,以便有一天我不得不删减我的论文以达到字数限制。

\newif\ifremove
\newcommand\removable[1]{\ifremove\else #1\fi}

但就目前情况而言,当\ifremove结果为真时,会\removable出现一个额外的空格。

This is \removable{clearly} right.

在此处输入图片描述

我想我需要在其中添加\unskip\ignorespaces

\newcommand\removable[1]{\ifremove\unskip       \else #1\fi}
\newcommand\removable[1]{\ifremove\ignorespaces \else #1\fi}

考虑到\removable不仅要在句子中使用,还要在段落的开头和结尾、垂直模式的中间以及各种上下文中使用,我应该使用哪一个:\unskip\ignorespaces?或者是别的什么?

\documentclass{article}

\newif\ifremove
\newcommand\removable[1]{\ifremove\else#1\fi}
\removetrue    

\begin{document}

  This is \removable{clearly} right.

  \removable{This is ridiculously right.}

  That's it.

\end{document}

答案1

您可以按如下方式操作。LaTeX 内核定义\@bsphack\@esphack使命令对空间“透明”。

\documentclass{article}

\newif\ifremove
\removetrue    

\makeatletter
\newcommand\removable[1]{%
  \ifremove
    \expandafter\@firstoftwo
  \else
    \expandafter\@secondoftwo
  \fi
  {\@bsphack\@esphack}{#1}%
}
\makeatother

\begin{document}

\section{Removed}

This is \removable{clearly} right.

\removable{This is ridiculously right.}

That's it.

\section{Shown}\removefalse

This is \removable{clearly} right.

\removable{This is ridiculously right.}

That's it.

\end{document}

在此处输入图片描述

相关内容