夏大鱼羊-xkwxdyy
夏大鱼羊-xkwxdyy
这家伙很懒,什么也没写!

注册于 3年前

回答
14
文章
0
关注者
1

问题出在setp-new.cls 的第14行

\LoadClass[fontset=windows,a4paper,oneside,UTF8]{ctexart}

这里调用了 windows 的字体设置,改成 mac:

\LoadClass[fontset=mac,a4paper,oneside,UTF8]{ctexart}

我这是 mactex 2023,xelatex下编译通过

问题来源于想排版长表格,旋转 longtable 环境。因为涉及到浮动体,一般的 rotatebox 这些失效了。目前找到的最佳方案就是结合 landscape 环境。但是效果和上面的 MWE 的效果是一样的,页面被转了,一些人可能要投期刊,他们希望还是保持正常的竖直状态,不旋转页面,只旋转内容。

目前只能拆开长表格为多个表格,比较麻烦。

最起码你要的效果你给张图,比如什么教材上有

\documentclass{ctexbeamer}

\usepackage{tabularray}

\begin{document}
  \begin{frame}
    \frametitle{表格修饰的主要方法}
    
    \begin{table}
      \centering
      \begin{tblr}{
        cells = {m},
        colspec = {Q[c]Q[l,20em]},
        hline{1,Z} = {1pt},
        hline{2},
        row{2} = {cmd = \alert<2>},
        row{3} = {cmd = \alert<3>},
        row{4} = {cmd = \alert<4>},
        row{5} = {cmd = \alert<5>},
        row{6} = {cmd = \alert<6>},
        row{7} = {cmd = \alert<7>},
      }
        修饰内容 & 主要属性\\
        框线 & 样式、颜色、宽度\\
        底纹 & 颜色、图案(样式、颜色)\\
        大小 & {自动调整:根据内容、根据窗口 \\指定宽高:指定高度、宽度(厘米、百分比) \\均分行列:分布行、分布列}\\
        对齐 & {九宫格对齐:表格其实只控制了上中下对齐,左右对齐是用段落 \\文字方向:简化的页面设置--文字方向 \\单元格边距:内容盒子和格盒子的距离}\\
        内容 & 同具体对象的设置一样\\
      \end{tblr}
    \end{table}
    
  \end{frame}
\end{document}

image.png

推荐使用 tabularray 宏包

\documentclass{ctexart}
\usepackage{tabularray}
\usepackage[a4paper]{geometry}

\begin{document}
\begin{tblr}{
  hlines,
  vline{2-5},
  cells = {m, c},
  cell{2}{1} = {r = 7}{c},
  cell{2}{2} = {r = 4}{c},
  cell{6}{2} = {r = 3}{c},
  column{3} = {6cm, c},
}
变量        & 维度        & 题项                               & 变量类型   & 赋值 \\

子女学业负担 & 学习时间     & 孩子平均每天完成学校布置的作业的时间为? & 连续型变量  & \\

~ & ~ & 孩子平均每周参加补课的时间为?& 连续型变量 & \\

~ & ~ & 孩子平均每周完成课外辅导班(家教、家长)布置的作业的时间为? & 连续型变量 & \\

~ & ~ & 孩子上学期间平均每天的睡眠总时间(包含午睡)为?& 连续型变量 & \\

~ & 学业压力 & 孩子在学习时对自身感到满足和喜悦的程度?& 多分类变量  & {1-程度很高 \\ 2-程度较高 \\ 3-程度一般 \\ 4-程度较低 \\ 5-程度很低 }\\

~ & ~ & 学生在学习中感到焦虑、厌倦的程度?&    多分类变量    & {1-程度很低 \\ 2-程度较低 \\ 3-程度一般 \\ 4-程度较高 \\ 5-程度很高} \\

~ & ~ & 学生在学习时出现对学习的抵触行为?&    多分类变量    & {1-很少 \\ 2-较少 \\ 3-一般 \\ 4-较多 \\ 5-很多}
\end{tblr}
\end{document}

image.png

只加黑框的话,可以考虑 empheq 宏包,并且 \tag 改为 \text(因为加框后整个框看成了整体,tag会出现在下面,如果要保持效果不变的话,使用 \text,且理论上来说,如果你真需要两端对齐,可以在 \text 的参数里面调整水平间距

\documentclass{ctexart}
\usepackage{empheq}
\usepackage[showframe]{geometry}
\geometry{a4paper,left = 1.5cm, right = 1.5cm, top = 2.6cm, bottom = 3cm}
\begin{document}
\begin{empheq}[box = \fbox]{align*}
    c (\mathrm{H_2A}) & = \dfrac{c (\mathrm{H_2A})}{c (\mathrm{H_2A}) + c (\mathrm{HA^-}) + c (\mathrm{A^{2-}})}c_0
    \text{\qquad (根据物料守恒:$ c_0=c (\mathrm{H_2A}) + c (\mathrm{HA^-}) + c (\mathrm{A^{2-}})$是常值)}
    \\ & = \dfrac{1}
    {1 + \dfrac{c (\mathrm{HA^-})}{c (\mathrm{H_2A})} + \dfrac{c (\mathrm{A^{2-}})}{c (\mathrm{H_2A})}}c_0
    =\dfrac{1}
    {1 + \dfrac{K_{\mathrm{a}1}}{c (\mathrm{H^+})} + \dfrac{K_{\mathrm{a}1}K_{\mathrm{a}2}}{c^2(\mathrm{H^+})}}c_0
    \\ & = \dfrac{c^2(\mathrm{H^+})}
    {c^2(\mathrm{H^+}) + K_{\mathrm{a}1}c (\mathrm{H^+}) + K_{\mathrm{a}1}K_{\mathrm{a}2}}c_0,
\end{empheq}
\end{document}

image.png

你的第一行少了一个&:

\documentclass{ctexart}
\usepackage{tabularray}

\begin{document}
\begin{tblr}{colspec={|Q[c,0.1\linewidth]|Q[c,0.4\linewidth]|Q[r,0.45\linewidth]|},rowspec={Q[c]Q[l]}}
  \hline
  \SetCell[c=2]{c} {abcABC}   &  &  DE     \\
  \hline
  ABC     &    ABC     &    ABC    \\
  \hline
\end{tblr}
\end{document}

image.png

你这个“第二段”一定在行首?

想要那样的效果最直接的就是把外面的文字放在表格里:

\documentclass{ctexart}
\usepackage{tabularray}

\begin{document}
\begin{tblr}{
  cell{1}{1} = {r = 3}{c},
  column{2} = {c}
}
  2021年  & 哈尔滨师大附中 & \\
          &  东北师大附中  & 高三第一次联考 \\
          & 辽宁省实验中学
\end{tblr}
\end{document}

image.png

graphbox宏包(默认加载graphicx宏包,所以只加载前者即可)
includegraphics的可选参数中加入align=c
(我用了自己的图photo.pdf,替换成自己的即可)

\documentclass{ctexart}
\usepackage{tabularray}
% \usepackage{graphicx}
\usepackage{graphbox}
\begin{document}
\begin{tblr}{vlines,hlines,colspec={X[2]X[2]X[2,m]X[1]X[1]},colspec={Q[c,m]Q[c,m]Q[c,m]Q[c,m]Q[c,m]},rows={1.5cm}}
    你好&你好&你好&你好&你好\\
    
    你好&你好&\framebox{\includegraphics[width=2cm,align=c]{photo.pdf}}&你好&你好\\
    
    你好&你好&你好&你好&你好\\
    
    你好&你好&你好&你好&你好\\
\end{tblr}
\end{document}

image.png

结合l3和xparse宏包的NewDocumentCommand写了一个

\documentclass{article}
\usepackage{tikz}
\ExplSyntaxOn
\dim_new:N \l_circle_radius_dim
\dim_new:N \l_times_circle_distance_dim
\keys_define:nn {timedot}{
    radius.dim_set:N =\l_circle_radius_dim,
    radius.initial:n=1pt,
    distance.dim_set:N =\l_times_circle_distance_dim,
    distance.initial:n=2pt
}
\NewDocumentCommand{\timedot}{O{}}{
    \keys_set:nn {timedot}{#1}
    \ensuremath{\mathbin{
    \tikz[baseline]{
        \fill[black] (0,0)node[above=\l_times_circle_distance_dim,inner~sep=0pt,outer~sep=0pt]{\ensuremath{\times}} circle (\l_circle_radius_dim);}}}
}
\ExplSyntaxOff
\begin{document}
$T$\timedot$L$

$T$\timedot[distance=3pt,radius=2pt]$L$
\end{document}

image.png

用tikz把LaTeX2e中说的vertical center和 centerline of the adjacent line画出来了,确实是这样的,中文书的说法果然有问题

\documentclass{ctexart}
\usepackage{tabularray}
\usepackage{graphicx}
\usepackage{tikz}
\begin{document}
\begin{minipage}[c]{3em}
    \begin{tikzpicture}[baseline]
        \node[draw,inner sep=0pt,outer sep=0pt](b){测试};
        \draw[fill=black] ([xshift=-2mm]b.west)--([xshift=2mm]b.east);
    \end{tikzpicture}
\end{minipage}
\begin{minipage}[c]{3cm}
    \begin{tikzpicture}[baseline]
        \node[draw,inner sep=0pt,outer sep=0pt](a){\includegraphics[width=30mm]{tx.pdf}};
        \draw[fill=black] (a.west) circle (0.5pt);
    \end{tikzpicture}
\end{minipage}
\end{document}

image.png

发布
问题