LaTeX中字体加黑命令的使用
\bfseries
命令的使用
\bfseries
命令在问中的实际含义是给字体加黑,基本的用法有三种。下面进行详细的讲解。
方法一:
\documentclass[utf8]{ctexart}
\begin{document}
这个部分不加黑 \\
{\bfseries 这段我希望他能加黑啊} ,这个部分不加黑,看是否能实现\\
这个部分不加黑,看是否能实现
\end{document}
上述代码的执行结果如下:
本质上实现了bfseries
命令功能,只给一部分的内容加成了黑体,参考文章:http://tex.stackexchange.com/questions/131180/bfseries-bolds-more-than-intended 。这篇文章的内容是说:最近使用\bfseries
命令代替了textbf
命令,是因为在LaTeX的最新版本里面不推荐使用textbf
命令。但是比较奇怪的是,当作者使用\bfseries {这段文字想要加黑}
这个功能时,这篇文章中此命令之后的全部都被加黑了,尽管作者使用了{},但是仍然没有限制其作用域。怎么解决呢?
本文一开始提出的是一种解决的办法,就是使用{\bfseries 这段文字加黑,外面的大括号限制了这个加黑功能的作用域,大括号外面的文本内容将不会被加黑}
,后续还会介绍第二种方法。
方法二:
\documentclass[utf8]{ctexart}
\begin{document}
这个部分不加黑 \\
\bfseries 这段我希望他能加黑啊 \mdseries ,这个部分不加黑,看是否能实现\\
这个部分不加黑,看是否能实现
\end{document}
这段代码得到的结果同样是:
方法三:
\documentclass[utf8]{ctexart}
\begin{document}
这个部分不加黑 \\
\begin{bfseries}
这段我希望他能加黑啊
\end{bfseries}
,这个部分不加黑,看是否能实现\\
这个部分不加黑,看是否能实现
\end{document}
同样也得到了下面的结果:
但是不推荐使用方法三,因为bfseries
并不是环境。
错误方法:
\documentclass[utf8]{ctexart}
\begin{document}
这段文字不加黑
\bfseries{这段文字我想要加黑}\\
这段文字不加黑
\end{document}
这段代码的执行结果如下:
从上图可以看出,没有实现指定区域的加黑,这是一种错误的用法。
结论:从上面的三种方法中我们可以学到两点:第一:\bfseries
命令的使用是有作用域的,第二:怎么去限制它的作用域。
text
命令的使用
同样面临着上面提到的两个问题,就是作用域是否存在,怎么去限制的问题。
\documentclass[utf8]{ctexart}
\begin{document}
这个部分不加黑,看是否能实现
\textbf{这段文本是使用textbf命令实现的加黑}
这里我并不希望加黑
\end{document}
上述代码得到的结果如下:
很简单只要使用上述的语法就能实现局部的加黑,它的用法与\bfseries
命令完全的不同。
bm
宏包中\bm
命令的使用
bm
宏包定义了一些命令去加黑数学符号,基本的命令是\bm
,这个命令也被用于使得数学表达式排版成为黑体。\bm
命令的语法是:\bm{数学表达式}
,简单的举例如下:
\documentclass[utf8]{ctexart}
\usepackage{amsmath}
\usepackage{bm}
\begin{document}
$$\bm{a^2+b^2 = c^2}$$
$$aaaaaaa^2+bbbbbbb^2 = cccccc^2$$
\end{document}
上面代码的执行结果如下:
上面代码的缺陷是没有实现公式的对齐,于是我写了下面的代码:
\documentclass[utf8]{ctexart}
\usepackage{amsmath}
\usepackage{bm}
\begin{document}
\begin{equation}
\begin{split}
\bm { a^2 + b^2 ={}& c^2 } \\
A^2 + B^2 ={}& C^2
\end{split}
\end{equation}
\end{document}
上面的代码不能通过编译,究竟是什么问题?下面我进行了测试。
测试一:
\documentclass[utf8]{ctexart}
\usepackage{amsmath}
\usepackage{bm}
\begin{document}
\begin{equation}
\begin{split}
\bm { a^2 + b^2 = c^2 } \\
A^2 + B^2 = C^2
\end{split}
\end{equation}
\end{document}
代码可以通过,得到的结果为:
也实现了加粗的功能,对比上面的两段代码,我实际上在测试成功的代码中没有实现对齐,只是实现了加粗的效果,使用下面的代码继续进行测试:
测试二:
\documentclass[utf8]{ctexart}
\usepackage{amsmath}
\usepackage{bm}
\begin{document}
\begin{equation}
\begin{split}
\bm { a^2 + b^2 = c^2 } \\
AAAAA^2+BBBBB^2=CCCCC^2
\end{split}
\end{equation}
\end{document}
这段代码的主要目的是测试是否实现了对齐,结果如下:
可以看出,根本没有实现对齐的效果,应该在代码中添加对齐的符号,但是添加了编译又不能通过,这到底是什么问题?我找到了其中的原因,首先{}和&在LaTeX的排版过程中都是分组的含义,对于最先的代码\bm { a^2 + b^2 ={}& c^2 } \\
,这行代码中首先用{}进行了分组,然后又用&将内部分分组拆分开,显然这是十分矛盾的,解决问题的办法也就在这个分组的问题上,下面提供解决这个问题的办法。
解决问题
解决办法一:不要使用双重的分组,分开使用,见第11行代码,
\documentclass[utf8]{ctexart}
\usepackage{amsmath}
\usepackage{bm}
\begin{document}
\begin{equation}
\begin{split}
\bm{ a^2 + b^2 }& =\bm{c^2 } \\
AAAAA^2 + BBBBB^2 &= CCCCC^2
\end{split}
\end{equation}
\end{document}
代码的执行结果:
解决方案二:
\documentclass[utf8]{ctexart}
\usepackage{amsmath}
\usepackage{bm}
\begin{document}
\begin{equation}
\begin{split}
\bm {a}^2 + \bm {b}^2 & =\bm {c}^2 \\
AAAAA^2 + BBBBB^2 &= CCCCC^2
\end{split}
\end{equation}
\end{document}
上述代码的执行结果为:
注意:一定要注意在LaTeX中&符号和{}都是分组的含义,在实际的使用中不能发生冲突
具体bm
的使用请参见官方文档:http://www.ctex.org/documents/packages/math/bm.pdf 。
联系我
如果大家对我所研究的问题感兴趣,或者需要与我联系,请在下方扫描我的微信二维码添加好友: