Spec-Zone.ru › LaTeX

\strut

Синопсис:

\strut

Убедитесь, что текущая строка имеет высоту не менее 0.7\baselineskip и глубину не менее 0.3\baselineskip. По существу, LaTeX вставляет в строку прямоугольник с нулевой шириной, \rule[-0.3\baselineskip]{0pt}{\baselineskip} (см. \rule). \baselineskip изменяется в зависимости от текущего шрифта или размера шрифта.

В этом примере \strut предотвращает, чтобы у рамки была нулевая высота.

\setlength{\fboxsep}{0pt}\framebox[2in]{\strut}

В этом примере четыре списка. В первом списке есть гораздо больший разрыв между элементами 2 и 3, чем между элементами 1 и 2. Второй список исправляет это с помощью \strut в конце второй строки первого элемента.

\setlength{\fboxsep}{0pt}
\noindent\begin{minipage}[t]{0.2\linewidth}
\begin{enumerate}
  \item \parbox[t]{15pt}{test \\ test}
  \item test
  \item test
\end{enumerate}
\end{minipage}%
\begin{minipage}[t]{0.2\linewidth}
\begin{enumerate}
  \item \parbox[t]{15pt}{test \\ test\strut}
  \item test
  \item test
\end{enumerate}
\end{minipage}%
\begin{minipage}[t]{0.2\linewidth}
\begin{enumerate}
  \item \fbox{\parbox[t]{15pt}{test \\ test}}
  \item \fbox{test}
  \item \fbox{test}
\end{enumerate}
\end{minipage}%
\begin{minipage}[t]{0.2\linewidth}
\begin{enumerate}
  \item \fbox{\parbox[t]{15pt}{test \\ test\strut}}
  \item \fbox{test}
  \item \fbox{test}
\end{enumerate}
\end{minipage}%

Два последних списка используют \fbox для демонстрации происходящего. Первый элемент \parbox третьего списка достигает только нижней части его второй строки «test», у которой нет символов, опускающихся ниже базовой линии. Четвертый список добавляет strut, который обеспечивает необходимое дополнительное пространство под базовой линией.

Команда \strut часто полезна в графике, например, в TikZ или Asymptote. Например, у вас может быть команда, такая как \graphnode{node-name}, которая помещает окружность вокруг node-name. Однако, если вы не будете внимательны, ‘x’ и ‘y’ node-name дадут окружности разных диаметров, так как символы имеют разные размеры. Внимательный \graphnode может вставить \strut, затем node-name, а затем нарисовать окружность.

Общий подход использования нулевой ширины \rule полезен во многих случаях. В этой таблице правило нулевой ширины предотвращает попадание верхней части первого интеграла на \hline. Аналогично, второе правило предотвращает попадание второго интеграла на первый.

\begin{tabular}{rl}
  \textsc{Integral}   &\textsc{Value}           \\
  \hline
  $\int_0^x t\, dt$   &$x^2/2$  \rule{0em}{2.5ex} \\  
  $\int_0^x t^2\, dt$ &$x^3/3$  \rule{0em}{2.5ex}
\end{tabular}

(Хотя команда окончания строки с двойным обратным слешем имеет необязательный аргумент для изменения соответствующего отступа от базовой линии, это не решит проблему. Изменение первого двойного обратного слеша на что-то вроде \\[2.5ex] создаст больше места между заголовком и \hline линией, и интеграл всё равно коснется линии.)

© 2007–2018 Karl Berry
Public Domain Software
http://latexref.xyz/_005cstrut.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API