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

注册于 4年前

回答
173
文章
6
关注者
18

强烈建议直接使用最新的tabularray宏包进行表格排版。

Word思维,尽量早点转换到LaTeX的内容与格式分离的思维上来,并习惯接受LaTeX给出的默认结果。

这种对标,毫无意义,中文、英文、公式等字体字号都可能分开设置,不同字体字形,也不可能做到完全一致。

习惯了LaTeX的美,就会觉得Word应该向LaTeX看齐才对。

个人觉得,可以改一下需求,就接受LaTeX给出的结果。

或者,统一加大行距。

猜测是宏展开问题造成的,重新调整了一下代码:

\documentclass{ctexart}
\usepackage{expl3}
% \usepackage{tikz}
\usepackage{tkz-euclide}

\ExplSyntaxOn

\cs_set:Npn \my_draw:n #1 {
    \int_step_inline:nn {#1}{
        \coordinate (P{##1}) at ({##1},0);
        \draw[fill=black](P{##1}) circle (1.5pt);
        \draw (P{##1})node[anchor=north]{P{##1}}--++(0,1);
    }
}

\newcommand{\mydraw}[1]{
  \my_draw:n {#1}
}

\ExplSyntaxOff

\begin{document}

\begin{tikzpicture}
  \mydraw{6}
\end{tikzpicture}

\end{document}

你可以再体会一下,我觉得LaTeX3代码应该独立出来,再封装成命令供其它部分调用比较合理。

建议在命令行用texdoc ctex打开手册认真阅读:

image.png

一个简单的MWE为:

\documentclass{ctexart}

\ctexset{abstractname = \heiti\zihao{4}摘\quad{}要}

\usepackage{zhlipsum}

\begin{document}
\begin{abstract}
  \zhlipsum[1]
\end{abstract}
\end{document}

其结果为:
image.png


ps.这其实不是一个很发的办法,我觉得更好的办法是重写一个摘要环境,可以参考LaTeX 排版内容与样式分离思想和使用技巧

这两名代码没有错误,采用二分注释法,将这两句注释,会发现还有问题,再注释分析,就会发现是\tkzDrawPoints{A,B,C}写错了,应该用\tkzDrawPoints(A,B,C)(小括号)。

修改后的代码为:

\documentclass{article}

\usepackage[margin=1in]{geometry}
\usepackage{amsmath}
\usepackage{tkz-euclide}

\begin{document}
\begin{tikzpicture}
  \tkzDefPoints{0/0/A,4/0/B,3/2/C}
  \tkzDrawPoints(A,B,C)
  \tkzDrawPolygon(A,B,C)
  \tkzLabelSegment(A,C){$\sqrt{13}$}
  \tkzMarkAngle[size=0.5cm](C,B,A)%
  \tkzLabelAngle[pos=1](C,B,A){$26.6^\circ$}%
\end{tikzpicture}
\end{document}

其中,\usepackage{tikz}不再需要,\tkzMarkAngle[size=0.5cm](A,B,C)%应该写成\tkzMarkAngle[size=0.5cm](C,B,A)%

PS.二分注释法定位错误是LaTeX的Debug中常用的一种方法,建议多学习并实践。

用tabularray宏包可以更好的实现表格内容与格式的分离,见另一种解决方案见

这个使用表格(新tabularray宏包)很容易实现:

\documentclass{ctexart}

\usepackage{tabularray}

\begin{document}
  \begin{tblr}{
    hlines,vlines,
    cells = {c},
    cell{1}{2} = {r=2}{font=\bfseries,c,m},
  }
    所属于类别 & 2021年``华数杯''全国大学生数学建模竞赛 & 参赛编号\\
    本科组     &                                        & CM211940\\
  \end{tblr}
\end{document}

其结果为:
image.png

不过要确认后续是否能够很好的使用这些代码。

用LaTeX3排版分散和居中对齐文字是从fduthesis提取代码,结合让title的underline长度随着最长断行的长度而变化。用LaTeX3进行了一个简单实现,请参考附件用LaTeX3排版学位论文封面

其排版结果为:
image.png

其中,标题也可以居中排版,各下划线位置和大小都可以通过调节参数进行调整。

另外,建议适当改变一下自己的需求,向LaTeX妥协。

参见:vspace or line space in text of wrap fig

picinpar is quite an old package with several restrictions, a newer package for these kind of inserts is wrapfig however you can force a space by adding a blank line with a strut (or a rule of a specified height if you need finer control).

可以用新一代的表格宏包tabularray实现:

\documentclass{ctexart}
% 内容与格式分离的表格宏包
\usepackage{tabularray}

\begin{document}

\begin{table}[!htb]
  \centering
  \caption{xxxx}
  % 表格格式由参数控制
  \begin{tblr}{hlines,
      cell{1}{1-4} = {c},
      cell{2-4}{1} = {c},
      cell{2-4}{2-4} = {r},
      }
    % 表格内容  
    a & aaaaaaaaa & aaaaaaaaaaaaaa & aaaaaaaaaaaaaaaaaaaa \\
    a & 123 & 123456 & 1\\
    a & 12345 & 123 & 123 \\
    a & 1 & 1234 & 123456 \\
  \end{tblr}
\end{table}

\end{document}

其结果为:
image.png

注意:至少需要2021版的TeXLive等发行版,并升级到最新

理解有误,请用texdoc tikz打开其手册,参考“15.3.1 Graphic Parameters: Line Width, Line Cap, and Line Join”小节,line cap俗称“线帽”,是线的两个端点的样式,line join才是“连接”点的样式。
image.png
因此,如果非要使用line cap,则需要分段绘制线条,如:

\documentclass[border=10,tikz]{standalone}

\begin{document}
  \begin{tikzpicture}[line width=10pt,scale=3]
    \draw[line cap=round,line cap=round] (1,1)--(2,2) (2,2)--(1,3);
  \end{tikzpicture}
\end{document}

不过这显然是不合理的,更为合理的是使用:

\documentclass[border=10,tikz]{standalone}

\begin{document}
  \begin{tikzpicture}[line width=10pt,scale=3]
    \draw[line join=round,line cap=round] (1,1)--(2,2)--(1,3);
  \end{tikzpicture}
\end{document}

ps. 请提问时,提供可以运行的MWE(最小工作示例),再有就是有问题先查说明书(如:texdoc tikz),看一手的资料,这个资料显然是别人“嚼过”的,而且写得不明不白。

本来这些辅助文件就是应该存在的,你不想要是不对的,建议每写一个文档就创建一个文件夹,在文件夹里进行工作。这些辅助文件尽量不要随便删除,它们记录了大量需要的信息。

建议认真读lshort-zh-cn,在1.5节给出了文件一览:
image.png

发布
问题