是否有一个 LaTeX 包可以让我明确显示段落的缩进?

是否有一个 LaTeX 包可以让我明确显示段落的缩进?

我正在寻找文档中的以下效果:

在此处输入图片描述

或者像这样:

有人读到我了吗?我很孤独。:(

是否有一个包可以让我做到这一点?

答案1

以下代码使制表符处于活动状态,并且每次遇到制表符时都会增加计数器。在段落的开头,添加了一个段落钩子,该钩子会移除由缩进插入的框,检查缩进的深度,将其设置\leftskip为深度倍数\parindent,然后在左侧添加适当宽度的箭头。

\documentclass{article}
\usepackage{everyhook}
\usepackage{lipsum}
\newcount\indentdepth
\newdimen\savedleftskip
\catcode`\^^I\active
\newenvironment{tabs}{%
    \savedleftskip=\leftskip
    \catcode`\^^I\active
    \def^^I{%
        \ifhmode
            \par
        \fi
        \advance\indentdepth by1
    }%
    \PushPreHook{par}{%
        {\setbox0\lastbox}% kill the indent
        \ifnum\indentdepth>0
            \leftskip\dimexpr\savedleftskip+\parindent*\indentdepth\relax
            \llap{\hbox to\leftskip{\rightarrowfill}}%
        \fi
    }%
    \def\par{%
        \endgraf
        \indentdepth=0
        \leftskip=\savedleftskip
    }%
    \indentdepth=0
}{%
    \par
    \PopPreHook{par}%
}
\catcode`^^I10
\begin{document}
\begin{tabs}
No indent on the text here.
        One indent.
                Two indent.
                More.
                Even More.
                Blah.
        Back to one indent.

Back to no indent.
        \lipsum[1]
                \lipsum[2]
\end{tabs}
\end{document}

请注意, 之前有一个空行Back to no indent。这样做的原因是,除非 TeX 注意行尾(例如,通过使用\obeylines),否则无法区分行尾和空格。任何缩进的内容都可以区分,因为制表符会导致段落结束。

如果您复制并粘贴此代码,请务必将使用环境中的 8 个空格缩进更改tabs为实际的“硬”制表符。

这是第二种方法,与第二个示例类似。这里,换行符在输出中开始新行。任何高于 a 的行都\strut不会在其前面绘制相应的规则。

\documentclass{article}
\usepackage{everyhook}
\newdimen\tabwidth
\newcount\indentdepth
\tabwidth=\parindent
\catcode`\^^I\active
\newenvironment{tabs}{%
    \catcode`\^^I\active
    \def^^I{\advance\indentdepth by1}%
    \def\par{\endgraf\indentdepth=0}%
    \PushPreHook{par}{%
        \ifnum\indentdepth>0
            \hbox to\dimexpr\tabwidth*\indentdepth{%
                \hfill\vrule height\ht\strutbox depth\dp\strutbox\ %
            }%
        \fi
    }%
    \parindent=0pt
    \obeylines
    \indentdepth=0
}{%
    \PopPreHook{par}%
}
\catcode`\^^I10
\begin{document}
\begin{tabs}
No indent on the text here.
        One indent.
                Two indent.
                More
                Even More.
                Blah.
        Back to one indent.
Back to no indent.
\end{tabs}
\end{document}

再次确认是否重新添加标签。

相关内容