我对 Latex 还很陌生,所以请耐心等待。
我正在尝试将此符号添加到我的文档中:
上面的图片是我根据在线 Latex 方程编辑器但是当我尝试在我的编辑器(TeXstudio)中应用相同的代码时,情况似乎有所不同......
例如,上面的图片是使用以下代码生成的:
D=\left\{ x\in\mathbb{N}|1\leq x\leq 100 \right\}
但是当我在编辑器中写入它(当然用 $ 符号括起来)时,编译时出现以下错误:
未定义控制序列。$D=\left{x\in \mathbb
有趣的是,我仍然能够在预览窗口中看到输出(即使编辑器显示此行有错误)。
这是第一个问题。
第二个问题是,虽然我可以在预览窗口中看到输出,但它与我从在线 Latex 公式编辑器获得的输出不同。
在线 Latex 公式编辑器生成以下内容:
我的 TeXstudio 编辑器生成如下内容:
请注意表示自然数集的 N 符号的区别。它与我预期的版本(第一个版本)不同,因为它是由在线 Latex 方程编辑器生成的。
这里出了什么问题?我是不是缺了包裹还是什么?
答案1
另一种解决方案同样基于mathtools
,在的配合下,xparse
允许使用更接近数学写作的语法:您只需输入类似于\set{x\in E;P(x)}
集合构建器符号或\set{x_i}
定义为列表的集合的内容。
amsmath
注意,如果加载了,则无需加载mathtools
。
插图:
\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{amssymb}
\usepackage{lmodern}
\usepackage{mathtools, nccmath}
\newcommand{\N}{\mathbb N}
\newcommand{\Q}{\mathbb Q}
\usepackage{xparse}
%
\DeclarePairedDelimiterX{\set}[1]{\{}{\}}{\setargs{#1}}
\NewDocumentCommand{\setargs}{>{\SplitArgument{1}{;}}m}
{\setargsaux#1}
\NewDocumentCommand{\setargsaux}{mm}
{\IfNoValueTF{#2}{#1} {#1\,\delimsize|\,\mathopen{}#2}}%{#1\:;\:#2}
\parindent = 0pt
\begin{document}
\[ D = \set{x ∈ \N ; 1\leq x\leq 100} \]%
The delimiters adjust to the size of the contents in the * version:
\[ E = \set*{x ∈ \Q ; -\frac{1}{2}\leq x \leq \frac{1}{2}}\]%
You also can have a manual adjustment with an optional argument to \verb+\set+:
\[ E = \set[\big]{x ∈ \Q ; -\mfrac{1}{2}\leq x \leq \mfrac{1}{2}}\]%
And you can define sets as simple lists:
\[ \text{Unit fractions}= \set*{\mfrac{1}{1}, \mfrac{1}{2},\mfrac{1}{3}, ... } \]%
\end{document}
答案2
在线编辑器可能会加载所需的包,这是amssymb
(建议用于包含数学材料的文档)。请注意,这amsfonts
可能就足够了,但amssymb
提供了更丰富的符号供应。
\documentclass{article}
\usepackage{amsmath}
\usepackage{amssymb}
\newcommand{\numberset}[1]{\mathbb{#1}}
\newcommand{\nat}{\numberset{N}}}
\begin{document}
\[
D = \{\, x\in\nat \mid 1\le x\le 100 \,\}
\]
\end{document}
请注意,\left
和\right
在这里不是必需的(应该只在真正需要时使用)。另外,竖线应该是\mid
为了更好的间隔。两端的细间距是推荐的,尽管是可选的,但是一种改进。
(对于“自然数”)的间接定义\nat
是一种技巧,它允许具有相同性质的对象以统一的外观出现。如果您(或其他人,请阅读挑剔的主管)后来决定应使用粗体,您可以更改 的定义\numberset
。
如果您需要大量的集合符号,最好使用mathtools
:
\documentclass{article}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{mathtools}
\newcommand{\numberset}[1]{\mathbb{#1}}
\newcommand{\nat}{\numberset{N}}
\DeclarePairedDelimiterX{\Set}[2]\{\}{%
\, #1 \;\delimsize\vert\; #2 \,
}
\begin{document}
\begin{gather*}
D=\Set{x\in\nat}{1\le x\le 100}\\
D=\Set[\big]{x\in\nat}{1\le x\le 100}\\
D=\Set[\Big]{x\in\nat}{1\le x\le 100}\\
D=\Set[\bigg]{x\in\nat}{1\le x\le 100}\\
D=\Set[\Bigg]{x\in\nat}{1\le x\le 100}\\
D=\Set*{x\in\nat}{1\le x\le \frac{200}{2}}
\end{gather*}
\end{document}
使用可选参数\Set
可以使分隔符更大。使用\Set*
、\left
和\right
可以添加。