\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{amsthm}
\usepackage[framemethod=TikZ]{mdframed}
%%%
\newcounter{theo}[section]\setcounter{theo}{0}
\renewcommand{\thetheo}{\arabic{section}.\arabic{theo}}
\newenvironment{theo}[2][]{%
\refstepcounter{theo}%
\ifstrempty{#1}%
{\mdfsetup{%
frametitle={%
\tikz[baseline=(current bounding box.east),outer sep=0pt]
\node[anchor=east,rectangle,fill=blue!20]
{\strut Theorem~\thetheo};}}
}%
{\mdfsetup{%
frametitle={%
\tikz[baseline=(current bounding box.east),outer sep=0pt]
\node[anchor=east,rectangle,fill=blue!20]
{\strut Theorem~\thetheo:~#1};}}%
}%
\mdfsetup{innertopmargin=10pt,linecolor=blue!20,%
linewidth=2pt,topline=true,%
frametitleaboveskip=\dimexpr-\ht\strutbox\relax
}
\begin{mdframed}[]\relax%
\label{#2}}{\end{mdframed}}
%%%
\begin{theo}[Principios fundamentales de homogeneización]{thm:t1}
\begin{eqnarray}
\bigtriangledown\cdot\tso{\sigma}=0 && \text{(Ecuación de equilibrio)}\\
\tso{\sigma}=\tso{a(y)}:\epsilon && \text{(Ley constitutiva elástica esfuerzo )}\\
\epsilon=\tso{E}+y_{3}\chi+\bigtriangledown^{sym} \tso{u} && \text{(Ley constitutiva elástica deformación)}\\
\tso{\sigma}e_{3}=0 \hspace{2mm} sobre \hspace{2mm}\partial Y_{3}^{+}\hspace{2mm}\partial Y_{3}^{-} && \text{(Condición de esfuerzo en el plano 3 )}\\
\tso{\sigma}\cdot\tso{n}\hspace{2mm} antiperiodic\hspace{2mm} on \hspace{2mm}\partial Y_{l} &&\text{(Condición de periodicidad del tensor tracción )}\\
\tso{u}\hspace{2mm} periodic \hspace{2mm} on \hspace{2mm}\partial Y_{l} && \text{(Condición de periodicidad del desplazamiento)}
\end{eqnarray}
\end{theo}
答案1
我邀请您看一下tcolorbox
而不是mdframed
,因为后者已被废弃。
我猜你想在不同的语言环境中重用代码。你可以使用宏而不是硬编码“定理”,并根据特定文档的需求定义宏。
我还简化了代码:\NewDocumentEnvironment
您可以指定可选参数,o
并且它的存在将被\IfValueT{#1}{...}
使用。
我把eqnarray
(不应该使用的)改成了alignat
。请注意如何在数学模式下正确插入文本,最后\nabla
用 代替\bigtriangledown
。
\documentclass{article}
\usepackage[a4paper]{geometry}
\usepackage{amsmath}
\usepackage{bm}
\usepackage{amsthm}
\usepackage[framemethod=TikZ]{mdframed}
\newcounter{theo}
\counterwithin{theo}{section}
\NewDocumentEnvironment{theo}{om}{%
\refstepcounter{theo}%
\mdfsetup{
frametitle={
\tikz[baseline=(current bounding box.east),outer sep=0pt]
\node[anchor=east,rectangle,fill=blue!20]{\strut \bregyTheorem~\thetheo\IfValueT{#1}{:~#1}};
},
innertopmargin=10pt,
linecolor=blue!20,
linewidth=2pt,
topline=true,
frametitleaboveskip=-\ht\strutbox,
}
\begin{mdframed}\label{#2}%
}{\end{mdframed}}
\newcommand{\tso}[1]{\bm{#1}}
\newcommand{\bregyTheorem}{Teorema}% for Spanish
\begin{document}
\begin{theo}[Principios fundamentales de homogeneización]{thm:t1}
\begin{alignat}{2}
&\nabla\cdot\tso{\sigma}=0 &\quad& \text{(Ecuación de equilibrio)}\\
&\tso{\sigma}=\tso{a(y)}:\epsilon
&& \text{(Ley constitutiva elástica esfuerzo )}\\
&\epsilon=\tso{E}+y_{3}\chi+\nabla^{\mathrm{sym}} \tso{u}
&& \text{(Ley constitutiva elástica deformación)}\\
&\tso{\sigma}e_{3}=0 \text{ sobre } \partial Y_{3}^{+}\;\partial Y_{3}^{-}
&& \text{(Condición de esfuerzo en el plano 3 )}\\
&\tso{\sigma}\cdot\tso{n} \text{ antiperiodic on }\partial Y_{l}
&&\text{(Condición de periodicidad del tensor tracción )}\\
&\tso{u} \text{ periodic on } \partial Y_{l}
&& \text{(Condición de periodicidad del desplazamiento)}
\end{alignat}
\end{theo}
\end{document}
我觉得左对齐的方程式更好。不过,你可以用以下方法在图片中对齐方程式:
\begin{align}
\nabla\cdot\tso{\sigma}=0
&\quad\text{(Ecuación de equilibrio)}\\
\tso{\sigma}=\tso{a(y)}:\epsilon
&\quad \text{(Ley constitutiva elástica esfuerzo )}\\
\epsilon=\tso{E}+y_{3}\chi+\nabla^{\mathrm{sym}} \tso{u}
&\quad \text{(Ley constitutiva elástica deformación)}\\
\tso{\sigma}e_{3}=0 \text{ sobre } \partial Y_{3}^{+}\;\partial Y_{3}^{-}
&\quad \text{(Condición de esfuerzo en el plano 3 )}\\
\tso{\sigma}\cdot\tso{n} \text{ antiperiodic on }\partial Y_{l}
&\quad\text{(Condición de periodicidad del tensor tracción )}\\
\tso{u} \text{ periodic on } \partial Y_{l}
&\quad \text{(Condición de periodicidad del desplazamiento)}
\end{align}