指示制表符永不跳回

指示制表符永不跳回

我个人非常喜欢这种tabbing环境,它可以排版表格式列表,而不必担心换行符、分页符等。但是,我现在遇到了一个问题:我有一个(非常长的)tabbing环境,其中的条目长度差异很大。将“最大长度”设置为制表符不是一个选项,所以我发现 LaTeX 似乎“跳回”制表符的绝对位置。我希望有一个制表符变体,可以检查当前文本位置是否比制表符位置更靠右,然后对事物执行以下任一操作:

  • 继续在当前光标位置排版文本,或者
  • 插入换行符以正确地继续到预期位置。

以下是 MWE:

\documentclass{article}
\pagestyle{empty}
\begin{document}
\begin{tabbing}
  \hspace{3cm}\=\hspace{3cm}\kill
  \textbf{this is}\>ok\\
  \textbf{this is absolutely not}\>ok\\
  \textbf{I would rather imagine it} %\>
                            like this\\
  \textbf{Altnernatively, I would also appreciate it}\\\>
                            like this\\
\end{tabbing}
\end{document}

在此处输入图片描述

我不知道这样的环境是否已经存在,或者我是否必须编写一些代码 - 即使这样,我也不知道从哪里开始,因为我不知道如何检查光标的当前位置。

有什么建议么?

答案1

我想出了一个适合我的解决方案,但它不是很漂亮:

\documentclass{article}
\usepackage{calc}
\pagestyle{empty}

\makeatletter
\newlength\tabs@currentpos
\newlength\tabs@itemwidth
\newlength\tabs@endpos
\newlength\tabs@tabpos

\newcommand\tabnl{%
  \setlength{\tabs@currentpos}{0pt}\\
}
\newcommand\tabs@tabto[2]{%
  \setlength\tabs@itemwidth{\widthof{#2}}%
  \setlength\tabs@endpos{\tabs@currentpos+\tabs@itemwidth}%
  \setlength\tabs@tabpos{#1}%
  #2%
  \ifdim\tabs@tabpos>\tabs@endpos%
  \setlength\tabs@currentpos\tabs@tabpos%
  \addtolength{\tabs@tabpos}{-\tabs@endpos}%
  \hspace{\tabs@tabpos}\ignorespaces\else%
  \setlength\tabs@currentpos\tabs@endpos%
  \fi%
}
\newcommand\tabs@@tabto[2]{%
  \setlength\tabs@itemwidth{\widthof{#2}}%
  \setlength\tabs@endpos{\tabs@currentpos+\tabs@itemwidth}%
  \setlength\tabs@tabpos{#1}%
  #2%
  \setlength\tabs@currentpos\tabs@tabpos%
  \ifdim\tabs@tabpos>\tabs@endpos%
  \addtolength{\tabs@tabpos}{-\tabs@endpos}%
  \else%
  \\
  \fi%
  \hspace*{\tabs@tabpos}\ignorespaces%
}    
\def\tabto{\@ifstar\tabs@@tabto\tabs@tabto}
\makeatother

\setlength{\parindent}{0pt}
\begin{document}
\tabto{2cm}{this is} fine\tabnl
\tabto{2cm}{this is absolutely not} ok\tabnl
\tabto{2cm}{I would rather imagine it} \tabto{7cm}{like this} I think\dots\tabnl
\tabto*{2cm}{Altnernatively, I would also appreciate it} \tabto{7cm}{like this} what do you think?\tabnl
\end{document}

解决方案

tabbing我在处理空格方面仍然存在一些问题,另外我认为如果实际代码与和的实现方式更相似一点会更好tabular,但我不知道如何进行解析&和类似的事情。

如果有人有更好的想法,我将不胜感激!

相关内容