كيفية التفاف النص في الجداول LaTeX؟




wrapping (4)

أقوم بإنشاء تقرير في LaTeX والذي يتضمن بعض الجداول. أنا عالق في ذلك لأن بيانات الخلية الخاصة بي في الجدول تتعدى عرض الصفحة. هل يمكنني التفاف النص بطريقة ما بحيث يقع في السطر التالي في نفس الخلية في الجدول؟

هل هي مرتبطة بطريقة ما بعرض الطاولة؟ ولكن نظرًا لأنه يتجاوز الحد المسموح به لعرض الصفحة ، فلن يحدث أي فرق ، أليس كذلك؟


أنا أحب بساطة حزمة tabulary :

\usepackage{tabulary}
...
\begin{tabulary}{\linewidth}{LCL}
    \hline
    Short sentences      & \#  & Long sentences                                                 \\
    \hline
    This is short.       & 173 & This is much loooooooonger, because there are many more words.  \\
    This is not shorter. & 317 & This is still loooooooonger, because there are many more words. \\
    \hline
\end{tabulary} 

في المثال ، تقوم بترتيب عرض الجدول بالكامل بالنسبة إلى \ textwidth. على سبيل المثال 0.4 من ذلك. ثم يتم الباقي تلقائيا عن طريق الحزمة.

يتم أخذ معظم المثال من http://en.wikibooks.org/wiki/LaTeX/Tables .


إذا كنت ترغب في التفاف النص الخاص بك ولكنك تحافظ على المحاذاة ، فيمكنك لف هذه الخلية في بيئة minipage أو varwidth (يأتي varwidth من حزمة varwidth). سيكون Varwidth "واسعًا بقدر محتوياته ولكنه ليس أوسع من X". يمكنك إنشاء نوع عمود مخصص يعمل مثل "p {xx}" ولكنه يتقلص ليتناسب مع الاستخدام

\newcolumntype{M}[1]{>{\begin{varwidth}[t]{#1}}l<{\end{varwidth}}}

والتي قد تتطلب حزمة array . ثم عندما تستخدم شيئًا مثل \begin{tabular}{llM{2in}} في أول عمودين ، فإننا \begin{tabular}{llM{2in}} مع محاذاة اليسار إلى اليسار ، أما العمود الثالث فسيكون \begin{tabular}{llM{2in}} يسارًا عاديًا ، ولكن إذا \begin{tabular}{llM{2in}} عن 2 سن ، فسيتم التفاف النص.


باستخدام البيئة tabular العادية ، يجب استخدام نوع العمود p{width} ، كما يشير marcog. لكن هذا يدفعك إلى إعطاء عروض صريحة.

حل آخر هو بيئة tabularx :

\usepackage{tabularx}
...
\begin{tabularx}{\linewidth}{ r X }
    right-aligned foo & long long line of blah blah that will wrap when the table fills the column width\\
\end{tabularx}

جميع الأعمدة X تحصل على نفس العرض. يمكنك التأثير على هذا عن طريق تحديد \hsize في تعريف التنسيق:

>{\setlength\hsize{.5\hsize}} X >{\setlength\hsize{1.5\hsize}} X

ولكن كل العوامل يجب أن نلخص 1 ، أفترض (أخذت هذا من LaTeX رفيق). يوجد أيضًا tabulary الحزمة التي سيتم ضبط عرض الأعمدة لموازنة ارتفاعات الصفوف. للحصول على التفاصيل ، يمكنك الحصول على الوثائق لكل حزمة مع texdoc tabulary (في TeXlive).


خيار آخر هو إدراج minipage في كل خلية حيث يكون مطلوب التفاف النص ، على سبيل المثال:

\begin{table}[H]
\begin{tabular}{l}
\begin{minipage}[t]{0.8\columnwidth}%
a very long line a very long line a very long line a very long line
a very long line a very long line a very long line a very long line
a very long line a very long line a very long line %
\end{minipage}\tabularnewline
\end{tabular}
\end{table}