我正在使用文档类scrartcl
,并正在寻找一种方法来编写方程式,其中所有字母都是直立的,就像使用时出现的那样\rm
。
\begin{equation}
\rm A_{something} + B_{another} = C_{whatever}
\end{equation}
因为使用\rm
已被弃用,所以我的问题是:有没有办法在不将每一点文本括起来的情况下实现相同的效果\text{}
?
\begin{equation}
\text{A}_{\text{something}} + \text{B}_{\text{another}} = \text{C}_{\text{whatever}}
\end{equation}
答案1
如果你喜欢的效果,\rm
但不喜欢它被弃用,那么看看它的实现可以让你很好地了解你可以做什么。source2e
你会发现(参见第 254 页source2e
2017-04-15,其中\DeclareOldFontCommand
定义)
\DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm}
这意味着它只是\mathrm
处于数学模式。因此,您可以\mathrm
改为在方程式内容周围书写。
\documentclass{scrartcl}
\begin{document}
\begin{equation}
\mathrm{A_{something} + B_{another} = C_{whatever}}
\end{equation}
\end{document}
答案2
如果你想要一种简单的下标书写方式\text
,这里有一种方法。A_[something]
如果你想\text{..}
应用于下标,你可以写下来。
\documentclass{scrartcl}
\usepackage{mathtools}
\def\sbtext[#1]{\sb{\textnormal{#1}}}
\def\sptext[#1]{\sp{\textnormal{#1}}}
\makeatletter
\begingroup\lccode`\~=`\_\lowercase{\endgroup
\def~}{\@ifnextchar[\sbtext\sb}
\begingroup\lccode`\~=`\^\lowercase{\endgroup
\def~}{\@ifnextchar[\sptext\sp}
\makeatother
\AtBeginDocument{\catcode`\_=12 \mathcode`\_="8000 \catcode`\^=12 \mathcode`\^="8000 }
\begin{document}
\begin{equation}
A_[something] + B_[another] = C_[whatever]
\end{equation}
\end{document}
此外,如果有人愿意,A_|something| + B^|something|
而不仅仅是改变和A_[something] + B^[something]
的定义并替换。\sptext|#1|
\sbtext|#1|
\@ifnextchar|
答案3
目前尚不清楚你为什么要这么做;不过,事实就是如此。
\documentclass{article}
\usepackage{amsmath}
\newenvironment{uprightmath}
{\changecodes\ignorespaces}
{\ignorespacesafterend}
\newcommand{\changecodes}{%
\count255=`A
\loop
\mathcode\count255=\numexpr\mathcode\count255-\string"100\relax
\ifnum\count255<`Z
\advance\count255 1
\repeat
\count255=`a
\loop
\mathcode\count255=\numexpr\mathcode\count255-\string"100\relax
\ifnum\count255<`z
\advance\count255 1
\repeat
}
\begin{document}
Here the letters are normal
\begin{equation}
A_{x}+B_{y}=Z
\end{equation}
\begin{uprightmath}
But here they're upright $A_{something} + B_{another} = Z_{whatever}$
\begin{equation}
A_{something} + B_{another} = Z_{whateverz}
\end{equation}
and back to normal
\end{uprightmath}
\begin{equation}
A_{x}+B_{y}=C
\end{equation}
\end{document}
答案4
问题问的是“如何做” write equations
,所以这不是一个这样的答案。在这里,我建议一种如何做的方法draw
。
由于+
通常是合并操作,并且=
表示身份(例如和C
结合在一起),并且由于代数的一切都可以直观地表示,因此 TikZ 解决方案A
B
由以下人员呈现:
平均能量损失
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{automata,positioning}
\begin{document}
\begin{tikzpicture}[%
>=stealth,
node distance=1.6cm,
on grid,
auto
]
\node[state] (A) [align=center,fill=blue!5]{{\large\textit{A}}};
\node (A1) [align=center,pos=0.25,left = of A,fill=green!15]{Raindrop\textit{\textsubscript{s\textsubscript{1}}}};
\node (S1) [below = of A]{};
\node[state] (B) [align=center,fill=blue!5,below=of S1]{{\large\textit{B}}};
\node (B1) [align=center,left = of B,fill=green!15]{Raindrop\textit{\textsubscript{s\textsubscript{2}}}};
\node[state,double] (C) [align=center,fill=blue!5,right=of S1,minimum size=3.8em]{{\large\textit{AB}}};
\node (C1) [align=center,right = of C,fill=green!15]{Raindrop\textit{\textsubscript{B\textsubscript{1}}}};
\draw[->] (A) edge (C);
\draw[->] (B) edge (C);
\end{tikzpicture}
\end{document}
这对某些人来说可能更容易理解,因为混合两种风格(代数和通俗语言)会增加读者的认知负担,因为他们必须理清两者,然后比较它们的含义如何交织在一起。
经过检查,可以立即发现 AB 组合C
具有与其成分不同的属性(例如均匀性),这意味着身份(=
)只是部分描述。随着新实体的创建,还发生了转变。
字母可以是直立的,也可以是斜体的,随心所欲。