我有以下代码:
\documentclass[11pt]{article}
\usepackage{enumerate}
\usepackage{amsmath}
\newenvironment{italic}{\begin{quote}\itshape}{\end{quote}}
\DeclareMathOperator{\rad}{rad}
\begin{document}
\begin{italic}
blablabla
\begin{displaymath}
\rad(R)=\{x\in R\mid x^n=0 \text{ where we consider } n\geq 1\}
\end{displaymath}
more blablabla
\begin{enumerate}
\item $x^n$ with $n=1$
\item $y^m$ with $m=2$
\end{enumerate}
\end{italic}
\end{document}
我想要啦啦啦斜体,但数学环境中的文本(例如“我们考虑的地方”和“与”)不应该是斜体。在我的文档中,我有很多这样的啦啦啦数学环境之间,所以我使用自定义的斜体环境:节省一些时间,而不必一直\textit
使用\itshape
。
我该如何解决这个问题?这是一个好方法吗?
编辑:我更新了我的问题并更改了标题,因为我一开始给出的代码并没有真正反映我的情况。我的错误......我使用提示来声明拉德作为数学运算符。
答案1
宏\textit
通常不控制数学环境中文本的外观。这是单独完成的。
在数学模式中,您可以使用
\mathrm{rad}
或者,如果这是一个函数的名称,您可以amsmath
在序言中加载包
\usepackage{amsmath}
然后在正文中调用
\operatorname{rad}
如果您想要重复调用它,您可以定义一个命令来完成此操作:
\usepackage{amsmath}
\DeclareMathOperator{\rad}{rad}
然后在文档正文中你可以写
\[
\rad(R)=\{x\in R\mid x^n=0 \text{ with }n\geq 1\}
\]
如果你还希望with
不设置斜体,你可以这样做
\text{\normalfont\ with }
或者
\textnormal{ with }
您需要在其中进行此更改,\text{...}
因为它继承了数学环境之外的字体样式。
您应该注意到\normalfont
是一个切换命令,像 一样\bfseries
,它会一直有效直到当前组结束。\textbf{...}
对应于{\bfseries ....}
,\textnormal{...}
对应于{\normalfont ...}
。
答案2
回答你的第一个问题:它不起作用,因为你处于数学模式。另一方面,如果你不在数学模式,那么
\textit{Blablabla \normalfont{Normalfont Bla} More Bla}
也不会起作用,因为 normalfont 不接受参数。试试这个来看看区别:
\documentclass{article}
\begin{document}
\textit{Blablabla {\normalfont Normalfont Bla} More Bla}
\end{document}
此外,您不需要使用数学\textit
:
\documentclass[11pt]{article}
\begin{document}
\textit{blablabla}
\begin{displaymath}
\mathrm{rad}(R)=\{x\in R\mid x^n=0 \text{ with } n\geq 1\}
\end{displaymath}
\end{document}
编辑
关于您的编辑:
\documentclass[11pt]{article}
\usepackage{amsmath}
\let\AMStext\text
\newenvironment{italic}
{\renewcommand{\text}[1]{\AMStext{\normalfont ##1}}
\begin{quote}\itshape}
{\end{quote}}
\DeclareMathOperator{\rad}{rad}
\begin{document}
\begin{italic}
blablabla
\begin{displaymath}
\rad(R)=\{x\in R\mid x^n=0 \text{ where we consider } n\geq 1\}
\end{displaymath}
more blablabla
\begin{enumerate}
\item $x^n \text{ with } n=1$
\item $y^m \text{ with } m=2$
\end{enumerate}
\end{italic}
\end{document}
答案3
A. Ellet 所说的内容可以在以下完整代码片段中模拟。thm
环境使封闭的文本变为斜体。由于\text
从外部环境继承了字体,因此文本\text{ with }
也变为斜体。要将其更改回正常字体,请使用\text{ \normalfont with }
或\text{ \textnormal{with} }
。
\documentclass[preview,border=12pt]{standalone}
\usepackage{amsmath,amssymb}
\DeclareMathOperator{\rad}{rad}
\newtheorem{thm}{Theorem}
\begin{document}
\begin{thm}[\textbackslash textnormal]
\[
\rad(R)=\{x\in \mathbb{R}\mid x^n=0 \text{ \textnormal{with} } n\geq 1\}
\]
\end{thm}
\begin{thm}[\textbackslash normalfont]
\[
\rad(R)=\{x\in \mathbb{R}\mid x^n=0 \text{ \normalfont with } n\geq 1\}
\]
\end{thm}
\end{document}
R
你也可以通过改变符号,\mathbb{R}
让它更清晰地显示为实数集。是不是看起来更加美观了呢?
注意:这是一个社区维基答案,只是为了防止我在读者投票时获得声誉点数。