表格完美布局问题(如内边距、边框颜色、最外边框粗细等)

发布于 2025-07-06 21:55:37

各位资深老师们好!请教个问题,以下原稿用哪种方式做最好?用表格好麻烦,单元格在水平垂直居中,主体内容段落间都要设置间距,如果段落多挺麻烦的,又有手动换行,单元格内边距也不好搞,不知道有没有更好的解决方案。

\documentclass[UTF8]{ctexart}
\usepackage[a4paper,margin={1.5cm,1cm}]{geometry}
\usepackage{tcolorbox}
\usepackage{tabularx}
\usepackage{makecell}
\usepackage{fontspec}
\usepackage{xpinyin}
\usepackage{array}
\usepackage{booktabs}
\usepackage{colortbl}
\usepackage{cellspace}

% 字体设置
\setCJKmainfont{KaiTi} % 中文楷体
\newfontfamily\pinyinfont{印氪先生汉语拼音优化版W4-Regular-1.001.ttf}
% 定义局部伪粗体字体(仅用于特定文本)
\newCJKfontfamily\fakeboldsimsum{SimSun}[AutoFakeBold=2]
\newCJKfontfamily\AlibabaPuHuiTi{AlibabaPuHuiTi-3-105-HeaVy.otf}

% 拼音设置
\xpinyinsetup{
    font=\pinyinfont,
    ratio=0.4,
    format={\color{darkgray}},
    multiple={\color{red}}
}
% 定义一个长度变量 \myvspace
\newlength{\myparalength}
\setlength{\myparalength}{0.8cm} % 设置默认值
\AtBeginEnvironment{tabular}{\noindent}
\arrayrulecolor{red}
\begin{document}

{\fontsize{18}{18}\selectfont
\begin{tabular}{|>{\centering\arraybackslash}m{1.4cm}|c|>{\centering\arraybackslash}m{1.4cm}|}
    \hline
    \multicolumn{3}{|c|}{
        \rule{0pt}{2cm}
        \makecell{{\fontsize{24}{26}\selectfont{\AlibabaPuHuiTi\color{red}二年级上册背诵/默写一览表}}\\[0.4cm]
            班级:\underline{\hspace{3cm}}
            姓名:\underline{\hspace{3cm}}
        }
        
    }\\[1cm]
    \hline
    课序&\makecell{背诵内容\\{\large\color{red}(背诵课文部分,注释部分可不作要求)}}&家长签名\\
    \hline
    3 植物妈妈有办法
    &\begin{pinyinscope}\makecell{
        \\
 植物妈妈有办法​​\\[\myparalength]
孩子如果已经长大,就得告别妈妈,四海为家。\\
牛马有脚,鸟有翅膀,植物要旅行又用什么办法?\\[\myparalength]
蒲公英妈妈准备了降落伞,把它送给自己的娃娃。\\
只要有风轻轻吹过,孩子们就乘着风纷纷出发。\\[\myparalength]
苍耳妈妈有个好办法,她给孩子穿上带刺的铠甲。\\
只要挂住动物的皮毛,孩子们就能去田野、山洼。\\[\myparalength]
石榴妈妈的胆子挺大,她不怕小鸟吃掉娃娃。\\
孩子们在鸟肚子里睡上一觉,就会钻出来落户安家。\\[\myparalength]
豌豆妈妈更有办法,她让豆荚晒在太阳底下,\\
啪的一声,豆荚炸开,孩子们就蹦着跳着离开妈妈。\\[\myparalength]
植物妈妈的办法很多很多,不信你就仔细观察。\\
那里有许许多多的知识,粗心的小朋友却得不到它。\\[\myparalength]
    }\end{pinyinscope}&\\
    \hline
\end{tabular}
}
\end{document}

原稿
PixPin_2025-07-06_21-49-38.jpg
重构
PixPin_2025-07-06_21-50-20.jpg


其他版式补充:

image.png

image.png

查看更多

关注者
0
被浏览
231
1 个回答
Sagittarius Rover
我要成为Typst糕手/(ㄒoㄒ)/~~

有一些需要补充的字体问题:

如不提供上述字体,代码别人根本跑不了,别人跑不了要怎么给建议和测试...

令人遗憾的是,xelatex编译报错:

! Missing } inserted.
<inserted text>
                }
l.42     课序&
            \makecell{背诵内容\\{\large\color{red}(背诵课文部分,注释部分可不作要求)}}&家长签名\\
?

你的问题在于

\documentclass{ctexart}
\usepackage[a4paper,margin={1.5cm,1cm}]{geometry}
\usepackage{tabularx}
\usepackage{array}
% \usepackage{cellspace}
\begin{document}
\begin{tabular}
    {|>{\centering\arraybackslash}m{1.4cm}|>{\centering\arraybackslash}m{1.4cm}|}
    \hline%
    课序 & 家长签名\\
    \hline%
\end{tabular}
\end{document}

上面的MWE不可以同时调用cellspace


你的需求是:

表格完美布局问题(如内边距、边框颜色、最外边框粗细等)

从你上面的代码来看你会发现你一直在进行多种行距/颜色/粗细设置(这其实没太做好「样式与内容分离」),如果 确实需要 用LaTeX排版,我会更建议:

「逐页排版」+「tabularray控制样式」+「行距等微调」


我逐步介绍下绘制的思路吧...

Step1. 查看整体布局(3*3)先把第一页的表格框架大致实现出来:

\documentclass{ctexart}
\usepackage[%
    a4paper,
    margin={1.5cm,1cm},
    showframe,
    ]{geometry}
\usepackage{xcolor}
\usepackage{tabularray}
\begin{document}
\noindent
\begin{tblr}{ 
    width=\textwidth,
    hlines={red,2pt}, vlines={red,2pt},
    colspec = { X[1,c]X[5,c]X[1,c] },
    rowspec = { m{3.5cm} m{1.6cm} m{22cm} }
}
Alpha & Beta & Gamma \\ 
Epsilon & Zeta & Eta \\ 
Iota & Kappa & Lambda \\
\end{tblr}
\end{document}

image.png


Step2. 补充与调整细节内容

\documentclass{ctexart}
\usepackage[17pt]{extsizes}%
\usepackage[%
    a4paper,%
    margin={1.5cm,1cm},%
    % showframe,%
    ]{geometry}%
\usepackage{xcolor}%
\usepackage{tabularray}%
\usepackage{xpinyin}%
\setCJKmainfont{KaiTi} % 中文楷体
\newfontfamily\pinyinfont{印氪先生汉语拼音优化版W4-Regular-1.001.ttf}
\newCJKfontfamily\fakeboldsimsum{SimSun}[AutoFakeBold=2]
\newCJKfontfamily\AlibabaPuHuiTi{AlibabaPuHuiTi-3-105-HeaVy.otf}
% 拼音设置
\xpinyinsetup{%
    font=\pinyinfont,%
    ratio=0.4,%
    format={\color{darkgray}},%
    multiple={\color{red}}%
}%
\begin{document}%
\noindent%
\begin{tblr}{ %
    width=\textwidth,stretch=0,
    hlines={red,1pt}, vlines={red,1pt},
    hline{2} = {white,lr},
    hline{1,5} = {2pt},
    vline{1,4} = {2pt},
    colspec = { X[1,c]X[8,c]X[1,c] },
    rowspec = { m{2cm} t{1cm} m{1.6cm} m{22cm}},
    cell{1}{1} = {c=3}{font=\Large\AlibabaPuHuiTi\bfseries\color{red}\selectfont},
    cell{2}{1} = {c=3}{c},
    cell{4}{2} = {font=\fontsize{16}{16}\selectfont}
}%
    %第一行
    二年级上册背诵/默写一览表 &  &  \\ 
    %第二行
    班级:\underline{\hspace{3cm}} \quad
    姓名:\underline{\hspace{3cm}} &  &  \\ 
    %第三行
    课序 
    & 
    {%
        背诵内容 \\
        \textcolor{red}{\small(背诵课文部分,注释部分可不作要求)}
    }%
    & 
    家长签名 \\ 
    %第四行
    3 植物妈妈有办法 
    & 
    \begin{pinyinscope}%
    植物妈妈有办法​​\\
    \bigskip\bigskip\bigskip
    孩子如果已经长大,就得告别妈妈,四海为家。\\
    牛马有脚,鸟有翅膀,植物要旅行又用什么办法?\\
    \bigskip\bigskip
    蒲公英妈妈准备了降落伞,把它送给自己的娃娃。\\
    只要有风轻轻吹过,孩子们就乘着风纷纷出发。\\
    \bigskip\bigskip
    苍耳妈妈有个好办法,她给孩子穿上带刺的铠甲。\\
    只要挂住动物的皮毛,孩子们就能去田野、山洼。\\
    \bigskip\bigskip
    石榴妈妈的胆子挺大,她不怕小鸟吃掉娃娃。\\
    孩子们在鸟肚子里睡上一觉,就会钻出来落户安家。\\
    \bigskip\bigskip
    豌豆妈妈更有办法,她让豆荚晒在太阳底下,\\
    啪的一声,豆荚炸开,孩子们就蹦着跳着离开妈妈。\\
    \bigskip\bigskip
    植物妈妈的办法很多很多,不信你就仔细观察。\\
    那里有许许多多的知识,粗心的小朋友却得不到它。\\
    \end{pinyinscope}
    &  \\
\end{tblr}

\end{document}

image.png

当然,里面的许多细节我也没处理的很好,再慢慢改良,不急....


未完待续

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览