在 \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

相關內容