没必要玩 cosplay。多用点精力放在内容上。
没必要玩 cosplay。多用点精力放在内容上。
这个间距是在\@trivlist
里添加的,你可以通过命令行:
latexdef \@trivlist
看到这个宏的展开
所以,一个不是太严谨的方法是利用 xpatch
宏包的 xpatchcmd
命令将 \topsep
patch 为 0pt
:
\makeatletter
\xpatchcmd{\@trivlist}{\topsep}{0pt}{}{}
\makeatother
完整的例子(为了排版出对比,我改了页边距)和效果:
\documentclass[12pt,twoside]{ctexbook}
\usepackage{xcolor}
\usepackage{xpatch}
\usepackage{zhlipsum}
\usepackage[margin=2cm]{geometry}
\begin{document}
\zhlipsum[1]
\begin{center}
\begin{tabular}{p{0.9\textwidth}}
\hline
{\color{red}这里center环境会和上下文有一定的额外间距,不知该如何减小或消除。尝试过用enumitem宏包,设置trivlist,并未成功}\\
\hline
\end{tabular}
\end{center}
\zhlipsum[1]
\makeatletter
\xpatchcmd{\@trivlist}{\topsep}{0pt}{}{}
\makeatother
\begin{center}
\begin{tabular}{p{0.9\textwidth}}
\hline
{\color{red}这里center环境会和上下文有一定的额外间距,不知该如何减小或消除。尝试过用enumitem宏包,设置trivlist,并未成功}\\
\hline
\end{tabular}
\end{center}
\zhlipsum[1]
\end{document}
以下可以看出未 patch 的效果和 patch 后的效果:
其实最可靠的方式是使用 minipage
环境,其中直接使用centering 声明居中即可,当然,其中也可以使用 center
环境,center
产生的额外间距也会被 minipage
去掉。不过这种方法不能让环境中的内容自动换页。
顺序没错啊,plain.bst
是按作者名排序的。
001 - Guti'{e}rrez-Cuevas - G 排第二
002 - Teimourpour - T 排第三
003 - Christodoulides - C 排第一
给他 pdf
让他直接在上面做标记啊,然后你自己改过来不久行了?难道你想让导师直接帮你改好啊?
别乱搞。
\subsubsection
不能 \newcommand
,这是个已经存在的命令,\newcommand
当然报错。\subsubsubsection
也是乱写,建议好好看看内核里这些章节结构都是咋定义的。\paragraph
和 \subparagraph
,默认文档类的标题是 runin
的,也就是标题后面不换行直接排段落的正文。需要自己修改。ctex
文档类的 sub3section
和 sub4section
可以把这两级标题的样式改成和 \subsubsection
类似的样式。你改了第二行的默认编译器,但是“创建并查看”那个工具还是 pdflatex 的编译链啊,是不是点的还是“创建并查看”按钮呢?如果用 xelatex
编译,不会出现那个错误提示的。
这种问题去 github 这个项目那里提 issue 比较好。自己排查,只能看出现这种情况的那一页对应代码有什么特殊的用法。你连个 mwe
都不给,爱莫能助。
把lstlistings
环境里的代码块缩进去掉就行了,那几句行首都有Tab
制表符缩进,listings
把这个制表符缩进也排出来了。
你这个问题问得不清楚。
长度
理解成字符的宽度。ex
这个长度单位最初在定义的时候并不是字符 x
的宽度,而是字符 x
的高度。所以一个汉字的长度相当于几个ex
和 一个汉字的长度相当于几个 x 的长度
并不是同一个答案。em
、ex
这两个单位最初定义时确实是当前字体字号下 M
字符的宽度和 x
字符的高度,但现在通常是在字体文件里指定这两个相对长度的精确值,当然,它们会随字号大小而改变。ctex
宏集中,em
这个单位长度被定义为和一个汉字字符等宽,即\ziju
为0时,1em
= \ccwd
,这个长度和 M
的宽度还是有一定的差别的。这几个长度单位数值可以通过 \printlen
宏包换算显示出来。下面的例子文件给出了这几个长度的数值。x
字符的高度我一时想不起什么方式来获得了,用了个比较傻的方法。
\documentclass{ctexart}
\usepackage{printlen,graphicx}
\uselengthunit{bp}
\newlength\widthofx
\newlength\heightofx
\newlength\widthofM
\settowidth\widthofx{x}
\settowidth\heightofx{\rotatebox{90}{x}}
\settowidth\widthofM{M}
\begin{document}
\begin{tabular}{l|r}
\hline
1em & \printlength{1em} \\
\hline
1ex & \printlength{1ex} \\
\hline
ccwd & \printlength{\ccwd} \\
\hline
width of x & \printlength{\widthofx} \\
\hline
height of x & \printlength{\heightofx} \\
\hline
width of M & \printlength{\widthofM} \\
\hline
\end{tabular}
\end{document}
不知道你如何实现的表格,如果是用了 booktabs
,嗯,宏包作者告诉你:
Never, ever use vertical rules.
其实就算是用了 booktabs
,也是有办法把竖线贯通的,把 \belowrulesep
和 \aboverulesep
这两个长度设置为 0pt
就可以了。
首先你要确保有这个字体,然后可以用fontsepc
调用这个字体。命令是:\newfontfamily{<macro>}[<font options>]{<fontname>}
如:
\documentclass{ctexbook}
\usepackage{fontspec} % 其实不用加载,ctex 加载了
\newfontfamily\Arial[Mapping=tex-text]{Arial} % 得确保你有这个字体
\ctexset{
chapter={name={,},
number=\arabic{chapter},
numberformat=\zihao{0}\Arial,
aftername = {},
beforeskip = {-20pt},
afterskip = {10pt}}
}
\begin{document}
\chapter{概述}
\end{document}
效果:
子标题默认就是在图片正下方啊。如果你得到结果不一样,请给出MWE。
\documentclass{ctexart}
\usepackage{graphicx,subfigure}
\begin{document}
\begin{figure}
\centering
\subfigure[子图 a]{
\includegraphics[width=4cm]{example-image-a}}
\hspace{15pt}
\subfigure[子图 b]{
\includegraphics[width=4cm]{example-image-b}}
\caption{路面}
\end{figure}
\end{document}
效果:
解压后的文件夹看一下readme,用命令行:
tex lastpage.dtx
就能生成 lastpage.sty
你把旋转和指定高度的动作分解了以后就很容易看明白了,如图:
逗号最好不要用这种方式来映射,因为这个符号可能会频繁出现在代码段中,不要引起其他问题。你最好还是手动替换掉。
这本来就是写错字,相当于把“孔子曰”写成了“孔子日”,如果这时候你考虑把“日”字映射成“曰”就是在走歪门邪道了。
问 希望根据word模板,排版一份latex模板,模仿不像。