\raggedright 行为与 minipage 和 tabbing

\raggedright 行为与 minipage 和 tabbing

在以下 3 个示例中,minipage带有嵌套tabbing环境的用于显示多行对齐的文本。(这是一个更大示例的一部分。)

pdflatex 的输出:

在此处输入图片描述

第一个例子由于center周围环境而居中,并显示了预期的行为。然而,我不明白接下来的两个例子:

  1. 为什么第二个例子只是因为在之前添加了文本就向左刷新tabbing
  2. 为什么\raggedright必须将 放在 之前(因为放在 里面但在 之前minipage时不会产生任何效果)?minipagetabbing

    \documentclass{article}
    
    \begin{document}
    
    \begin{center}
    
      Example 1: Centered due to missing text:\\
    
      \begin{minipage}[t][1.5cm][t]{\textwidth}
        \raggedright % Has no influence
        \begin{tabbing}
          \hspace{2cm} \= \hspace{5cm} \kill
          AAAA: \> test\\
          BBBBBBBB: \> test\\
        \end{tabbing}
      \end{minipage}
    
      {\raggedright Example 2: Flushed left by adding text:\\}%
    
      \begin{minipage}[t][2cm][t]{\textwidth}
        \textbf{-added text-}
        \begin{tabbing}
          \hspace{2cm} \= \hspace{5cm} \kill
          AAAA: \> test\\
          BBBBBBBB: \> test\\
        \end{tabbing}
      \end{minipage}
    
      {\raggedright Example 3: Flushed left without text by setting the minipage to \textbackslash raggedright:\\}
    
      \raggedright
      \begin{minipage}[t][1.5cm][t]{\textwidth}
        \begin{tabbing}
          \hspace{2cm} \= \hspace{5cm} \kill
          AAAA: \> test\\
          BBBBBBBB: \> test\\
        \end{tabbing}
      \end{minipage}
    \end{center}
    
    \end{document}
    

答案1

仅当这是 内部唯一的东西时,或minipage才会parbox导致具有内部环境的宽度。tabbingtabbingminipage

所以在你的例子中

\begin{minipage}{\textwidth}
  \textbf{-added text-}
  \begin{tabbing}
    \hspace{2cm} \= \hspace{5cm} \kill
    AAAA: \> test\\
    BBBBBBBB: \> test\\
  \end{tabbing}
\end{minipage}

的宽度minipage将是\textwidth。如果你改写

\begin{minipage}{\textwidth}
  \begin{tabbing}
    \textbf{-added text-}
    \hspace{2cm} \= \hspace{5cm} \kill
    AAAA: \> test\\
    BBBBBBBB: \> test\\
  \end{tabbing}
\end{minipage}

那么结果就是你想要的(可能缺少空格)。你可以使用varwidth同名包的环境:

\documentclass{article}
\usepackage{varwidth}
\begin{document}

\begin{center}
Example of text just to see that the centering will be correct

\begin{varwidth}{\textwidth}
  \textbf{-added text-}
  \begin{tabbing}
    \hspace{2cm} \= \hspace{5cm} \kill
    AAAA: \> test\\
    BBBBBBBB: \> test\\
  \end{tabbing}
\end{varwidth}
\end{center}
\end{document}

在此处输入图片描述

答案2

问题在于,您将宽度设置minipage\textwidth,因此将minipage设置为页面宽度。如果您将其放在迷你页面中,则可以看到这一点。如果您知道最长的行,则可以将的宽度设置为minipage最长行的宽度。

你可以这样calc写:

  \begin{minipage}[t][2cm][t]{\widthof{ BBBBBBBB: test}}
    \textbf{-added text-}
    \begin{tabbing}
      \hspace{2cm} \= \hspace{5cm} \kill
      AAAA: \> test\\
      BBBBBBBB: \> test\\
    \end{tabbing}
  \end{minipage}

相关内容