拿了橘子跑啊
拿了橘子跑啊
这家伙很懒,什么也没写!

注册于 6年前

回答
89
文章
0
关注者
4

  1. 卸载 MiKTeX 了么?如果没卸载 MiKTeX,很有可能目前仍然是 MiKTeX 为默认的 TeX 系统。在 命令行运行:
tex --version

看看发行版究竟是什么。

  1. 如果 MiKTeX 和 TeXLive 并存,而且 TeXLive 安装没有问题,把系统变量 path 中 TeXLive 的地址放在 MiKTeX 之前,这样应该没问题了。
  2. 如果 TeXLive 没有安装成功,而 MiKTeX 是好用的,既然已经下载了 diagbox 包,把相关文件放到:C:\ProgramData\MikTeX\2.9\tex\latex\下,然后刷新文件名数据库(MiKTeX Console 有相关 GUI 操作,或者管理员身份命令行执行 texhash)应该也可以用了。

这个间距是在\@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 后的效果:
image.png

其实最可靠的方式是使用 minipage 环境,其中直接使用centering 声明居中即可,当然,其中也可以使用 center 环境,center 产生的额外间距也会被 minipage 去掉。不过这种方法不能让环境中的内容自动换页。

顺序没错啊,plain.bst 是按作者名排序的。
001 - Guti'{e}rrez-Cuevas - G 排第二
002 - Teimourpour - T 排第三
003 - Christodoulides - C 排第一

给他 pdf 让他直接在上面做标记啊,然后你自己改过来不久行了?难道你想让导师直接帮你改好啊?

别乱搞。

  1. \subsubsection 不能 \newcommand,这是个已经存在的命令,\newcommand 当然报错。
  2. 即便要新定义章节结构,你那个\subsubsubsection 也是乱写,建议好好看看内核里这些章节结构都是咋定义的。
  3. 要用更深的逻辑层次,还有两级,\paragraph 和 \subparagraph,默认文档类的标题是 runin 的,也就是标题后面不换行直接排段落的正文。需要自己修改。ctex 文档类的 sub3section 和 sub4section 可以把这两级标题的样式改成和 \subsubsection 类似的样式。

你改了第二行的默认编译器,但是“创建并查看”那个工具还是 pdflatex 的编译链啊,是不是点的还是“创建并查看”按钮呢?如果用 xelatex 编译,不会出现那个错误提示的。

这种问题去 github 这个项目那里提 issue 比较好。自己排查,只能看出现这种情况的那一页对应代码有什么特殊的用法。你连个 mwe 都不给,爱莫能助。

把lstlistings 环境里的代码块缩进去掉就行了,那几句行首都有Tab制表符缩进,listings 把这个制表符缩进也排出来了。

你这个问题问得不清楚。

  1. 我把这里的 长度 理解成字符的宽度。
  2. ex这个长度单位最初在定义的时候并不是字符 x 的宽度,而是字符 x 的高度。所以一个汉字的长度相当于几个ex 和 一个汉字的长度相当于几个 x 的长度 并不是同一个答案。
  3. em 、ex 这两个单位最初定义时确实是当前字体字号下 M 字符的宽度和 x 字符的高度,但现在通常是在字体文件里指定这两个相对长度的精确值,当然,它们会随字号大小而改变。
  4. 在 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}

image.png

不知道你如何实现的表格,如果是用了 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}

效果:
image.png

子标题默认就是在图片正下方啊。如果你得到结果不一样,请给出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}

效果:
image.png

解压后的文件夹看一下readme,用命令行:

tex lastpage.dtx

就能生成 lastpage.sty

发布
问题