在 \tabfill 中缩进文本(制表环境)

在 \tabfill 中缩进文本(制表环境)

我不是 LaTeX 专家。因此,这个问题可能听起来微不足道。我正在使用制表符环境,并且有很长的行需要换行。因此,我使用命令\tabfill来执行此操作。

\newcommand\tabfill[1]{%\dimen@\linewidth%
\advance\dimen@\@totalleftmargin%
\advance\dimen@-\dimen\@curtab%
\parbox[t]\dimen@{#1\ifhmode\strut\fi}%
% or, to avoid stretching:
% \parbox[t]\dimen@{\raggedright #1\ifhmode\strut\fi}%
}

我对此命令的唯一问题是框内的文本\tabfill与左边距对齐。我希望当此文本换行时(因为它在制表环境中),它也会在第一行之后的行中缩进。关于如何修改此 tabfill 命令以实现此目标,您有什么想法吗?或者还有其他解决方案吗?

我正在寻找的示例:

Column 1                Column 2
bla bla                 bla bla bla bla bla bla bla bla bla bla bla bla
                        bla bla bla bla
bla bla                 bla bla

代码(不产生缩进):

\begin{tabbing}
\hspace{3.1cm} \= \kill
Column 1 \> Column 2\\
bla bla \> \tabfill{bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla}\\
bla bla \> \tabfill{bla bla}
\end{tabbing}

是否有意义?

答案1

这是我从您的原始代码(第一个设置为\dimen@取消注释)中得到的结果:

\documentclass{article}
\makeatletter
\newcommand\tabfill[1]{%
  \dimen@\linewidth
  \advance\dimen@\@totalleftmargin
  \advance\dimen@-\dimen\@curtab
  \parbox[t]\dimen@{#1\ifhmode\strut\fi}%
}
\makeatother

\textwidth=.75\textwidth % just to make wrapping more evident

\begin{document}
\begin{tabbing}
\hspace{3.1cm} \= \kill
Column 1 \> Column 2\\
bla bla \> \tabfill{bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla}\\
bla bla \> \tabfill{bla bla}
\end{tabbing}
\end{document}

在此处输入图片描述

让我们添加一个\leftskip设置:

\documentclass{article}
\makeatletter
\newcommand\tabfill[1]{%
  \dimen@\linewidth
  \advance\dimen@\@totalleftmargin
  \advance\dimen@-\dimen\@curtab
  \parbox[t]\dimen@{%
    \leftskip=2em\hspace*{-2em}#1\ifhmode\unskip\nobreak\strut\fi}%
}
\makeatother

\textwidth=.75\textwidth % just to make wrapping more evident

\begin{document}
\begin{tabbing}
\hspace{3.1cm} \= \kill
Column 1 \> Column 2\\
bla bla \> \tabfill{bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla}\\
bla bla \> \tabfill{bla bla}
\end{tabbing}
\end{document}

在此处输入图片描述

如果您不打算在参数中使用非常复杂的东西(例如\tabfill逐项或枚举列表),这是最简单的解决方案。如果要添加\raggedright,请将其放在前面\leftskip

相关内容