无法使用 renewenvironment minipage 进行第一个单词的连字

无法使用 renewenvironment minipage 进行第一个单词的连字

我有一堆表格,其中一些表格有很多列。由于 latex 没有对第一个单词进行连字符连接,因此表格单元格中的文本有时会超出表格的边界。如下所示:

桌子

这就是我的表格在乳胶中的样子,带有小页面的长表。

\begin{longtable}[]{@{}llllll@{}}
\toprule
\begin{minipage}[b]{0.19\columnwidth}\raggedright
Col1\strut
\end{minipage} &
\begin{minipage}[b]{0.23\columnwidth}\raggedright
Col2\strut
\end{minipage} &
\begin{minipage}[b]{0.09\columnwidth}\raggedright
Col3\strut
\end{minipage} &
\begin{minipage}[b]{0.11\columnwidth}\raggedright
Col4\strut
\end{minipage} &
\begin{minipage}[b]{0.15\columnwidth}\raggedright
Col5\strut
\end{minipage} &
\begin{minipage}[b]{0.07\columnwidth}\raggedright
Col6\strut
\end{minipage}\tabularnewline
\midrule
\endhead
\begin{minipage}[t]{0.19\columnwidth}\raggedright
preoccupation\strut
\end{minipage} &
\begin{minipage}[t]{0.23\columnwidth}\raggedright
inappropriate\strut
\end{minipage} &
\begin{minipage}[t]{0.09\columnwidth}\raggedright
responsibility\strut
\end{minipage} &
\begin{minipage}[t]{0.11\columnwidth}\raggedright
consciousness\strut
\end{minipage} &
\begin{minipage}[t]{0.15\columnwidth}\raggedright
preoccupation\strut
\end{minipage} &
\begin{minipage}[t]{0.07\columnwidth}\raggedright
infrastructure\strut
\end{minipage}\tabularnewline
\bottomrule
\end{longtable}

我知道在第一个单词前加上 \hspace{0pt} 就能得到我想要的结果,所以我尝试重新定义 minipage 环境。像这样:

\let\oldminipage\minipage
\let\endoldminipage\endminipage
\renewenvironment{minipage}{
\oldminipage \hspace{0pt} }{
\endoldminipage}

使用这段代码,我收到此错误:

[3] [4]
! Missing number, treated as zero.
<to be read again> 
                   \protect 
l.597 \begin{minipage}
                      [b]{0.19\columnwidth}\raggedright
? 

知道为什么这不起作用吗?这不可能吗?

答案1

由于 Latex 没有对 [段落、表格单元格的] 第一个单词进行连字符连接...

我能想到两种补救措施:

  • 如果您可以自由使用 LuaLaTeX,那么段落/表格单元格的第一个单词不会被连字符的限制将不再存在。

  • 如果必须使用 pdfLaTeX 或 XeLaTeX,请务必加载包(或自动加载的array包,例如),并将列类型从 扩充为、到 等。这样,单元格的第一个“单词”是不可见的项目“\hspace{0pt}”,并且任何后续单词不再是“第一个”单词。tabularxarrayp{2in}>{\hspace{0pt}}p{2in}X>{\hspace{0pt}}X

在此处输入图片描述

看不到minipage……

\documentclass{article}
\usepackage[english]{babel}
\usepackage{array,booktabs,ragged2e}
\newcolumntype{C}[1]{>{\Centering\hspace{0pt}}p{#1}} % note "\hspace{0pt}" item

\begin{document}
\begin{tabular}[t]{@{} *{4}{p{1cm}} @{}}
\toprule
Preoccupation & Inappropriate & Responsibility & Consciousness \\
\midrule
\end{tabular}
\qquad\qquad\qquad
\begin{tabular}[t]{@{} *{4}{C{1cm}} @{}}
\toprule
Preoccupation & Inappropriate & Responsibility & Consciousness \\
\midrule
\end{tabular}

\end{document}

相关内容