使用 newtheorem 的问题

使用 newtheorem 的问题

我正在尝试使用\newtheorem

这是我的小档案 mystyle.sty

\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{amsthm}
\newtheorem{action}{$\checkmark$ Action}
\newtheorem{law}{$\bigodot$ Law}
\newtheorem{fact}{$\boxdot$ Fact}
\newtheorem{warn}{$\warning$ Caveat}

这是 tex 文件:

\documentclass[11pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{amsmath}
\usepackage{amssymb}
%\usepackage{arevmath}
\usepackage{mystyle}
\begin{document}
\section{Head}
\begin{law}
The world is round
\end{law}
\begin{fact}
\(g =99.8 m/s^2\)
\end{fact}
\begin{action}
Teach co-recursion before recursion
\end{action}
\begin{warn}
 Beware
\end{warn}
\end{document}

这是附带包装的arevmath 使用 arevmath

这是没有 arevmath 的 没有 arevmath

现在的问题是:

  1. 我想要有警告符号,arevmath但没有警告符号的整体外观arevmath更好。如何兼顾两者?
  2. 内容以斜体显示。但我找到的使用newtheorem 它的示例是普通罗马字体。还有其他问题吗?例如...
  3. 我从使用 的内联源中获取了 eg \makeatletter。除了一些模糊的指令外,我完全不确定如何使用它:使用 in.tex而不是 in .sty

答案1

您只想使用提供的符号arevmath,而不是更改所有数学符号来使用它。

实际上,arevmath用途ams-mdbch和我们看到的,在ams-mdbch.sty

\xdef\checkmark{\noexpand\mathhexbox{\hexnumber@\symmathdesignA}D8}
\DeclareMathSymbol{\boxdot}{\mathbin}{mathdesignA}{"80}

的定义\bigodot是标准定义,尽管使用了不同的字体。该命令\warning位于中arevsymbols.tex,我们看到

\DeclareMathSymbol{\warning}{\mathalpha}{extraup}{125} % uni26A0

好的,文件ams-mdbch.sty已经

\DeclareSymbolFont{mathdesignA}{MDA}{mdbch}{b}{n}
\SetSymbolFont{largesymbols} {normal}{OMX}{mdbch}{m}{n}

我们arevmath.sty看到

\DeclareSymbolFont{extraup}{U}{zavm}{m}{n}

真是一场追逐!不过我们拥有所有原料。唯一的问题是\bigodot,但这个问题可以解决。

\documentclass[11pt]{article}
\usepackage[T1]{fontenc}
\usepackage{amsmath}
\usepackage{amssymb}
%\usepackage{arevmath}

\DeclareFontEncoding{MDA}{}{}
\DeclareFontSubstitution{MDA}{cmr}{m}{n}

\newcommand{\arevcheckmark}{{\usefont{MDA}{mdbch}{b}{n}\symbol{"D8}}}
\newcommand{\arevbigodot}{%
  $\vcenter{\hbox{\usefont{OMX}{mdbch}{m}{n}\symbol{"4A}}}$%
}
\newcommand{\arevboxdot}{{\usefont{MDA}{mdbch}{b}{n}\symbol{"80}}}
\newcommand{\arevwarning}{{\usefont{U}{zavm}{m}{n}\symbol{125}}}

\newtheorem{action}{\arevcheckmark\ Action}
\newtheorem{law}{\arevbigodot\ Law}
\newtheorem{fact}{\arevboxdot\ Fact}
\newtheorem{warn}{\arevwarning\ Caveat}

\begin{document}

\section{Head}

\begin{law}
The world is round
\end{law}

\begin{fact}
\(g =99.8 m/s^2\)
\end{fact}

\begin{action}
Teach co-recursion before recursion
\end{action}

\begin{warn}
Beware
\end{warn}

\end{document}

在此处输入图片描述

我的单位排版错误,9.8 m/s 2,请更正。

答案2

感谢 egreg 的帮助,我现在的版本是这样的。
[是的,单位不合适。但无论如何,这对我来说只是个转移注意力的借口,用来产生一些 mwe;这不是我目前在实际示例中需要的东西]

\documentclass[11pt]{article}
\usepackage[T1]{fontenc}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{amsthm}
%\usepackage{arevmath}

\DeclareFontEncoding{MDA}{}{}
\DeclareFontSubstitution{MDA}{cmr}{m}{n}

\newcommand{\arevcheckmark}{{\usefont{MDA}{mdbch}{b}{n}\symbol{"D8}}}
%% \newcommand{\arevbigodot}{%
%%   $\vcenter{\hbox{\usefont{OMX}{mdbch}{m}{n}\symbol{"4A}}}$%
%% }

\newcommand{\arevboxdot}{{\usefont{MDA}{mdbch}{b}{n}\symbol{"80}}}
\newcommand{\arevwarning}{{\usefont{U}{zavm}{m}{n}\symbol{125}}}

\theoremstyle{definition}
\newtheorem{action}{\arevcheckmark\ Action}
\newtheorem{law}{\(\odot\)\ Law}
\newtheorem{fact}{\(\boxdot\)\ Fact}
\newtheorem{warn}{\arevwarning\ Caveat}

\begin{document}

\section{Head}

\begin{law}
The world is round
\end{law}

\begin{fact}
\(g =99.8 m/s^2\)
\end{fact}

\begin{action}
Teach co-recursion before recursion
\end{action}

\begin{warn}
Beware
\end{warn}
\end{document}

相关内容