罗列(个人认为的)低水平 作品的特点
初级错误
-
手写(列表)编号,例子:
1.
、1、
、一、
。正确写法:用enumerate/itemize
环境配合enumitem
宏包
-
手写章节格式,例子:
\chapter{一、文字}
。正确写法:用 CTeX 宏集提供的\ctexset
-
没有特殊原因而不用浮动体/滥用
[H]
选项 -
数学模式与文本模式乱用,例子:
-
a$^2$
这种低水平写法。正确写法:$a^2$
-
极端的例子:
\textbf{例12.1(杨不等式):}设 $ f(x) $ 在 $ \mathbb{R} $ 上严格单调递增,连续,$ f(0) = 0 , g(y) $ 是 $ f(x) $ 的反函数,则 $ {\forall}a , b > 0 , \int_{0}^{a}f(x)dx + \int_{0}^{b}g(y)dy \geq ab $
\begin{proof}
\begin{flushleft}
\begin{gather*}
\int_{0}^{a}f(x)dx = S_{OABO} , \int_{0}^{b}g(y)dy = S_{OCEO} , ab = S_{OADEO} \\
S_{OABO} + S_{OCEO} \geq S_{OADEO} (\text{当且仅当} b = f(a) \text{时等号成立}) \\
\text{设} T = \{ x_0 , x_1 , \cdots , x_n \} \text{是} [0 , a] \text{的一个分割,令} y_i = f(x_i) , i = 1 , \cdots , n \\
\text{则} \{ y_0 , y_1 , \cdots , y_n \} \text{是} [0 , b] \text{的一个分割} \\
\sum\limits_{i = 1}^nf(x_i)\bigtriangleup x_i + \sum\limits_{i = 1}^ng(y_{i - 1})\bigtriangleup y_i \\
= \sum\limits_{i = 1}^nf(x_i)(x_i - x_{i-1}) + \sum\limits_{i = 1}^nf^{-1}[f(x_{i-1}))(f(x_i) - f(x_{i-1})]\\
= \sum\limits_{i = 1}^nf(x_i)(x_i - x_{i-1}) + \sum\limits_{i = 1}^nx_{i - 1}[f(x_i) - f(x_{i-1})] \\
= \sum\limits_{i = 1}^n[x_if(x_i) - x_{i-1}f(x_{i-1})] \\
= x_nf(x_n) - x_0f(x_0) \\
= af(a)
\end{gather*}
\end{flushleft}
\end{proof} -
为什么不推荐这么写?
- 因为会导致
- 难以对齐
- 数学符号跟文字需要手动加空格
- 难以做到自动缩进
- 无法自动、正确的断页
- 无法自动、正确的断行
甚至于,这种写法本身就是错的,错的就是错的,不需要理由,实践证明,这种写法迟早会吃亏的。
- 因为会导致
-
-
算符没有正确输入,例子:
$sin x$
。正确写法:$\sin x$
-
单位直接在数学模式中书写,例子:
-
$10kg$
-
$10\,kg$
-
$10\,\mathrm{kg}$
-
正确写法:
% \usepackage{siunitx}
\SI{10}{kg}
-
-
分段与换行乱用,例子:
很多文字很多文字\\
很多文字很多文字\\分段是分段,换行是换行,要区分。分段是表示一段结束,另一段开始。换行则只是换行。最好让 自己判断换行,而不是手动换,根本就不能做到双端对齐的效果。
-
中西文、中文与数学公式、西文与数学公式之间没有空格,一般是用
pdflatex
编译就会产生这样的效果,有些情况用xelatex
也会如此,所以要手动加空格,例子:文字content
(pdflatex
) 文字content图\ref{label}所示
(xelatex
) 图x所示。正确写法:图~\ref{label} 所示
-
选择题选项没有纵向对齐,并且出现大量未封装过的表格等。正确写法:
\makeatletter
\newcommand{\fourch}[4]{%
\noindent%
\begin{tabular}{*{4}{@{}p{0.25\textwidth}@{}}}%
\@hangfrom{A.}#1 & \@hangfrom{B.}#2 & \@hangfrom{C.}#3 & \@hangfrom{D.}#4
\end{tabular}%
}
\newcommand{\twoch}[4]{%
\noindent%
\begin{tabular}{*{2}{@{}p{0.5\textwidth}@{}}}%
\@hangfrom{A.}#1 & \@hangfrom{B.}#2 \\
\@hangfrom{C.}#3 & \@hangfrom{D.}#4
\end{tabular}%
}
\newcommand{\onech}[4]{%
\noindent%
\begin{tabular}{@{}p{\textwidth}@{}}%
\@hangfrom{A.}#1 \\
\@hangfrom{B.}#2 \\
\@hangfrom{C.}#3 \\
\@hangfrom{D.}#4
\end{tabular}%
}
\makeatother更多的可以去看《在 LaTeX 中自动排版选项》
-
代码不放在代码环境里 / 只是用
\ttfamily
/\texttt
假装放在了代码环境,例子:- 不放代码块还得手动将
&
转义,排版效果还差connect(captureBtn,\&QPushButton::clicked, [=](){ cameraImageCapture->capture(qfile); } )
- 中西文混排出现不需要的空格
\texttt{test测试test}
- 不放代码块还得手动将
稍微高级一点的错误
-
十分繁琐的输入微分符号 ,例子:
-
$\int f(x) dx$
-
$\int f(x) \,dx$
-
$\int f(x) \,\mathrm{d}x$
-
推荐写法:
% \usepackage{physics}
$\int f(x) \dd{x}$or
% \newcommand*{\dif}{\mathop{}\!\mathrm{d}}
$\int f(x) \dif{x}$(参考:《在 LaTeX 中使用微分算子的正确姿势》)
-
-
宏包功能重复 / 覆盖:
- 缩进设置重复现在,只需要加载
\usepackage{ctex}
\usepackage{indentfirst}
\setlength{\parindent}{2em}ctex
宏包即可得到正确的缩进 - 字体设置重复:
\usepackage{ctex}
\usepackage{fontspec}
\setmainfont{Times New Roman}
\usepackage{newtxtext}
- 缩进设置重复
-
内容与形式没有分离,正文代码出现了大量的
\\[……]
、\(rm/sf/tt)family
、\(md/bf)series
、\(up/it/sl/sc)shape
、\normalfont
(正文不应该如此繁琐的调节格式,而是应该封装在环境中),例子:\section{\huge\color{red} 文字}
。正确写法:用 CTeX 宏集提供的\ctexset
\bf
是过时命令,\bf
和\bfseries
功能重复\underline{{\bf\bfseries test}}
- 用
\textsuperscript{\cite{test}}
而不是指定宏包选项,非常繁琐 - 直接用表格不好吗?
\begin{center}
\zihao{-3} 学生姓名:\underline{\qquad test\qquad}\\[10pt]
\zihao{-3} 所在系别:\underline{\qquad test\qquad}
\end{center}