寄存器
寄存器
这家伙很懒,什么也没写!

注册于 4年前

回答
170
文章
5
关注者
16

你用的应该是旧版本手册,新版本的tkz-euclide宏包,在4.2版以后,为进一步实现计算与绘制的分离,作者对\tkzDrawCircle等命令进行了修正,可以参阅手册中的描述:
image.png

因此,你的代码应该调整为:

\documentclass[12pt,a4paper]{ctexart}

\usepackage{tkz-euclide}

\begin{document}
    \begin{tikzpicture}[scale=0.75]
        \tkzDefPoint(0,0){A}
        \tkzDefCircle[R](A, 1) \tkzGetPoint{a}
        \tkzDefCircle[R](A, 2) \tkzGetPoint{b}
        \tkzDefCircle[R](A, 3) \tkzGetPoint{c}
        \tkzDrawCircles(A,a A,b A,c)
        \tkzDrawPoint(A)
        \tkzLabelPoints(A)
    \end{tikzpicture}
\end{document}

另外,新版本的tkz-euclide宏包已无需再提前加载tkz-base宏包。代码中原有的\usepackage{pgfplots}也是不需要的。

这是一个基线的问题,在tabularray的github中有讨论,由于我无法访问github,因此无法给你具体的链接。

我写的一个joinbox盒子拼接宏包已上传CTAN,可以在拼接图像时指定输出基线,以下代码仅供参考:

\documentclass{ctexart}
\usepackage{tabularray,graphicx}
\usepackage{joinbox}
\begin{document}
    \begin{center}
        \begin{tblr}{%
            hlines,
            vlines,
            cells={m,c}
            }
            标题 & 情况一 & 情况二 & 情况三\\
            {这是\\图像} &
            \joinfigs[vc,0.13\paperwidth]{example-image-a}&
            \joinfigs[vc,0.13\paperwidth]{example-image-b}&
            \joinfigs[vc,0.13\paperwidth]{example-image-c}\\
            测试 & 测试 & 测试 &测试\\
        \end{tblr}
    \end{center}
\end{document}

排版的结果为:
image.png

可以用circledtext宏包或circledsteps宏包实现:

\documentclass{ctexart}
\usepackage{circledtext}

\begin{document}
  \circledtext{\#}
\end{document}

\documentclass{ctexart}
\usepackage{circledsteps}

\begin{document}
  \Circled{\#}
\end{document}

查看nameref宏包说明书,在其Introduction中有明确说明:

Cross-referencing to include the name of the section, rather than just the number or page. This works by redefining some of the inside LATEX macros, so it is vulnerable to future changes.

因此,个人认为,这是不可以实现的。

这个需求是不是可以用自定义宏来实现呢?

新版的ctex宏包有较大改动,请参阅其说明书的11.6节:
image.png

可以用TikZ实现,在TikZ说明书的首页就有样例代码。
image.png
简单实现了一个,细节请再仔细调整:

\documentclass{ctexart}

\usepackage{tikz}
\usetikzlibrary{fadings}

% 文字倒影(TikZ实现)
\newbox\mybox
\def\nodeshadowed[#1]#2;{
  \node[scale=2,above,#1]{
    \global\setbox\mybox=\hbox{#2}
    \copy\mybox
  };

  \node[scale=2,above,#1,yscale=-1, scope fading=south,opacity=0.4]{\box\mybox};
}

\makeatletter
\renewcommand\maketitle{
  {
    \raggedright % Note the extra {
    \begin{center}
      {
        \begin{tikzpicture}
          \nodeshadowed[blue, at = {(-5, 8)}]{\@title};
        \end{tikzpicture}
      }\\[4ex]
      {
        \begin{tikzpicture}
          \nodeshadowed[blue, at = {(-5, 8)}]{\@author};
        \end{tikzpicture}
      }\\[4ex]
    \end{center}
  }
} % Note the extra }
\makeatother

\title{线性代数.总结与复习}
\author{武汉大学\ 黄正华}
\date{}

\begin{document}

\maketitle

\end{document}

其结果为:
image.png

用tabularray宏包可以方便实现:

\documentclass{article}

\usepackage{tabularray}

\begin{document}

\begin{tblr}{%
  cells  = {c, m},
  row{1} = {mode = math},
  column{1} = {mode = math},
  hline{2,Z} = {2-Z}{0.15em},
  vline{2,Z} = {2-Z}{0.15em},
  hline{3} = {2-Z}{0.08em},
  vline{Y} = {2-Z}{0.08em},
  }
     &x_1 & x_2 & x_3 & x_4 & x_5 &   \\
 z   & 8  & 9   & 0   & 0   & 0   & 5 \\
 x_3 & 2  & 2   & 1   & 0   & 0   & 1 \\
 x_4 & 3  & -1  & 0   & 1   & 0   & 2 \\
 x_5 & 0  &  3  & 0   & 0   & 1   & 3 \\
\end{tblr}

\end{document}

结果:
image.png

关于tabularray宏包使用细节,请参阅其使用说明书或tabularray表格排版宏包视频教程

  1. 请提问时提供完整的能复现问题的MWE(最小工作示例)代码。
  2. 建议对代码本身进行必要格式化处理,以提高代码可读性。

这个问题可以通过引入counter库,通过对tabularray内部计数器的修正来解决:

\documentclass{ctexart}

\usepackage{caption}
\usepackage{tikz}
\usepackage{tkz-base}
\usepackage{tabularray}
\UseTblrLibrary{counter} % <== 引入计数器库

\begin{document}

\captionof{figure}{}\label{dtui}
\begin{center}
  \begin{tblr}[entry=none,label=none]{rows={m},columns={c}}
    \begin{tikzpicture}
      \tkzDefPoints{0/0/O}
      \tkzInit[xmin=-2,xmax=2,ymin=-2,ymax=2]
      \tkzDrawXY[noticks,>=stealth]
    \end{tikzpicture}
    \\
    \begin{minipage}[m]{10em}
      \captionof{figure}{}\label{tui}
    \end{minipage}
    \vspace{-1.5em}
  \end{tblr}
\end{center}

\end{document}

排版结果:
image.png

不建议用这些转换来的代码,基本没有可维护性。可以考试试试用tabularray宏包实现需求。

% \usepackage{tabularray}
% \usepackage{ninecolors}
\begin{tblr}{%
  hlines, vlines,
  cells = {c},
  cell{1}{1} = {c = 3}{c},
  cell{1}{4} = {r = 2}{m, c},
  cell{1}{5} = {r = 2}{m, c},
  cell{1}{6} = {r = 2}{m, c},
  row{1,2} = {gray8}
  }
  封装   & 封装  & 封装  & 名称 & 数字功能 & 模拟功能 \\
  QFP100 & QFP64 & QFP48 & 名称 & 数字功能 & 模拟功能 \\
  1      & 1     & 1     & A    & A        & -        \\
  2      & 2     & 2     & B    & B        & -        \\
\end{tblr}

\begin{tblr}{%
  hlines, vlines,
  cells = {c},
  cell{1}{1} = {c = 3}{c},
  cell{1}{4} = {r = 2}{m, c},
  cell{1}{5} = {r = 2}{m, c},
  cell{1}{6} = {r = 2}{m, c},
  }
  封装   & 封装  & 封装  & 名称 & 数字功能 & 模拟功能 \\
  QFP100 & QFP64 & QFP48 & 名称 & 数字功能 & 模拟功能 \\
  1      & 1     & 1     & A    & A        & -        \\
  2      & 2     & 2     & B    & B        & -        \\
\end{tblr}

image.png

完全可以,建议使用tkz-euclide宏包,当然也可以使用TikZ直接绘制,如果有兴趣,也可以用LaTeX3结合TikZ或l3draw实现,具体操作,可以阅读这些包的使用说明书。

  1. 建议对代码进行格式化处理,以提升代码可读性:
\documentclass{article}
\usepackage{ctex}
\usepackage{tabularray}
\usepackage{tcolorbox}

\title{实验记录041301}

\newtcolorbox{tabtitlebox}[1]{%
    colback=white,
    colframe=gray9,
    fonttitle=\bfseries,
    left=3pt,
    right=3pt,
    title={#1}
}

\NewTblrEnviron{JsSheet}
\SetTblrInner[JsSheet]{hlines,vlines,row{1}={gray9}}

\NewDocumentEnvironment{JsTabenv}{m m +b}{
    \begin{tabtitlebox}{#1}
        \begin{JsSheet}{#2}
            #3
        \end{JsSheet}
    \end{tabtitlebox}
}{}

\begin{document}

\begin{tblr}[%
    entry=none,
    label=none,
    caption={},
    headsep=0pt,
    presep=3pt,
    footsep=0pt
    ]{colspec={|X|X|}}
    \hline
    \SetCell[c=1, r=1]{l}{
      \begin{JsTabenv}{普通表格}{colspec={X[c,m]X[c,m]X[c,m]X[c,m]X[c,m]X[c,m]}}
        序号 & 供试品 & 温度 & 湿度 & 结果 & F \\
        &&&&& \\
        &&&&& \\
        &&&&& \\
        &&&&&
      \end{JsTabenv}
    }
    & \mbox{ }\\
    \hline
    \mbox{ }&\mbox{ } \\
    \hline
\end{tblr}

\end{document}
  1. Ubuntu22.04+TeXLive2023,无法复现你说的问题:

image.png

可以使用setspace宏包的\setstrectch命令结合tblr的cellcellscmd参数实现,如:

\documentclass{article}
\usepackage{tabularray}
\usepackage{ctex}
\usepackage{setspace}
\begin{document}
\begin{tblr}{colspec = {ll}, hlines,%
        cells={cmd=\setstretch{0.8}},%
    column{1} = {2\ccwd}, column{2} = {4\ccwd}}
    \SetCell[r = 2]{l, h}\textbf{卷一} & 〇〇〇〇  \\
                                       & 〇〇〇〇〇\\
    \SetCell[r = 2]{l, h}\textbf{卷二} & 〇〇〇〇〇\\
                                       & 〇〇〇〇〇\\
    \textbf{卷三}                      & 〇〇〇〇〇\\
\end{tblr}
\end{document}

其结果为:
image.png

先认真读一个install-latex-guide-zh-cn,然后在命令行输入xelatex -v(注意空格),能运行了,再说其它的。

发布
问题