在 Latex 中抓取一段或指定数量的文本

在 Latex 中抓取一段或指定数量的文本

我想弄清楚如何划掉(在文本上画一条斜线或对角线)一些行(特别是一个段落)。有人知道执行此操作的简单命令吗?我期望存在像 \begin{comment} 和 \end{comment} 命令这样简单的命令,它只会隐藏一定数量的文本。

我将非常感激任何帮助。

答案1

您可以使用 来执行此操作tikzmark。请注意,这不会跨分页符起作用。

在此处输入图片描述

\documentclass{article}

\usepackage{lipsum}
\usepackage{tikz}
\usetikzlibrary{tikzmark, calc}

\newenvironment{scratch}{\pgfmark{A}}{\pgfmark{B}\tikz[remember picture, overlay]{\draw[thick] let \p1=(pic cs:A), \p2=(pic cs:B) in (\x1,\y2)--([shift={(\linewidth,-1ex)}]\x1,\y1);}}

\begin{document}

\lipsum[1]

\begin{scratch}
\lipsum[2]
\end{scratch}

\lipsum[3]

\end{document}

答案2

另一个想法是使用tcolorbox允许带有划痕的段落跨页的包(但如果您想在其他框或表格中使用它,可能会出现问题):

\documentclass{article}

\usepackage{lipsum}
\usepackage{tcolorbox}
\tcbuselibrary{breakable, skins}

\NewTColorBox{scratch}{ }{
    enhanced,
    breakable,
    size=minimal,
    colback=transparent!0,
    colframe=transparent!0,
    overlay={
        \draw (frame.south west)
            -- (frame.north east);
    }
}


\begin{document}

\lipsum[1]

\begin{scratch}
\lipsum[2]
\end{scratch}

\lipsum[3]

\begin{scratch}
\lipsum[5-7]
\end{scratch}

\end{document}

在此处输入图片描述

相关内容