\label
要放在有效的可以打标签的对象后,你自己那个 {\bf Lemma}
并不是有效的可打标签的对象,这里之前最近的有效对象就是\section{}
,所有当然就是用的节序号。用amsthm
定义的定理类环境就可以了。
\label
要放在有效的可以打标签的对象后,你自己那个 {\bf Lemma}
并不是有效的可打标签的对象,这里之前最近的有效对象就是\section{}
,所有当然就是用的节序号。用amsthm
定义的定理类环境就可以了。
带@
的命令是内部命令,需要在 \makeatletter
和 \makeatother
之间使用,即临时改变 @
的类别码。但是即使这样,你直接用 \@title
也是不行的,因为在 \maketitle
的定义里,最后将 \@title
、\@author
甚至是 \maketitle
本身都清空了(你可以试试随便在正文中再 \maketitle
一下看看有没有用处)。所以要在 \maketitle
之前把他们的定义给到其他的cs,就像上面的答案里 \let\runtitle\@title
另一种治标的解决方案,用 minipage
包起来。
\documentclass{ctexart}
\usepackage{tabularray,graphicx}
\begin{document}
\begin{center}
\begin{tblr}{%
hlines,
vlines,
% colspec={*3cQ[cmd={\raggedright},m]},
cells={m,c}
}
标题 & 情况一 & 情况二 & 情况三\\
{这是\\图像} &\begin{minipage}{0.13\paperwidth}\includegraphics[width=0.13\paperwidth]{example-image-a}\end{minipage}&\begin{minipage}{0.13\paperwidth}\includegraphics[width=0.13\paperwidth]{example-image-b}\end{minipage}&\begin{minipage}{0.13\paperwidth}\includegraphics[width=0.13\paperwidth]{example-image-c}\end{minipage}\\
测试 & 测试 & 测试 &测试\\
\end{tblr}
\end{center}
\end{document}
这是个什么需求呢?为什么编译完不想看新的结果非要看原来的结果?那你把原来的结果复制一个副本好了啊。
tblr
的环境还是很复杂的,不建议这么嵌套,如果非要嵌套用,不如先做个盒子\tabbox
,然后\usebox{\tabbox}
。
\documentclass[a4paper,12pt]{article}
\usepackage{ctex}
\usepackage{tabularray}
\newsavebox\tabbox
\sbox\tabbox{
\begin{tblr}[T]{|c|c|}
\hline
1 & 2 \\
\hline
3 & 4 \\
\hline
\end{tblr}
}
\begin{document}
\begin{tblr}{
colspec={|X[l,m]|X[l,m]|X[l,m]|X[l,m]||X[l,m]|},
rowspec={X[c,m,25.5pt]X[c,m,200pt]},
}
\hline
\SetCell[c=5]{l}{ 检测细胞: \quad }&&&& \\
\hline
\SetCell[c=2]{l,h}{ 检测细胞: \quad }&&\SetCell[c=3]{l,h}{\usebox{\tabbox}}&& \\
\hline
\end{tblr}
\end{document}
效果传不上了,你编译一下试试吧。
btw:你究竟是想表达什么,为什么要表格套表格呢?
你可以尝试一下 \textcircled{\#}
tabularx
的 X 列模式,但这需要用到 ltxtable
包;tabularray
包。三种方法任选其一。
只要思想不滑坡,办法总比问题多。
\documentclass{article}
\usepackage{tabularray}
\begin{document}
\begin{tblr}{
colspec={cr@{}l},hlines,vlines,hline{2,3}=0pt,vline{3}=0pt
}
\SetCell[r=3]{m,c}
a & & Bisharp \\
& & 1223@qq.com \\
& hello:\ \mbox{} & 136110110110 \\
c & \SetCell[c=2]{m,c}d & \\
\end{tblr}
\end{document}
runin
本来就是接在标题后面直接排出来的啊。
而且我看到了你用 4 号宋体字,应该是用 ctex
包吧,那么文档类选项用 sub3section
或 sub4section
就能让这两种样式的段落都改排在不同段了。当然,你对 paragraph/runin
和 subparagraph/runin
分别设置成 false
也可以实现,没必要用 titlesec
去改吧。
设置详细说明请查看 ctex
包的文档,第 7.3 节
texdoc ctex
直立体的 pi
可以用 upgreek
包实现,可能你还会觉得那个直立体也不是那么直立
。
\documentcalss{article}
\usepackage{upgreek}
\begin{document}
\[ \uppi = 3.1415926535897932384626\dots \]
\end{document}
pdfpages
的手册没有好好读啊,\includepdf
的选项里有 pagecommand={xxx}
这一项,默认是:pagecommand={\thispagestyle{empty}}
所以你知道怎么办了吧?
\includepdf[pagecommand={\thispagestyle{fancy}}]{xxx.pdf}
不就行了?
picins.sty 可以去 CTAN 上下一个,放在编译文件所在目录就可以。不过这种古老的模板估计是要用 CTEX 套装。用 TeXLive 的话,不好说,说不定有很多过时的命令用不了。
texdoc xeCJK
可以看一下 xeCJK
的 [Mapping] 选项。你可以自己做一个映射文件。
要不看看这里
可以换一个思路,用 csvsimple
结合 tabularray
来完成这个任务。本来你这种长表格就不会自己手动敲入内容,更多是从文件读取,不妨在 csv
文件里加一列指定相应颜色。代码示例如下:
\documentclass{ctexart}
\begin{filecontents*}{temp.csv}
cellcolor,city,country,property
azure9,华盛顿,美国,首都
azure9,洛杉矶,美国,大城市
white,东京,日本,首都
azure9,莫斯科,俄罗斯,首都
\end{filecontents*}
\usepackage{tabularray}
\usepackage{csvsimple-l3}
\usepackage{xcolor}
\begin{document}
\begin{table}
\caption{测试表}\label{tab:temp}
\csvreader[
head to column names,
tabularray={
colspec = {X[1,l,h] X[1,l,h] X[3,l,h]},
hline{1,Z}=1.2pt,
hline{2}=0.8pt,
cell{2}{2}={r=2}{m,l}
},
table head={\textbf{城市} & \textbf{国家} & \textbf{性质}\\}
]{temp.csv}{}{
\SetRow{\cellcolor}
\city & \country & \property
}
\end{table}
\end{document}
效果:
如果颜色那一列你想操作得简单一点,那么就用个简单字符,然后用 csvsimple
做判断,具体要看csvsimple
的手册。
我细看了你的例子,就这个例子而言,还需要用些权宜之计,主要问题在于:
csvsimple
没有给 longtblr
的 [<option>]
参数的接口,表格标题要自己处理。,
字符,标准的 csv
是将单元格字符串用 ""
包裹,但 csvsimple
不支持,可能会导致列错误,因此要用其他不包含的字符作为分隔符,比如 |
,但这样的 csv
在 Microsoft Excel 中修改处理就比较麻烦了。tipa
的音标字符通过 csvsimple
处理会出错,这里用了\newsavebox
\sbox
和 \usebox
处理(没去深究,权宜之计)。这一段的代码如下:
\documentclass{ctexart}
\usepackage{tabularray}
\usepackage{csvsimple-l3}
\usepackage{xcolor}
\usepackage{tipa}
%%% 因为你这里用到了 comma 作为标点符号,如果是严格的 csv 将用 "" 包裹含 comma 的字符串
%%% 但 csvsimple 并不支持这样的用法,所以这里文件用 | 作为分隔符
%%% 不过这样 Microsoft Excel 就不支持了。这些细节上的困难要自己去克服。
\begin{filecontents*}{PfN.csv}
ccolor|Meaning|Prefixes|Example
azure9|{a half \\ $\frac{1}{2}$} |semi- |{semilunar valve 半月瓣\\ (lun/o: moon; -ar: pertaining to)}
azure9| |hemi- |{hemisphere \\ hemiplegia 半瘫\\ (-plegia/\usebox{\plegia}/: paralysis)}
white |{one,single \\ 1} |mono- |{monocyte 单核细胞}
white | |uni- |{unicellular 单细胞的}
azure9|{two \\ 2} |bi- |{bicuspid 二尖瓣的 \\ (cusp/i: point)}
azure9| |di- |{dioxide 二氧化物 \\ diplegia 双侧瘫痪}
white |double |dipl/o|{diploid n.【生】二倍体;(结晶)偏方24面体 adj.二倍体的(含有两套染色体)}
azure9|{three \\ 3} |tri- |{triplet \\ triceps 三头肌 \\ (-ceps: head)}
white |{four \\ 4} |quadr-|quadrant
white | |tetra-|tetracycline/\usebox{\tetracycline}/ 四环素
azure9|many |multi-|{multipara /\usebox{\multipara}/ 经产妇 \\ (-para: to bring forth to, bear)}
azure9| |poly- |polycystic kidney 多囊肾
\end{filecontents*}
%%% 有几个 tipa 字符好像没法通过 csvsimple 中处理,这里用了权宜之计
\newsavebox\plegia
\sbox\plegia{\textipa{"pli:\textdyoghlig I@}}
\newsavebox\multipara
\sbox\multipara{\textipa{m2l"tIp@r@}}
\newsavebox\tetracycline
\sbox\tetracycline{\textipa{""tetr@"saIklm}}
\begin{document}
%%% 由于 csvsimple 没有给 longtblr 的 option 参数的接口
%%% 长表格的标题要用这种黑科技处理一下,用完好像要恢复成 normal
\DefTblrTemplate{caption-text}{empty}{Prefixes for Numbers}
\SetTblrTemplate{caption-text}{empty}
%%% 下面使用 csvsimple
\csvreader[
head to column names,
separator=pipe,
long tabularray={
colspec = {X[1,l,h] X[1,l,h] X[3,l,h]},
rowhead = 1, rowfoot = 0,
column{2}={font=\bfseries},
hline{1,Z}=1.2pt,
hline{2}=0.8pt,
cell{2,4,6,10,12}{1,1,1,1,1}={r=2}{m,l}
},
table head={\textbf{Meaning} & \textbf{Prefixes} & \textbf{Example}\\}
]{PfN.csv}{}{
\SetRow{\ccolor}
{\Meaning} & \Prefixes & {\Example}
}
%%% 恢复
\SetTblrTemplate{caption-text}{normal}
\end{document}
效果:
瞄了一眼这个所谓的模板,模板水平烂出天际了。用 table*
来排标题、摘要是非常奇葩的做法。如果非要用这个模板投稿,就像它那个bak 文件里写的一样,table*
的环境里控制好写满一页,然后用 \clearpage
新开一页再写正文吧。
实在无力吐槽了,这是在用LaTeX 以 Word 的蠢方法来 cosplay Word,Word 其实有很聪明的用法,但是这个模板的作者显然也不知道,他偏偏要挑最蠢的方法。
问 使用\ref后出现的是节序号怎么处理呢?