Sagittarius Rover
Sagittarius Rover
我要成为Typst糕手/(ㄒoㄒ)/~~

注册于 2年前

回答
240
文章
0
关注者
11

texdoc nicematrix

请根据上面命令呼出的文档自行补充...

\documentclass{article}
\usepackage{amsmath}
\usepackage{tikz}
\usepackage{nicematrix}
\begin{document}
\[
    \begin{bNiceArray}{*6c*6c}[columns-width=2mm,margin]
        \Block[borders={bottom,right,tikz=dashed}]{6-6}<\LARGE>{\mathbf{E}_{6m}}&&& & & &\Block[borders={bottom,right,tikz=dashed}]{2-4}<\Large>{\mathbf{O}} & & & & \Block[borders={bottom,tikz=dashed}]{2-2}<\Large>{\mathbf{E}_{2m}}& \\
        & &&&& & & & & & & \\
        & &&&& &\Block[borders={bottom,right,tikz=dashed}]{4-4}<\Large>{\mathbf{E}_{4m}} & & & &\Block[borders={bottom,tikz=dashed}]{4-2}<\Large>{\mathbf{O}} & \\
        & &&&& & & & & & & \\
        & &&&& & & & & & & \\
        & &&&& & & & & & & \\
        1&2 &3&4 &5&6 &7 &8 &9 &10 &11 &12 \\
        1&2 &3&4 &5&6 &7 &8 &9 &10 &11 &12 \\
        1&2 &3&4 &5&6 &7 &8 &9 &10 &11 &12 \\
        1&2 &3&4 &5&6 &7 &8 &9 &10 &11 &12 \\
        1&2 &3&4 &5&6 &7 &8 &9 &10 &11 &12 \\
        1&2 &3&4 &5&6 &7 &8 &9 &10 &11 &12 \\
    \end{bNiceArray}
\]
\end{document}

image.png

同时强烈建议掌握围栏代码块语法。

谢谢雾月老师的解释,但我还有几个小问题:

  1. 是否有简单的方法确定\node读取键时“真正”的展开情况
  2. 我之前一直以为这两者的差异是colorinner sep这两个key的性质不同导致的;而经过进一步测试发现上述例子是因为读取key时,对于那些允许省略键的选项不会出错,而不允许省略键的选项则会因为展开顺序的问题而报错;是什么造成了这一区别呢?
  3. unexpended命令和noexpand/\exp_not:n是否有区别(?)我通过latexdef发现后两者等价,而unexpendednoexpand均为Plain-TeX的原语。

根据报错信息猜测是编组被\newenvironment拆后和\fbox的定义出现了{}的错配,提供一种曲线救国(不优雅)的方案。

\documentclass[11pt,fontset=ubuntu]{ctexart}
\usepackage[margin=1in]{geometry}
\usepackage{zhlipsum}
\newcommand{\createenv}[1]{%
    \begin{center}% 开始居中环境
        \fbox{%
            \begin{minipage}{0.9\textwidth}
                {\small\itshape {#1}}
            \end{minipage}
        }%
    \end{center} % 
}
\NewDocumentEnvironment{mynote}{+b}{%
    \begingroup%
    \createenv{#1}%
}{\endgroup}%

\begin{document}

\begin{mynote}%
   \zhlipsum[1]
\end{mynote}%

\section{A Section}

\begin{center}%
    \fbox{%
        \begin{minipage}{0.9\textwidth}
            \small\itshape
            \zhlipsum[2]
        \end{minipage}
    }%
\end{center}%

\end{document}

另外,你的最小工作示例中还有很多和本问题无关的宏包;同时article文档类有且只有10pt(default),11pt,12pt这三个选项,你选择的10.5pt实际上为默认值10pt.

off-topic...只是好奇,在新华字典中“鉏”字并没有简化写法,为什么可以确定 你所造的字体与原字体是等价的?

image.png

提问需要注意以下几点:

  1. 代码务必使用围栏代码块包裹以实现高亮,不然让人怎么复制??
  2. 上传文件请务必等其上传到服务器之后再点击提交,对于包含大量文件的MWE,请将其压缩为.zip格式,并且图示具体说明你想调的是哪部分字体

image.png

3.提问要逻辑清晰指代准确。“一开始会报错,要把这个tex文件和发的东西放一起”是想表达什么(?)
4.本论坛有"修改问题"和"预览问题"的功能,这都是你要用的

image.png

image.png

5.一个优秀的tag,应该是能准确的描述和概括该问题的,我严重怀疑zitie是你乱打的...

P.S.你是否看过lshort-zh-cn的这部分内容(?)

image.png

此外,想要修改模板,请你指出相应的规范要求,应该严格按照规范要求来进行你的排版。在模板使用中,你觉得“这个字体太小”等想法是不严谨的,模板制作者一定按照的是美赛的规范来编写的模板。

为什么不看lshort-zh-cn?

image.png


A practice is here:
https://tex.stackexchange.com/questions/678477/documentclass14ptextarticle-i-cannot-have-more-that-14pt

总的来说,你可以通过如下设置随意调整尺寸

\RequirePackage{fix-cm}
\usepackage[fontsize=14pt]{fontsize}

但可能导致一些不良后果,但这是模板实现方式的问题,例如:
image.png

不禁又要问:为什么你一定要调整字体大小呢?是有什么规范让你必须(MUST)这么做吗?如果没有,不建议修改。

另附:压缩包密码为 zstar !!!!!

@u134436 关于填空题,可以使用\parbox内嵌于\phantom

\documentclass[fontset=ubuntu]{ctexart}
\usepackage{xeCJKfntef}
\usepackage[a4paper]{geometry}
\usepackage{xcolor}
\usepackage{tagging}
\usepackage{zhlipsum}
% \usetag{ans}% 注释掉该行语句不显示答案
\newcommand{\answer}[1]{
    \par\vspace*{.5ex}
    \iftagged{ans}{\parbox[s]{.94\textwidth}{#1}}{\phantom{\parbox[s]{.94\textwidth}{#1}}}
    \par\vspace*{.5ex}
}

\begin{document}
\begin{enumerate}
\item 这是第一题的题干第一题的题干第一题的题干第一题的题干第一题的题干
\answer{这是答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案圆是到定点的距离等于定长的点的集合.}

\item 这是第二题的题干这是第二题的题干这是第二题的题干这是第二题的题干这是第二题的题干
\answer{答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案圆是到定点的距离等于定长的点的集合到定点的距离等于定长的点的集合到定点的距离等于定长的点的集合.}

\item 这是第三题的题干题干题干这是第三题的题干题干题干这是第三题的题干题干题干这是第三题的题干题干题干这是第三题的题干题干题干
\answer{答案答案答案答案答案答案答案答案答案答案答案答案是到定点的距离等于定长的点的集合到定点的距离等于定长的点的集合.}

\end{enumerate}

\end{document}

image.png

Thanks to deepseek(AI论坛秀了属于是),我在他给的答案基础上修改了一下,应该可以满足需求:

\documentclass[fontset=ubuntu]{ctexart}
\usepackage[margin=1in]{geometry}
\usepackage{lipsum,zhlipsum}
\usepackage{atbegshi}
\newif\ifinsertblankpage
\insertblankpagefalse

\let\oldabstract\abstract
\let\endoldabstract\endabstract
% 定义英文摘要环境
\newenvironment{enabstract}{%
  \renewcommand\abstractname{Abstract}
  \oldabstract
}{%
  \endoldabstract \newpage
}
% 定义中文摘要环境,并启用插入空白页
\newenvironment{cnabstract}{%
  \renewcommand\abstractname{摘要}
  \insertblankpagetrue % 启用插入空白页
  \oldabstract
}{%
  \endoldabstract \newpage
  \insertblankpagefalse % 关闭插入空白页
}
% 页面输出钩子:在中文摘要的每一页后插入空白页
\AtBeginShipout{%
  \ifinsertblankpage
    \AtBeginShipoutOriginalShipout\box\AtBeginShipoutBox % 输出当前页
    \AtBeginShipoutOriginalShipout\null % 输出空白页
  \fi
}

\begin{document}

% 中文摘要部分:每一页后自动插入空白页
\begin{cnabstract}
\zhlipsum[1-8] % 生成多页中文摘要
\end{cnabstract}

% 英文摘要及其往后部分:正常双面打印
\begin{enabstract}
\lipsum[1-12] % 生成多页英文摘要
\end{enabstract}

\end{document}

上述代码的效果是:
image.png

不过上面的代码会报一个警告:

LaTeX: Ignoring void shipout box.
               The shipout box was voided by hook code.

应该是\AtBeginShipoutOriginalShipout\null导致的,不过你原问题中atbegshi宏包作者Heiko Oberdiek都用了类似的实现,想来不是什么问题。

上面代码报错的原因是缺少int(\i+45)

\documentclass[tikz,border=1cm]{standalone}
\begin{document}
\begin{tikzpicture}
    \draw (0,0) circle(2);
    \foreach \i in {0,45,...,315}{
        \coordinate (A\i) at (\i:2); % 定义点的位置
        \draw[fill] (A\i) circle (2pt); % 画点
    }
    \foreach \i in {0,45,...,315} {
        \pgfmathsetmacro{\next}{int(\i+45)}
        \ifnum \next=360\relax 
            \pgfmathsetmacro{\next}{0} 
        \fi
        \draw[->] (A\i) -- (A\next); 
    }
\end{tikzpicture}
\end{document}

image.png

我很想知道这种图的来源,包括它的所在学科,英文名称以及大致含义。

同时你这个图可拓展性较差,下面的实现也很不优雅,我没有兴趣封装成接口。

另外为了论坛问题的neat,请你删除这一无效问题,想要修改问题可以使用补充问题功能,而不是重新开一个新的问题。

image.png

下面是en画的实现过程...

\documentclass[tikz,border=8pt]{standalone}
\usetikzlibrary{arrows.meta,decorations.markings}
\begin{document}
\begin{tikzpicture}[cap = round]
    % \draw (0,0) circle(2);
    \foreach \i in {30,60,...,150,240,270,300}{
        \node[circle,draw,inner sep=1pt,outer sep=0pt,minimum size=2pt] (A\i) at (\i:2) {}; % 画点
    }
    \foreach \i in {30,60,...,120,240,270} {
        \pgfmathsetmacro{\next}{int(\i+30)}
        \path[->] (A\i) edge[bend right=8] (A\next);
    }
    \foreach \angle/\txt in {30/2,60/1,90/0,120/n-1,150/n-2}{
        \node[label={[anchor=\angle+180,outer sep=1pt,inner sep=1.5pt,]\scriptsize$\txt$}] at (\angle:2) {};
    }
    \foreach \i in {180,210,330,0}{
        \node[circle,inner sep=0pt,outer sep=0pt,minimum size=0pt] (A\i) at (\i:2) {}; % 画点
    }
    \foreach \i in {150,210,300,0} {
        \pgfmathsetmacro{\next}{int(\i+30)}
        \ifnum \next=360 \pgfmathsetmacro{\next}{0} \fi
        \path[->] (A\i) edge[bend right=10] (A\next);
    }
    \path[dotted] (A180) edge[bend right=10] (A210) 
                  (A330) edge[bend right=10] (A0);
\end{tikzpicture}
\end{document}

image.png

其实要想优雅一点,可以用rotate把整个路径划分为:

  • 上半段node
  • 左侧无node虚线段
  • 下半段node
  • 左侧无node虚线段

不过个人觉得意义不是很大。

请你详细准确地表述你的需求和预期效果

如果你只想把长条状的Logo放在首页的左上角,你可以如下做:

\documentclass{beamer}
\usepackage[UTF8,noindent]{ctexcap}
\usepackage{tikz}
\usepackage{graphicx}
\usetheme{AnnArbor}
\usecolortheme{crane}
\institute[NJUPT]{南京邮电大学}
\author[Robert$\cdot$Charlie]{贺XX}
\title[Beamer模板]{这是文档的大标题}
\date{\today}
\subtitle{这是文档的小标题}
\subject{模板}
% 自定义 logo 的位置
% 在左上角添加校徽
% 设置背景图位置 这里的xshift和yshift可以调节相对位置
\setbeamertemplate{background}{%
    \begin{tikzpicture}[overlay, remember picture]
    \node[xshift=3em,yshift=-3.3em] at (current page.north west) {\includegraphics[height=.15\paperheight]{NJUPT.png}};
\end{tikzpicture}
}
\begin{document}
\maketitle
\setbeamertemplate{background}{} %还原背景图层
% 不过我觉得更优雅的办法是写入\maketitle里代码会更好一点
    \begin{frame}{目录}
        \tableofcontents
    \end{frame}
    \section{这是第一部分}
    \begin{frame}{第一节标题}{第一节小标题}
        内容...
    \end{frame}
\end{document}

效果如下:

image.png


补充,你想要实现类似HDUbeamer的效果@u79794 我显然没有手搓一个模板的水平,只能在用户层简单地实现如下的效果:

\documentclass{beamer}
\usepackage[UTF8,noindent]{ctexcap}
\usepackage{tikz}
\usepackage{graphicx}
\usetheme{AnnArbor}
\usecolortheme{crane}
\institute[NJUPT]{南京邮电大学}
\author[Robert$\cdot$Charlie]{贺XX}
\title[Beamer模板]{这是文档的大标题}
\date{\today}
\subtitle{这是文档的小标题}
\subject{模板}
% 设置背景图位置 这里的xshift和yshift可以调节相对位置
\setbeamertemplate{logo}{%
\begin{tikzpicture}[overlay, remember picture]
    \node[xshift=15em,yshift=-9em] at (current page.north west) {\includegraphics[height=.1\paperheight]{long-logo.jpg}};
\end{tikzpicture}
}
\begin{document}
    \maketitle
    \setbeamertemplate{logo}{} %重置logo效果
    \setbeamertemplate{background}{
        \begin{tikzpicture}[overlay, remember picture]
            \node[xshift=-1em,yshift=-1em,opacity=.3] at (current page.east) {\includegraphics[height=.7\paperheight]{NJUPT.png}};
        \end{tikzpicture}
    }
    \begin{frame}{目录}
        \tableofcontents
    \end{frame}
    \section{这是第一部分}
    \begin{frame}{第一节标题}{第一节小标题}
        内容...
    \end{frame}
\end{document}

注意上面的代码需要保证long-long.jpgNJUPT.png的路径,效果如下:
image.png

BTW,既然你想实现HDUbeamer的效果,我建议你站在S老师巨人的肩膀上,修改HDUbeamer.cls会更好,最好不要重复造轮子。

Happy LaTeXing, and welcome to the LaTeX studio!

我想这是你想要的...其实没必要在tcb外面封装成amsthm(这让代码变得很不优雅,既然amsthm要套tcb),tcb本身也支持计数器的使用,著名的elegantbook模板的fancy样式对定理环境的实现也只是纯tcolorbox。我同时还把mwe更精简了一丢丢...

P.S. xparse已经进入latex kernel,因此不需显式调用。你可以texdoc xparse看看参数,lshort-zh-cn其实有简单的介绍,所谓的\NewTColorBox也不过是tcb版本的newenvironment而已。

image.png

\documentclass[10pt]{ctexbook}
\usepackage[margin=1in,showframe]{geometry}
\usepackage[most]{tcolorbox}
\usepackage{varwidth}
\usepackage{amsmath}
\usepackage{enumitem}
\setlist[enumerate]{leftmargin=1em}
\definecolor{mygreen}{RGB}{0,166,82}
\NewTColorBox[auto counter,number within=section]{theobox}{O{}}{% o省略可能的参数
  enhanced,frame empty,interior empty,
  coltitle=white,fonttitle=\bfseries,
  colbacktitle=mygreen,rounded corners,
  extras broken={frame empty,interior empty},
  borderline={0.25mm}{0mm}{mygreen},
  breakable,top=4mm,before skip=3.5mm,
  attach boxed title to top left={yshift=-3mm,xshift=5mm},boxed title style={boxrule=0pt,sharp corners=all},varwidth boxed title,
  title={考点\thetcbcounter\quad{#1}},
}
\newcommand*{\insertxt}{%
  \begin{enumerate}
    \item 素质教育以提高国民素质为根本宗旨。
    \item 素质教育是面向全体学生的教育。
    \item 素质教育是促进学生全面地、生动活泼地、可持续地发展的教育。
    \item 素质教育是促进学生个性发展的教育。
    \item 素质教育要着力提高学生的社会责任感、创新精神和实践能力。素质教育要着力提高学生的社会责任感、创新精神和实践能力。素质教育要着力提高学生的社会责任感、创新精神和实践能力。素质教育要着力提高学生的社会责任感、创新精神和实践能力。
  \end{enumerate}
}
\begin{document}
\chapter{你好}
\section{世界}
\begin{theobox}
  \insertxt
\end{theobox}
\begin{theobox}[有标题]
  \insertxt
\end{theobox}
\section{世界}
\begin{theobox}[有标题盒子]
  \insertxt
\end{theobox}
\begin{theobox}
  \insertxt
\end{theobox}
\chapter{你好}
\section{世界}
\begin{theobox}[有标题盒子]
  \insertxt
\end{theobox}
\begin{theobox}
  \insertxt
\end{theobox}
\begin{theobox}[有标题盒子]
  \insertxt
\end{theobox}
\begin{theobox}
  \insertxt
\end{theobox}
\end{document}

image.png

在使用宏包前务必仔细阅读文档!!!通过在命令执行texdoc physics命令可以看到:

image.png

\documentclass[11pt,a4paper]{ctexbook}
\setlength{\parindent}{0pt}
\let\olddiv\div
\usepackage{physics}
\begin{document}
    physics包影响div除法:

    $2=6\div 3$

    $2=6\olddiv 3$

    $2=6\divisionsymbol 3$

\end{document}

image.png

P.S.有类似需求的话也可以看看ZTX老师的physics2宏包,更符合中国宝宝体质。

image.png

请提供模板链接或者压缩包文件,同时建议你检查TeXStudio的配置,是否使用了正确的编译命令。

下面的问题都将基于该链接下载的压缩文件。

解压之可以得到一份117行的template_exam_A_utf8.tex文件

%
% 说明:使用 xelatex 编译,在 texlive 2017 中编译通过
%
\documentclass[UTF8]{ctexart}
\usepackage[a4paper,top=2.0cm,bottom=2.5cm,left=2.8cm,right=2.8cm,%
            includehead,includefoot]{geometry}
\usepackage{amsmath,amssymb,amsfonts,bm}
\usepackage{graphicx,xcolor}
\usepackage[xetex,colorlinks,linkcolor=blue]{hyperref}
\usepackage{makecell,interfaces-makecell}
\usepackage{calc}
\renewcommand{\baselinestretch}{1.3}

%%%%% ===== 自定义命令 ===========================================================
\newcommand{\ul}[1]{\underline{\makebox[#1]{}}}
\newcommand{\ull}[2]{\underline{\makebox[#1]{\kaishu #2}}}
\newcommand{\ulaa}[1]{\underline{\makebox[3em]{\Large\textcircled{\normalsize #1}}}}
\newcommand{\dis}{\displaystyle}

\pagestyle{plain}

\begin{document}
\zihao{-4} % 小四号字体

%%%%% ===== 试卷头 ===============================================================
\begin{center}
{\heiti\LARGE 华东师范大学期末试卷 (A)} \bigskip

$20xx-20xx$ 学年第 X 学期

\bigskip\bigskip

%%%%% ===== 课程信息,包括课程名,课程性质等
\setlength{\tabcolsep}{1mm}
\renewcommand{\arraystretch}{1.4}
\begin{tabular}{p{7.5cm}p{6.5cm}}
  课程名称:\ull{4.0cm}{\zihao{4} 数~值~分~析} & \\
  学生姓名:\ul{4.0cm}          &
  学\hspace{10.5mm}号:\ul{4.0cm} \\
  专\hspace{2em}业:\ull{4.0cm}{数学与应用数学}  &
  年级/班级:\ull{4.0cm}{20xx级} \\
  课程性质:\ {\kaishu 专业X修} \\
\end{tabular}\smallskip

%%%%% ===== 得分表,其中 numexer 表示题号个数,这里设为 8,可根据实际需要修改,其他可以不用修改。
\newcounter{numexer}\setcounter{numexer}{8} % 题号个数,这里为 8
\newcounter{numcol}\setcounter{numcol}{\value{numexer}+2}
\newlength{\cellwidth}\setlength{\cellwidth}{\textwidth*\ratio{0.6pt}{\value{numexer} pt}}
\begin{tabular}{|*{\thenumcol}{c|}} \hline
  \repeatcell{\thenumexer}{rows=1,text=\makebox[\cellwidth]{\zhnumber{\column}}}
   & \makebox[0.12\textwidth]{总分} &\makebox[0.16\textwidth]{阅卷人签名} \\ \hline
  \repeatcell{\thenumcol}{rows=1,end=\\ \hline} \\ \hline
\end{tabular}
\end{center}

\medskip
\noindent\dotfill
\medskip

\linespread{1.5}\selectfont
\noindent{\heiti 一、填充题} (每空 2 分,共 24 分)

\newcounter{forlist}
\begin{list}{\arabic{forlist}.}
            {\setlength{\topsep}{2mm}
             \setlength{\listparindent}{0pt}
             \setlength{\labelsep}{5pt}
             \setlength{\itemsep}{0.8em}
             \setlength{\parsep}{5pt}
             \usecounter{forlist}}

\item
十进制数与二进制数的转换: $(123)_{10}= (\ulaa{1})_2$,
$(110)_2 = (\ulaa{2})_{10}$。

\item
十进制数与二进制数的转换: $(123)_{10}= (\ulaa{3})_2$,
$(110)_2 = (\ulaa{4})_{10}$。

\item
十进制数与二进制数的转换: $(123)_{10}= (\ulaa{5})_2$,
$(110)_2 = (\ulaa{6})_{10}$。


\end{list}


\newpage
\linespread{1.3}\selectfont

\begin{list}{\heiti\Chinese{forlist}、}
            {\setlength{\topsep}{1mm}
             \setlength{\listparindent}{0pt}
             \setlength{\itemsep}{2em}
             \setlength{\labelsep}{0pt}
             \usecounter{forlist}
             \setcounter{forlist}{1}}

\item (15 分) % ========================================================
设 $x_0,x_1,\ldots,x_n$ 为互异节点,求证: \\[1ex]
(1)$\dis\sum\limits_{j=0}^n x_j^k l_j(x) \equiv x^k $\quad ($k=0,1,\ldots,n$); \\
(2)$\dis\sum\limits_{j=0}^n (x_j-x)^k l_j(x) \equiv 0$\quad ($k=0,1,\ldots,n$)。

\item (15 分) % ========================================================
设 $x_0,x_1,\ldots,x_n$ 为互异节点,求证: \\[1ex]
(1)$\dis\sum\limits_{j=0}^n x_j^k l_j(x) \equiv x^k $\quad ($k=0,1,\ldots,n$); \\
(2)$\dis\sum\limits_{j=0}^n (x_j-x)^k l_j(x) \equiv 0$\quad ($k=0,1,\ldots,n$)。

\item (15 分) % ========================================================
设 $x_0,x_1,\ldots,x_n$ 为互异节点,求证: \\[1ex]
(1)$\dis\sum\limits_{j=0}^n x_j^k l_j(x) \equiv x^k $\quad ($k=0,1,\ldots,n$); \\
(2)$\dis\sum\limits_{j=0}^n (x_j-x)^k l_j(x) \equiv 0$\quad ($k=0,1,\ldots,n$)。


\end{list}

\end{document}

按照文档说明: 使用xelatexTeXLive2017下可以顺利编译。但当我们用TeXLive2024在命令行下用xelatex编译时却会发现得到如下错误,无法编译成功:

! Package etoolbox Error: \scr@load@hook undefined.

See the etoolbox package documentation for explanation.
Type  H <return>  for immediate help.
 ...

l.55 \renewrobustcmd*\scr@load@hook
                                   [2]{%
?

通过反向检索该错误,我们不难发现这是因为interfaces-makecell宏包因为过期在TeXLive2021中已经正式弃用,这导致了下面的代码中的\repeatcell失效:

\begin{tabular}{|*{\thenumcol}{c|}} \hline
  \repeatcell{\thenumexer}{rows=1,text=\makebox[\cellwidth]{\zhnumber{\column}}}
   & \makebox[0.12\textwidth]{总分} &\makebox[0.16\textwidth]{阅卷人签名} \\ \hline
  \repeatcell{\thenumcol}{rows=1,end=\\ \hline} \\ \hline
\end{tabular}

参考了以下两个链接:
https://tex.stackexchange.com/questions/625226/alternative-to-repeatcell-from-the-interfaces-package-since-texlive-2021
https://tex.stackexchange.com/questions/297919/create-tabular-depending-on-counter

我简单封装了一个命令\scorebox用于绘制得分框(不建议题号数量过大)

\ExplSyntaxOn
\NewDocumentCommand{\scorebox}{m}
 {
  \newcounter{numexer}\setcounter{numexer}{#1}
  \newcounter{numcol}\setcounter{numcol}{\value{numexer}+2}
  \dim_new:N \cellwidth
  \fp_set:Nn \l_tmpa_fp { .6 * \textwidth / \value{numexer} }
  \dim_set:Nn \cellwidth { \fp_to_dim:N \l_tmpa_fp }
    \begin{tabular}{|*{\int_eval:n { #1 + 2 }}{c|}} \hline
    \int_zero:N \g_tmpa_int
    \prg_replicate:nn { #1 } {%
    \int_gincr:N \g_tmpa_int \makebox[\cellwidth]{\zhnumber{\int_to_arabic:n { \g_tmpa_int }}} & } \makebox[.12\textwidth]{总分} & \makebox[.16\textwidth]{阅卷人签名}\\
    \hline
    \prg_replicate:nn { \int_eval:n { #1 + 1 } } {&}\\
    \hline
  \end{tabular}
}
\ExplSyntaxOff

至此..在TeXLive2024下可以编译...

\documentclass[UTF8]{ctexart}
\usepackage[a4paper,top=2.0cm,bottom=2.5cm,left=2.8cm,right=2.8cm,includehead,includefoot]{geometry}
\usepackage{amsmath,amssymb,amsfonts,bm}
\usepackage{graphicx,xcolor}
\usepackage[xetex,colorlinks,linkcolor=blue]{hyperref}
\usepackage{makecell}
% \usepackage{interfaces-makecell}
\usepackage{calc}
\renewcommand{\baselinestretch}{1.3}

%%%%% ===== 自定义命令 ===========================================================
\newcommand{\ul}[1]{\underline{\makebox[#1]{}}}
\newcommand{\ull}[2]{\underline{\makebox[#1]{\kaishu #2}}}
\newcommand{\ulaa}[1]{\underline{\makebox[3em]{\Large\textcircled{\normalsize #1}}}}
\newcommand{\dis}{\displaystyle}

% https://tex.stackexchange.com/questions/625226/alternative-to-repeatcell-from-the-interfaces-package-since-texlive-2021
% https://tex.stackexchange.com/questions/297919/create-tabular-depending-on-counter

\ExplSyntaxOn
\NewDocumentCommand{\scorebox}{m}
 {
  \newcounter{numexer}\setcounter{numexer}{#1}
  \newcounter{numcol}\setcounter{numcol}{\value{numexer}+2}
  \dim_new:N \cellwidth
  \fp_set:Nn \l_tmpa_fp { .6 * \textwidth / \value{numexer} }
  \dim_set:Nn \cellwidth { \fp_to_dim:N \l_tmpa_fp }
    \begin{tabular}{|*{\int_eval:n { #1 + 2 }}{c|}} \hline
    \int_zero:N \g_tmpa_int
    \prg_replicate:nn { #1 } {%
    \int_gincr:N \g_tmpa_int \makebox[\cellwidth]{\zhnumber{\int_to_arabic:n { \g_tmpa_int }}} & } \makebox[.12\textwidth]{总分} & \makebox[.16\textwidth]{阅卷人签名}\\
    \hline
    \prg_replicate:nn { \int_eval:n { #1 + 1 } } {&}\\
    \hline
  \end{tabular}
}
\ExplSyntaxOff

\pagestyle{plain}

\begin{document}
\zihao{-4} % 小四号字体

%%%%% ===== 试卷头 ===============================================================
\begin{center}
{\heiti\LARGE 华东师范大学期末试卷 (A)} \bigskip

$20xx-20xx$ 学年第 X 学期

\bigskip\bigskip

%%%%% ===== 课程信息,包括课程名,课程性质等
\setlength{\tabcolsep}{1mm}
\renewcommand{\arraystretch}{1.4}
\begin{tabular}{p{7.5cm}p{6.5cm}}
  课程名称:\ull{4.0cm}{\zihao{4} 数~值~分~析} & \\
  学生姓名:\ul{4.0cm}          &
  学\hspace{10.5mm}号:\ul{4.0cm} \\
  专\hspace{2em}业:\ull{4.0cm}{数学与应用数学}  &
  年级/班级:\ull{4.0cm}{20xx级} \\
  课程性质:\ {\kaishu 专业X修} \\
\end{tabular}\smallskip

%%%%% ===== 得分表,其中 numexer 表示题号个数,这里设为 8,可根据实际需要修改,其他可以不用修改。
% \newcounter{numexer}\setcounter{numexer}{8} % 题号个数,这里为 8
% \newcounter{numcol}\setcounter{numcol}{\value{numexer}+2}
% \newlength{\cellwidth}\setlength{\cellwidth}{\textwidth*\ratio{0.6pt}{\value{numexer} pt}}
% \begin{tabular}{|*{\thenumcol}{c|}} \hline
%   \repeatcell{\thenumexer}{rows=1,text=\makebox[\cellwidth]{\zhnumber{\column}}}
%    & \makebox[0.12\textwidth]{总分} &\makebox[0.16\textwidth]{阅卷人签名} \\ \hline
%   \repeatcell{\thenumcol}{rows=1,end=\\ \hline} \\ \hline
% \end{tabular}

%%%%%%%%%%%%%
\scorebox{8}
%%%%%%%%%%%%%

\end{center}

\medskip
\noindent\dotfill
\medskip
%%% The rest of the exercise...

image.png

我建议你找个大语言模型帮你,事半功倍。这并不是LaTeX应该提供的功能。

ctex宏包文档的源文件ctex.dtx中,有如下一段代码:

% Line 924~977
\begin{table}[htbp]
\centering
\begin{threeparttable}
\caption{\CTeX{} 宏集自动配置字体策略}
\label{tab:default-font-select}
\begin{tabular}{*{5}{c}}
  \toprule
             & macOS Old\tnote{1}
             & macOS New\tnote{2}
             & Windows\tnote{3}
             & 其他 \\
  \midrule
  \XeLaTeX   & \makecell{\pkg{xeCJK}\\华文字库}
             & \makecell{\pkg{xeCJK}\\华文字库 + 苹方}
             & \makecell{\pkg{xeCJK}\\中易字库 + 微软雅黑}
             & \makecell{\pkg{xeCJK}\\Fandol 字库\tnote{4}} \\
  \cmidrule(lr){1-5}
  \LuaLaTeX\tnote{5}
             & \makecell{\pkg{LuaTeX-ja}\\华文字库}
             & \makecell{\pkg{LuaTeX-ja}\\华文字库 + 苹方}
             & \makecell{\pkg{LuaTeX-ja}\\中易字库 + 微软雅黑}
             & \makecell{\pkg{LuaTeX-ja}\\Fandol 字库} \\
  \cmidrule(lr){1-5}
  \pdfLaTeX
             & 不可用
             & 不可用
             & \makecell{\pkg{CJK} + \pkg{zhmetrics}\\中易字库 + 微软雅黑\tnote{6}}
             & 不可用 \\
  \cmidrule(lr){1-5}
  \makecell{\LaTeX{} + \\\dvipdfmx}
             & 不可用
             & \makecell{\pkg{CJK} + \pkg{zhmetrics}\\华文字库 + 苹方}
             & \makecell{\pkg{CJK} + \pkg{zhmetrics}\\中易字库 + 微软雅黑\tnote{6}}
             & \makecell{\pkg{CJK} + \pkg{zhmetrics}\\Fandol 字库} \\
  \cmidrule(lr){1-5}
  \makecell{\upLaTeX{} + \\\dvipdfmx}
             & 不可用
             & \makecell{\pkg{zhmetrics-uptex}\\华文字库 + 苹方}
             & \makecell{\pkg{zhmetrics-uptex}\\中易字库 + 微软雅黑}
             & \makecell{\pkg{zhmetrics-uptex}\\Fandol 字库} \\
  \bottomrule
\end{tabular}
\begin{tablenotes}
  \item [1] Yosemite (10.10) 及以前的 macOS 系统。
  \item [2] El Capitan (10.11) 及以后的 macOS 系统。
  \item [3] 仅支持 Windows Vista 及以后的 Windows 操作系统。
  \item [4] 由马起园、苏杰、黄晨成等人开发的开源中文字体,
    参见:\url{https://www.ctan.org/pkg/fandol}。
  \item [5] \LuaLaTeX{} 编译时使用 \pkg{LuaTeX-ja} 宏包。对此,
    第 \ref{sec:lualatex-chinese}~节有特别说明。
  \item [6] 微软雅黑字体并不总是有效,这和选项 \opt{zhmap} 的取值有关。
\end{tablenotes}
\end{threeparttable}
\end{table}

但实际上这还不够...因为索引和超链接仍未定义,经过一番逆向工程,我们不难在ctxdoc.cls中找到如下定义的代码,下面的大致重定义了tnote环境,同时利用hypertarget设置了索引,抄就完了...

%% line 136~151
%% 重新定义 threeparttable 包的 tablenotes 环境
\renewlist{tablenotes}{description}{1}
\setlist[tablenotes]{%
  format=\normalfont\tnote@item,align=right,listparindent=\parindent,
  labelindent=\tabcolsep,leftmargin=*,rightmargin=\tabcolsep,
  after=\@noparlisttrue}
\AtBeginEnvironment{tablenotes}{%
  \setlength\parindent{2\ccwd}%
  \normalfont\footnotesize}
\AtBeginEnvironment{threeparttable}{%
  \stepcounter{tpt@id}%
  \edef\curr@tpt@id{tpt@\arabic{tpt@id}}}
\newcounter{tpt@id}
\def\tnote@item#1{%
  \Hy@raisedlink{\hyper@anchor{\curr@tpt@id-#1}}#1}
\def\TPTtagStyle#1{\hyperlink{\curr@tpt@id-#1}{#1}}

那么我们实际上就可以实现如下的效果...

\documentclass[11pt,a4paper,english]{ctexart}
\usepackage{tikz}
\usetikzlibrary{ducks}
\usepackage{enumitem}
\usepackage[font=small,labelfont=bf,tableposition=top]{caption}
\usepackage{threeparttable}
\usepackage{booktabs}
% \usepackage[colorlinks,linkcolor=red,anchorcolor=blue,citecolor=green]{hyperref}
\usepackage[colorlinks]{hyperref}
\makeatletter
%% copy from ctxdoc.cls
%% Line 136~151
%% 重新定义 threeparttable 包的 tablenotes 环境
\renewlist{tablenotes}{description}{1}
\setlist[tablenotes]{%
  format=\normalfont\tnote@item,align=right,listparindent=\parindent,
  labelindent=\tabcolsep,leftmargin=*,rightmargin=\tabcolsep,
  after=\@noparlisttrue}
\AtBeginEnvironment{tablenotes}{%
  \setlength\parindent{2\ccwd}%
  \normalfont\footnotesize}
\AtBeginEnvironment{threeparttable}{%
  \stepcounter{tpt@id}%
  \edef\curr@tpt@id{tpt@\arabic{tpt@id}}}
\newcounter{tpt@id}
\def\tnote@item#1{%
  %\Hy@raisedlink{\hyper@anchor{\curr@tpt@id-#1}}{#1}
  %\Hy@raisedlink{\hyper@anchor{\curr@tpt@id-#1}}{\color{red}\textsuperscript{#1}}}
  % modify the \textsuperscript{#1} here and change your ideal font style freely...
  \Hy@raisedlink{\hyper@anchor{\curr@tpt@id-#1}}{\begin{tikzpicture}[scale=.5] \duck[signpost=#1] \end{tikzpicture}}} % 你甚至可以在这里画一只鸭子...
\def\TPTtagStyle#1{\hyperlink{\curr@tpt@id-#1}{#1}}
\makeatother
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
    \begin{table}[htbp]
        \caption{A table with notes}\label{tab:tablenotes}
        \centering
        \begin{threeparttable}
            \begin{tabular}{*4{c}}\toprule
                Table head\tnote{1} & Table head\tnote{1} & Table head\tnote{2} & Table head\tnote{2} \\ \midrule
                Some values & Some values & Some values & Some values \\
                Some values & Some values & Some values & Some values \\
                Some values & Some values & Some values & Some values \\
                Some values & Some values & Some values & Some values \\ \bottomrule
            \end{tabular}
            \begin{tablenotes}
                \footnotesize
                \item[1] The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog.
                \item[2] The quick brown fox jumps over the lazy dog.
            \end{tablenotes}
        \end{threeparttable}
    \end{table}
\end{document}

image.png

请首先使用围栏代码块语法(你需要三个`)让你的代码正确高亮,否则缺少\让人怎么帮你debug...

\documentclass[12pt]{article}
\usepackage{ctex}
\usepackage[a4paper]{geometry}%
% \usepackage{setspace} % 设置文档的行距
% \usepackage{caption} % 处理表格和图形的标题
% 表格相关
\usepackage{booktabs} % 三线表
% \usepackage{makecell} % 表格内换行
% \usepackage{float}
% \usepackage{array}
% \usepackage{tabularx} % 设置表格的宽度
% \usepackage{longtable} % 表格跨页
\usepackage{tabularray}
% \usepackage{microtype} % 改善对齐

\DefTblrTemplate{contfoot-text}{default}{textit{Continued on next page}} % 续表

\NewTblrTheme{no-caption}{
    \SetTblrTemplate{head}{empty}
    \SetTblrTemplate{caption}{empty}
}
\begin{document}

% Panel B
\begin{flushleft}
\textbf{Table B4 (cont.)} \\
Using an Alternative Measure of Social Interaction
\end{flushleft}

\vskip -1cm \vskip 0pt

\begin{longtblr}[
    entry=none,
    label=none,
]{
    width = \linewidth,
    rowhead = 3,
    colspec = {X[c,4.5cm]X[c,2cm]X[c,2cm]X[c,2cm]X[c,2cm]X[c,2cm]X[c,2cm]},
    colsep = 0cm,
    cells = {c,m},
    stretch = 0.43,
    % rowsep = 0pt, %感觉行距大点会更好...
    cell{1}{1} = {c=7, r=1}{l},
    cell{2}{1} = {c=1, r=2}{c},
    hline{1,2,Z} = {0.06em},
    hline{3,4} = {0.04em},
    row{2,4-Z} = {ht=0.4cm, font=\small},
    column{1} = {font=\itshape\small},
    row{1} = {ht=0.5cm, font=\normalsize},
    row{3} = {ht=1.2cm},%修改行高我感觉观感就可以了...
}
 {Panel B: OLS regression} &  &  &  &  &  &  \\
  & (1) & (2) & (3) & (4) & (5) & (6) \\
  & {Rel\_Rec} & {CAR\\[-1ex]{}[$-1$, $+1$]} & {CAR\\[-1ex]{}[$-2$, $+2$]} & {CAR\\[-1ex]{}[$-3$, $+3$]} & {CAR\\[-1ex]{}[$-5$, $+5$]} & {BHAR\\[-1ex]{}[$+2$, $+30$]} \\
  % attention here {CAR\\{}[...]} 
  % {}不能缺,具体原理我也不确定,似乎会被识别成\[ \]..导致报错
Social Interaction & 0.086*** & 0.546** & 0.740** & 0.659* & 0.807* & 1.270*** \\
 & (6.32) & (2.39) & (2.53) & (1.95) & (1.86) & (2.62) \\
\end{longtblr}

金融学..累计超额收益率...挺不错的...

% 下一页
\newpage
\end{document}

关于行距,我没找到tabularray比较方便的接口...略作修改如上...

image.png

发布
问题