这是 Bernard 回答的下一个问题问题 作为解决方案,他提出了新的列类型:
\newcolumntype{J}{>{\arraybackslash
\itemize[nosep, leftmargin=*,
before={\vspace*{-0.35\baselineskip}},
after={\vspace*{-0.7\baselineskip}}
]
}X<{\enditemize}}
其使用示例为:
\documentclass{article}
\usepackage[utf8]{inputenc} %
\usepackage[a4paper]{geometry}%
\usepackage{enumitem} %
\usepackage{tabularx}
\newcolumntype{J}[1]{>{\arraybackslash
\itemize[nosep, leftmargin=*,
before={\vspace*{-0.35\baselineskip}},
after={\vspace*{-0.7\baselineskip}}
]
}X<{\enditemize}}
\begin{document}
\begin{tabularx}{\linewidth}{| >{\setlength\hsize{0.25\hsize}}J |
>{\setlength\hsize{0.75\hsize}}J |}
\hline
\item Dequalifizierung und Vertiefung von Arbeitsteilung
\item Automatisierung, insbes. Verlust einfacher Arbeitsplätze
& \item Voraussetzung für eine humanorientierte Arbeitsgestaltung
\item Erweiterung des Aufgabenspektrums und Erhöhung von Qualifikationen \\
\hline
\end{tabularx}
\end{document}
这会产生意想不到的结果:
两列的宽度相同,但我希望它们的比例为 1:3。如何防止如此定义的列类型不遵守
>{\setlength\hsize{0.5\hsize}}X
例如
\newcolumntype{L}{>{\raggedright\arraybackslash}X}
例如使用如下形式:
>{\setlength\hsize{0.5\hsize}}L
到目前为止,我解决这个问题的尝试失败了,列宽仍然保持由内部决定(我想)的状态tabularx
,即宽度相等。所以我想知道,在J
列类型的定义中必须改变什么,才能使改变列的标准方法也X
适用于J
列。
答案1
与此同时,我整理出了一些解决方案,但并不是我想要的那种方式。使用未使用的enumitem
包,我可以更改J
列类型的宽度,但不是标准方式:
\documentclass{article}
\usepackage{calc}
\usepackage{tabularx}
%---------------------------------------------------------------%
\newcolumntype{J}[1]{
>{\setlength\hsize{#1\hsize} % <-- added
\minipage[t]{\hsize+2\tabcolsep}% <-- added
\arraybackslash%
\setlength{\leftmargini}%
{\widthof{\labelitemi}+\labelsep}% less list indent
\itemize%
\addtolength{\rightskip}{0pt + 10pt}% for ragged right
\setlength{\itemsep}{-\parsep}%
\setlength\labelsep{1ex}%
\setlength{\listparindent}{3em}
}X<{\@finalstrut\@arstrutbox\enditemize\endminipage
}%
}
\makeatother
\newcolumntype{L}{>{\raggedright\arraybackslash}X}
%---------------------------------------------------------------%
\renewcommand\arraystretch{1.5}
\usepackage{geometry}
\begin{document}
table with column type \verb+J+:\\
\begin{tabularx}{\textwidth}{| J{0.25} | J{0.75} |}
\hline
\item short tex in the first column
& \item long, long, long, long, long, long, long, long, long, long, long, long, long, long, long, long, long, long, long, long, long, long, long, long, long, long, long, long, long, long tex in the second column \\
\hline
\end{tabularx}
table with column type \verb+L+:\\
\begin{tabularx}{\textwidth}{|>{\setlength\hsize{0.25\hsize}}L |
>{\setlength\hsize{0.75\hsize}}L |}
\hline
short tex in the first column
& long, long, long, long, long, long, long, long, long, long, long, long, long, long, long, long, long, long, long, long, long, long, long, long, long, long, long, long, long, long tex in the second column \\
\hline
\end{tabularx}
\end{document}
这使:
该解决方案的缺点:
- 没有标准方法来确定柱子的配比
tabularx
。 - 的比例系数
\hsize
必须小于一,并且它们的总和应该为一(否则列宽和\hline
宽度之间会出现差异。
所以我仍在寻找更好的解决方案。