我有以下工作代码:
\documentclass[11pt, oneside]{book}
\renewcommand\sfdefault{cmss}
\renewcommand{\familydefault}{\sfdefault}
\usepackage[top = 2.54cm, bottom = 2.54cm, left = 1.5cm, right = 1.5cm]{geometry}
\usepackage{physics}
\usepackage[italic = true]{derivative}
\usepackage[scr = rsfso]{mathalfa}
\usepackage{mathtools}
\usepackage{amssymb}
\usepackage{chngcntr}
\numberwithin{equation}{chapter}
\usepackage{tcolorbox}
\tcbuselibrary{skins, xparse, breakable, hooks, theorems}
\definecolor{blizzardblue}{rgb}{0.4, 0.6, 0.8}
\NewDocumentCommand{\bcases}{som}{%
\IfBooleanTF{#1}{
\tcbsidebyside[righthand ratio = 0.6,
colback = blizzardblue!30!white,
colframe = blizzardblue!30!white,
]{{\bfseries #2}}{%
\begin{gather*}
\begin{cases}
#3
\end{cases}
\end{gather*}
}\noindent
}{
\tcbsidebyside[righthand ratio = 0.6,
colback = blizzardblue!30!white,
colframe = blizzardblue!30!white
]{{\bfseries #2}}{%
\begin{gather}
\begin{cases}
#3
\end{cases}
\end{gather}
}\noindent
}}
\begin{document}
\bcases[Sphericals to Cartesians]{
x & = r~\sin{\theta} \cos{\phi} \\
y & = r~\sin{\theta} \cos{\phi} \\
z & = r~\cos{\theta}
}
\end{document}
产生
我试图修复的是最小化Sphericals to Cartesians
使用的水平空间并最大化(并居中)空间cases environment
。现在,最后一个环境太靠近页面的右侧,我需要它更居中。
我已经尝试过更改righthand ratio, lefthand ratio
和添加sidebyside align=right
选项但没有成功\tcbsidebyside
(这个出现错误,不知道为什么)。
这个问题的答案将是一个复制此问题的代码(该图已编辑):
感谢您阅读本文并继续提供帮助!
答案1
由于您可能不希望在整个文档中齐平左对齐方程,因此我fleqn
在这里不使用全局文档类选项。
nccmath
所以我使用提供环境的包fleqn
。请注意,此包略微减少了显示方程式前后的垂直空间。
在此代码中,我使用环境fleqn
,在其中,我使用通常的环境gather
(并且是带星号的版本)。
细微的排版调整:我已将x & = r~\sin
代码中的“(等等)”替换为x = r\sin
“(等等),这样元素之间的间距得到了更好的调整(=
相同,之间的间距r而“sin”则介于“sin”和“cos”之间。
请注意,\sin
等不带参数,因此我用\sin{\theta}
替换\sin\theta
。
我也修正了转换公式,但这并不重要。
最后,我删除了未使用的软件包(physics、derivative、mathalfa、amssymb)。关于软件包physics
,最好用新的physics2
(doc:http://mirrors.ctan.org/macros/latex/contrib/physics2/doc/physics2.pdf) 和一些其他软件包(参见http://mirrors.ctan.org/macros/latex/contrib/physics2/doc/physics2-legacy.pdf有关physics
包裹的问题)。
代码:
\documentclass[11pt, oneside]{book}
\renewcommand\sfdefault{cmss}
\renewcommand{\familydefault}{\sfdefault}
\usepackage[top = 2.54cm, bottom = 2.54cm, left = 1.5cm, right = 1.5cm]{geometry}
\usepackage{mathtools}
\usepackage{nccmath} % >>> provide the fleqn environment
\usepackage{chngcntr}
\numberwithin{equation}{chapter}
\usepackage{tcolorbox}
\tcbuselibrary{skins, xparse, breakable, hooks, theorems}
\definecolor{blizzardblue}{rgb}{0.4, 0.6, 0.8}
\NewDocumentCommand{\bcases}{som}{%
\IfBooleanTF{#1}{
\tcbsidebyside[righthand ratio = 0.75,
colback = blizzardblue!30!white,
colframe = blizzardblue!30!white,
]{{\bfseries #2}}{%
\begin{fleqn}
\begin{gather*}
\begin{cases}
#3
\end{cases}
\end{gather*}
\end{fleqn}
}\noindent
}{
\tcbsidebyside[lefthand ratio = 0.25,
colback = blizzardblue!30!white,
colframe = blizzardblue!30!white
]{{\bfseries #2}}{%
\begin{fleqn}
\begin{gather}
\begin{cases}
#3
\end{cases}
\end{gather}
\end{fleqn}
}\noindent
}}
\begin{document}
\bcases[Sphericals to Cartesians]{
x = r\sin\theta \cos\phi \\
y = r\sin\theta \sin\phi \\
z = r\cos\theta
}
\end{document}
结果:
与 OP 代码进行比较(我通过在和bicolor,colbacklower = red!30!white,
之间添加线,为两侧添加了不同的颜色):colback =
colframe =