我用tblr实现的,不够优美
\documentclass[12pt]{ctexart}
\usepackage[left=1.5cm,right=1.5cm,top=1.5cm,bottom=2cm]{geometry}
\usepackage{graphicx}
\usepackage{setspace}
\usepackage{tabularray}
\usepackage{caption}
\usepackage{adjustbox}
\usepackage{mdframed}
\usepackage{tikz}
\captionsetup[table]{labelformat=empty}
\doublespacing
\begin{document}
\newpage
\begin{table}[!htbp]
\centering
\caption{\zihao{2}\heiti 项目一 “荧幕上的历史回响”主题实践活动}
\begin{tblr}{
width = \linewidth,
colspec = {|Q[c,wd=0.7cm]X[c]Q[c,wd=0.5cm]|},
hline{1,2},
hline{4-27} = {2}{},
cell{1}{1} = {c=3}{c},%顶部对齐t
rows = {ht=.66cm},
row{1} = {ht=1cm},
}
观看《十月围城》、\,《建党伟业》等影片(选一)\,,并与真实的历史事件相互印证,写出观后感。& & \\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\hline
\end{tblr}
\end{table}
\newpage
\begin{table}[!htbp]
\centering
\begin{tblr}{
width = \linewidth,
colspec = {|Q[c,wd=0.7cm]X[c]Q[c,wd=0.5cm]|},
hline{2-29} = {2}{},
rows = {ht=.66cm},
}
\hline
& & \\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\hline
\end{tblr}
\end{table}
\end{document}
提问问题不够具体,而且代码也太长(包含了一些敏感内容导致的)。要体现你的问题完全不需要这么长的代码,不要让潜在的回答者看你300多行的源代码,这不礼貌。你应该只提取出和你问题核心相关的某几行。
\documentclass[12pt]{ctexart}
\usepackage[left=1.5cm,right=1.5cm,top=1.5cm,bottom=2cm]{geometry}
\usepackage{tikz}
\usepackage{setspace}
\usepackage{zhlipsum}
\NewDocumentCommand{\mytextbox}{ o m }{%
\noindent%
\begin{center}\vspace*{2ex}%
\begin{tabular}{|c|}%
\IfNoValueF{#1}%
{\hline{\zihao{3}#1}\\}
\hline%
\parbox{.95\linewidth}{%
\vspace*{5ex}%
\foreach \i in {1,...,{#2}}{%
\vspace*{1ex}%
\hrulefill \par
\vspace*{1ex}%
}
}\\
\hline%
\end{tabular}\vspace*{2ex}%
\end{center}
}
\doublespace
\begin{document}
\begin{center}
{\zihao{2}\bfseries 我是一个标题哈哈哈哈}
\end{center}
\mytextbox[请以如何提问为题目写一篇文章。]{15}
\zhlipsum[2]
\mytextbox{10}
\zhlipsum[2]
\mytextbox[我能吞下玻璃而不伤身体我能吞下玻璃而不伤身体]{17}
\end{document}
TeX
发展这么久了,类似作文纸的排版应该有相关的宏包...我自己造的轮子肯定相当粗糙...tikz
:\documentclass{ctexart}
\usepackage[left=1.5cm,right=1.5cm,top=1.5cm,bottom=2cm]{geometry}
\usepackage{tikz}
\usepackage{zhlipsum}
\AddToHook{shipout/background}
{%
\begin{tikzpicture}[remember picture,overlay]
\useasboundingbox[draw=black,thick] ([xshift=1.45cm,yshift=1.95cm]current page.south west) rectangle ([xshift=-1.45cm,yshift=-1.45cm]current page.north east);
\end{tikzpicture}%%
}
\begin{document}
\zhlipsum[1-9]
\end{document}
"如何添加页面边框,实现如图效果"
给页面绘制框,基本思路就如 Sagittarius Rover 所示的方式,就是在页面叠一个背景(如tikz图)。
我猜你是要在不同的也设置不同的框,比如有的页有章节标题,要把章节名放在外面,那么可以根据章节的信息来判断绘制(大小和位置)不同的框。
比如我在nudtpaper中的NUDTproposal.cls利用了章节的计数器来做判断。
见:https://github.com/liubenyuan/nudtpaper/blob/master/proposal/NUDTproposal.cls?plain=1#L55-L70
具体为:
\RequirePackage{draftwatermark} %用其绘制框线
\numgdef\sectionpage{0}
\numgdef\pageafsecseven{10000}
\newcommand\FrameforSectionWM{%
\ifboolexpr{ test {\ifnumequal{\sectionpage}{0}}
or test {\ifnumequal{\value{section}}{5}}
or test {\ifnumequal{\value{section}}{6}}
or test {\ifnumgreater{\value{page}}{\pageafsecseven}}
}
{}{%
\ifnumequal{\value{page}}{\sectionpage}
{\tikz{\draw[line width=0.7pt] (0,0) rectangle (\textwidth+2mm,\textheight-0.6cm);}}
{\tikz{\draw[line width=0.7pt] (0,0) rectangle (\textwidth+2mm,\textheight+0.5mm);}}%
}%
}
\DraftwatermarkOptions{anchor=lb, pos={3cm,26.45cm},markcmd=\FrameforSectionWM}
其中,我使用了draftwatermark来输出背景而没有使用shipout钩子,但实际上draftwatermark可能也使用了类似钩子,具体是什么可以查一下其代码。
@u144184 "如果想在里面画线",我想....你可以排版一个两行一列的表格
另外请你明确你的需求。一个问题只应该聚焦一个需求。
好的好的,大佬我悟了
能看看你优化后的代码吗,我写得太烂了(