itemize、mbox 和不需要的换行符

itemize、mbox 和不需要的换行符

我在带有 itemize 环境的 beamer 包中有一个幻灯片,其中有些项目略微太宽,无法放在一行中(根据 LaTeX 的自动换行系统)。这是代码:

\documentclass{beamer}
\begin{document}
\begin{frame}
  A polymorphism f is
  \begin{itemize}
    \item{\textbf{Malcev}, if $f(y,y,x) = f(x,y,y) = f(x,x,x) = x$}
    \item{\textbf{majority}, if $f(x,x,y) = f(x,y,x) = f(y,x,x) = f(x,x,x) = x$}
    \item{\textbf{sml}, if $f(x,x)=x, f(x,y)=f(y,x), f(f(x,y),z)=f(x,f(y,z))$}
    \item{\textbf{2sml}, if $f(x,x)=x, f(x,y)=f(y,x), f(f(x,y),x)=f(x,y)$}
  \end{itemize}
\end{frame}
\end{document}

因为我觉得把每个项目放在一行中在视觉上是可以接受的,所以我用 \mbox 包围了每个项目条目以防止换行:

    \item{\mbox{\textbf{majority}, if $f(x,x,y) = f(x,y,x) = f(y,x,x) = f(x,x,x) = x$}}

但我得到的是这样的: 无用的换行符

我该如何解决这个问题?我的目标是防止换行 - 不必使用 \mbox。

第二个问题是,为什么它会这样表现?我不认为这是一种有意为之的行为...

答案1

TeX 希望避免出现过满的行,因此它会在 ; 之前找到一个可能的换行符\mbox,然后它会放弃,因为它无法打破这个框。

解决方案:如果您确定文本适合幻灯片,尽管会超出为文本保留的区域,请使用

\item \makebox[\linewidth][l]{\textbf{majority}, if $f(x,x,y) = f(x,y,x) = f(y,x,x) = f(x,x,x) = x$}

因此项目文本不会显得比可用空间更宽。

为了进行比较,下面举一个例子,其中一件长物品放在盒子里,而另一件没有放在盒子里:

\documentclass{beamer}
\begin{document}

\begin{frame}
A polymorphism $f$ is
\begin{itemize}
\item \textbf{Malcev}, if $f(y,y,x) = f(x,y,y) = f(x,x,x) = x$
\item \makebox[\linewidth][l]{\textbf{majority}, if $f(x,x,y) = f(x,y,x) = f(y,x,x) = f(x,x,x) = x$}
\item \textbf{sml}, if $f(x,x)=x, f(x,y)=f(y,x), f(f(x,y),z)=f(x,f(y,z))$
\item \textbf{2sml}, if $f(x,x)=x, f(x,y)=f(y,x), f(f(x,y),x)=f(x,y)$
\end{itemize}

\end{frame}
\end{document}

在此处输入图片描述

请注意,您不需要\item{...},而只需要\item ...

相关内容