الخلايا التي تمتد عبر الصفوف أو الأعمدة
multicolumn، multirow، cmidrule تحت رؤوس مجمعة.
الخلايا التي تمتد عبر الصفوف أو الأعمدة
تحتاج الجداول الحقيقية غالبًا إلى خلايا مدمجة. رأس مثل “النتائج” الموجود فوق عمودين متريين يمتد إلى أعمدة، واسم النموذج الذي ينطبق على صفين من صفوف النتائج يمتد إلى صفوف. يتعامل LaTeX مع الاتجاهين بأدوات مختلفة: \multicolumn مدمج، بينما يأتي \multirow من الحزمة التي تحمل الاسم نفسه. فيما يلي جدول مضغوط يستخدم كليهما، بالإضافة إلى قاعدة جزئية من “علامات تبويب الكتب”:
\usepackage{multirow,booktabs}\begin{tabular}{lcc} \toprule & \multicolumn{2}{c}{Scores} \\ \cmidrule(lr){2-3} Model & Acc & F1 \\ \midrule \multirow{2}{*}{Ours} & 0.9 & 0.88 \\ & 0.91 & 0.89 \\ \bottomrule\end{tabular}تمديد الأعمدة
\multicolumn{2}{c}{Scores} يستبدل خليتين عاديتين بخلية واحدة. الوسيطة الأولى هي عدد الأعمدة المطلوب استيعابها، والثانية هي مواصفات العمود لهذه الخلية فقط، وهنا “c” للتوسيط، والثالثة هي المحتوى. لاحظ الحرف & قبله: العمود الأول من هذا الصف فارغ عمدًا، لذلك تبدأ “النتائج” في العمود 2 وتغطي العمودين 2 و3. ونظرًا لأن الوسيطة الثانية تتجاوز نوع العمود محليًا، فإن \multicolumn{1}{c}{...} هو أيضًا الخدعة القياسية لتوسيط خلية رأس واحدة فوق عمود محاذ إلى اليسار.
القاعدة الجزئية
\cmidrule(lr){2-3} يرسم قاعدة أفقية أسفل الأعمدة من 2 إلى 3 فقط، والتي تربط الرأس المجمع بشكل مرئي بأعمدته. يقوم الخيار (lr) بقص القاعدة قليلاً على طرفيها الأيسر والأيمن، لذلك لا تلمس \cmidrules المجاورة وتقرأ كعلامات مجموعة منفصلة. هذا أمر “booktabs”، والاقتطاع هو أحد التفاصيل التي تجعل هذه الجداول تبدو منضدية وليست مرسومة. تمت تغطية النمط الكامل المكون من ثلاث قواعد في جداول ثلاثية القواعد.
تمديد الصفوف
\multirow{2}{*}{ Ours} يطبع “خاصتنا” عموديًا في وسط صفين. الوسيطة الأولى هي عدد الصفوف، والثانية هي عرض الخلية، حيث * تعني العرض الطبيعي للمحتوى، والثالثة هي المحتوى نفسه. يحتفظ الأمر فقط بالمساحة المرئية، لذلك يجب أن يوفر الصف الثاني خلية أولى فارغة، ولهذا السبب يبدأ السطر التالي بعلامة & العارية. مع نسيان أن الخلية الفارغة تنقل كل قيمة في الصف عمودًا واحدًا إلى اليسار، وتشير رسالة خطأ المحاذاة غير الصحيحة إلى السطر الخطأ، لذا تحقق من الصف بعد \multirow أولاً.
حد عملي
من الأفضل الاحتفاظ بالخلايا المدمجة في الرؤوس ومجموعات الصفوف القصيرة. من الصعب قراءة الجدول الذي تمتد فيه خلايا البيانات في كلا الاتجاهين كما يصعب صيانته، لأن كل صف مضاف يفرض عليك إعادة حساب المسافات. إذا وجدت نفسك تتداخل مع \multirow داخل \multicolumn، ففكر في إعادة هيكلة الجدول بدلاً من ذلك.