TeX 中是否有任何方法可以用具有彩色背景和圆角的框来突出显示公式的某些部分?
目前,我需要将这些公式导出到图像中,在 GIMP 中添加这些突出显示框,然后将其作为图像导入文档。但这很麻烦,每次我更改这些公式中的任何内容时,我都需要重新执行所有这些操作 :/ 因此,如果我可以在 LaTeX 中原生标记这些公式片段,那就更好了。这可能吗?
我看到了用 TikZ 包制作的框的一个示例,但我不知道它是如何工作的以及如何将其融入我自己的文档中。我不想在文档内部制作浮动框,而只是围绕公式片段来突出显示它。(不,我不能为此使用文本颜色,因为此文本已经有一些表示其他含义的颜色,因此我需要改用背景颜色。)
编辑1 这是我想要达到的效果:
编辑2 好的,根据下面 A.Ellet 的建议,我得到了以下代码:
\documentclass{article}
\pagestyle{empty}
\usepackage{color}
\usepackage{amsmath}
\usepackage{fancybox}
\usepackage[usenames,dvipsnames]{xcolor}
\definecolor{My}{RGB}{0,31,63}
\definecolor{MyConst}{RGB}{128,128,128}
\definecolor{MyFunc}{RGB}{0,75,107}
\definecolor{MyIndep}{RGB}{127,55,0}
\definecolor{MySubst}{RGB}{250,230,230}
\newcommand{\const}[1]{{\color{MyConst}\mathrm{#1}}} % normal constant
\newcommand{\uconst}[1]{\mathrm{#1}} % universal mathematical constant
\newcommand{\var}[1]{{\color{MyIndep}#1}} % independent variable
\newcommand{\subst}[1]{{\colorbox{MySubst}#1}} % substitution
\begin{document}
$$\color{My}
{\color{MyFunc}\Psi} =
\const{\Psi_{_0}}\;
\uconst{e}^{\uconst{i} \left(
\colorbox{MySubst!50}{
\frac{p}{\const{\hbar}}
} % line 24
\var{x} - \frac{E}{\const{\hbar}}\var{t} \right) }
$$
\end{document}
不起作用。它会抛出如下错误:
! Missing $ inserted.
<inserted text>
$
l.24 }
(我用注释标记了第 24 行。)当我\frac
从框内部移除并将其替换为时x
,它开始工作,但显然从格式来看,它似乎将其视为纯文本而不是数学。
编辑3 这是您编辑后可以运行的代码:
\documentclass{article}
\pagestyle{empty}
\usepackage{color}
\usepackage{amsmath}
\usepackage{fancybox}
\usepackage[usenames,dvipsnames]{xcolor}
\definecolor{My}{RGB}{0,31,63}
\definecolor{MyConst}{RGB}{128,128,128}
\definecolor{MyFunc}{RGB}{0,75,107}
\definecolor{MyIndep}{RGB}{127,55,0}
\definecolor{MySubst}{RGB}{250,230,230}
\newcommand{\const}[1]{{\color{MyConst}\mathrm{#1}}} % normal constant
\newcommand{\uconst}[1]{\mathrm{#1}} % universal mathematical constant
\newcommand{\var}[1]{{\color{MyIndep}#1}} % independent variable
\newcommand{\subst}[1]{\colorbox{MySubst}{#1}} % substitution
\begin{document}
\[
\color{My}{\color{MyFunc}}\Psi =
\const{\Psi_{_0}}\;
\uconst{e}^{
\uconst{i}
\left(
\colorbox{MySubst!50}{$\frac{p}{\const{\hbar}}$}
\var{x} - \frac{E}{\const{\hbar}}
\var{t}
\right)
}
\]
\end{document}
答案1
解决方案hf-tikz
(需要两次编译运行):
\documentclass[dvipsnames]{article}
\usepackage{amsmath}
\usepackage[customcolors]{hf-tikz}
\definecolor{My}{RGB}{0,31,63}
\definecolor{MyConst}{RGB}{128,128,128}
\definecolor{MyFunc}{RGB}{0,75,107}
\definecolor{MyIndep}{RGB}{127,55,0}
\definecolor{MySubst}{RGB}{250,230,230}
\newcommand{\const}[1]{{\color{MyConst}\mathrm{#1}}} % normal constant
\newcommand{\uconst}[1]{\mathrm{#1}} % universal mathematical constant
\newcommand{\var}[1]{{\color{MyIndep}#1}} % independent variable
\newcommand{\subst}[1]{{\colorbox{MySubst}#1}} % substitution
\hfsetfillcolor{Lavender!50}
\hfsetbordercolor{white}
\begin{document}
\[
\color{My}
{\color{MyFunc}\Psi} =
\const{\Psi_{_0}}\;
\uconst{e}^{\uconst{i} \left(
\tikzmarkin{a}(0.01,-0.175)(-0.015,0.3)\frac{p}{\const{\hbar}}\tikzmarkend{a}
\var{x} - \tikzmarkin{b}(0.01,-0.175)(-0.015,0.3)\frac{E}{\const{\hbar}}\tikzmarkend{b}\var{t} \right) }
\]
\end{document}
结果:
评论:
- 最好使用
\[ \]
而不是$$ $$
; - 该套餐可让您不设置在数学模式中,:内的文本
\colorbox
只需声明框分隔符的位置。
从 0.3 版开始,事情变得更加用户友好,如下所示hf-tikz 不会限制方程式。上面的代码可以通过样式写成如下形式:
\documentclass[dvipsnames]{article}
\usepackage{amsmath}
\usepackage[customcolors]{hf-tikz}
\definecolor{My}{RGB}{0,31,63}
\definecolor{MyConst}{RGB}{128,128,128}
\definecolor{MyFunc}{RGB}{0,75,107}
\definecolor{MyIndep}{RGB}{127,55,0}
\definecolor{MySubst}{RGB}{250,230,230}
\newcommand{\const}[1]{{\color{MyConst}\mathrm{#1}}} % normal constant
\newcommand{\uconst}[1]{\mathrm{#1}} % universal mathematical constant
\newcommand{\var}[1]{{\color{MyIndep}#1}} % independent variable
\newcommand{\subst}[1]{{\colorbox{MySubst}#1}} % substitution
% available from version 0.3
\tikzset{offset def/.style={
above left offset={-0.015,0.3},
below right offset={0.01,-0.175},
},
hl/.style={
offset def,
set fill color=Lavender!50,
set border color=white,
}
}
\begin{document}
\[
\color{My}
{\color{MyFunc}\Psi} =
\const{\Psi_{_0}}\;
\uconst{e}^{\uconst{i} \left(
\tikzmarkin[hl]{a}\frac{p}{\const{\hbar}}\tikzmarkend{a}
\var{x} - \tikzmarkin[hl]{b}\frac{E}{\const{\hbar}}\tikzmarkend{b}\var{t} \right) }
\]
\end{document}
获取 .png 输出的过程
阅读下面的评论后,我发现这里有一个获取 的方法.png
。standalone
这里的课程确实很有帮助,因为它有一个png
课程选项。
另存为test.tex
:
\documentclass[dvipsnames,png, border=2pt]{standalone}
\usepackage{amsmath}
\usepackage[customcolors]{hf-tikz}
\definecolor{My}{RGB}{0,31,63}
\definecolor{MyConst}{RGB}{128,128,128}
\definecolor{MyFunc}{RGB}{0,75,107}
\definecolor{MyIndep}{RGB}{127,55,0}
\definecolor{MySubst}{RGB}{250,230,230}
\newcommand{\const}[1]{{\color{MyConst}\mathrm{#1}}} % normal constant
\newcommand{\uconst}[1]{\mathrm{#1}} % universal mathematical constant
\newcommand{\var}[1]{{\color{MyIndep}#1}} % independent variable
\newcommand{\subst}[1]{{\colorbox{MySubst}#1}} % substitution
\hfsetfillcolor{Lavender!50}
\hfsetbordercolor{white}
\begin{document}
$
\color{My}
{\color{MyFunc}\Psi} =
\const{\Psi_{_0}}\;
\uconst{e}^{\uconst{i} \left(
\tikzmarkin{a}(0.01,-0.175)(-0.015,0.3)\frac{p}{\const{\hbar}}\tikzmarkend{a}
\var{x} - \tikzmarkin{b}(0.01,-0.175)(-0.015,0.3)\frac{E}{\const{\hbar}}\tikzmarkend{b}\var{t} \right) }
$
\end{document}
并编译:
pdflatex -shell-escape test.tex
这将创造
- 测试.pdf
- 测试.png
完美裁剪。
答案2
使用fancybox
\documentclass{article}
\usepackage{amsmath,amssymb}
\usepackage{fancybox}
\usepackage{xcolor}
\pagestyle{empty}
\begin{document}
\begin{align}
x^2 + y^2 &= 4
\end{align}
\begin{align}
\fbox{$ x^2 + y^2$} &= 4
\end{align}
\begin{align}
\colorbox{blue!20}{$ x^2 + y^2$} &= 4
\end{align}
\begin{align}
\ovalbox{$ x^2 + y^2$} &= 4
\end{align}
\begin{align}
\ovalbox{$\displaystyle{} \frac{x+2}{x^2+y^2} $} &= 4
\end{align}
\end{document}
请注意我必须在各种框架框内重新进入数学模式。对于分数,我必须\displaystyle
在框内声明,以使分数的格式适合align
环境。
答案3
您可以mdframed
在序言中使用包并定义自己的风格
\usepackage[framemethod=TikZ]{mdframed}
\mdfdefinestyle{MyFrameYellow}{%
linecolor=red,
outerlinewidth=0.5pt,
roundcorner=5pt,
innertopmargin=\baselineskip,
innerbottommargin=\baselineskip,
innerrightmargin=20pt,
innerleftmargin=20pt,
backgroundcolor=yellow!50!white}
然后你可以像这样包含你的公式
\begin{mdframed}[style=MyFrameYellow]
\begin{align*}
N_1=&NP_1=N\dfrac{e^{-\beta\epsilon}}{e^{-\beta\epsilon} + 2e^{-2\beta\epsilon} + 3e^{-3\beta\epsilon}+ 4e^{-4\beta\epsilon}}= N \dfrac{1}{1 + 2e^{- \beta\epsilon} + 3e^{-2\beta\epsilon}+ 4e^{-3\beta\epsilon}}\\
N_2=&NP_2=N\dfrac{2e^{-2\beta\epsilon}}{e^{-\beta\epsilon} + 2e^{-2\beta\epsilon} + 3e^{-3\beta\epsilon}+ 4e^{-4\beta\epsilon}}= N \dfrac{1} {1 + \frac12 e^{+\beta\epsilon} + \frac32 e^{-\beta\epsilon}+ 2e^{-2\beta\epsilon}}
\end{align*}
\begin{align*}
N_3=&NP_3=N\dfrac{3e^{-3\beta\epsilon}}{e^{-\beta\epsilon} + 2e^{-2\beta\epsilon} + 3e^{-3\beta\epsilon}+ 4e^{-4\beta\epsilon}}=N \dfrac{1}{1 + \frac13e^{+2\beta\epsilon} + \frac23e^{+\beta\epsilon}+ \frac43e^{- \beta\epsilon}}\\
N_4=&NP_4=N\dfrac{4e^{-4\beta\epsilon}}{e^{-\beta\epsilon} + 2e^{-2\beta\epsilon} + 3e^{-3\beta\epsilon}+ 4e^{-4\beta\epsilon}}= N \dfrac{1} {1 + \frac14e^{+3\beta\epsilon} + \frac12e^{-2\beta\epsilon}+ \frac34e^{+\beta\epsilon}}
\end{align*}
\end{mdframed}
结果就是这样
它的优点mdframed
是可以分页!