diff --git a/TexSoup/reader.py b/TexSoup/reader.py
index fd53989..ba92aaa 100644
--- a/TexSoup/reader.py
+++ b/TexSoup/reader.py
@@ -31,7 +31,11 @@ SIGNATURES = {
     'textbf': (1, 0),
     'section': (1, 1),
     'label': (1, 0),
+    'cap': (0, 0),
     'cup': (0, 0),
+    'in': (0, 0),
+    'notin': (0, 0),
+    'infty': (0, 0),
     'noindent': (0, 0),
 }
 
@@ -278,7 +282,7 @@ def read_env(src, expr, skip_envs=(), tolerance=0, mode=MODE_NON_MATH):
     while src.hasNext():
         if src.peek().category == TC.Escape:
             name, args = make_read_peek(read_command)(
-                src, 1, skip=1, tolerance=tolerance, mode=mode)
+                src, skip=1, tolerance=tolerance, mode=mode)
             if name == 'end':
                 break
         contents.append(read_expr(src, skip_envs=skip_envs, tolerance=tolerance, mode=mode))
diff --git a/TexSoup/tokens.py b/TexSoup/tokens.py
index 492c50e..50e97e2 100644
--- a/TexSoup/tokens.py
+++ b/TexSoup/tokens.py
@@ -123,8 +123,8 @@ def tokenize_escaped_symbols(text, prev=None):
             and text.peek(1) \
             and text.peek(1).category in (
                 CC.Escape, CC.GroupBegin, CC.GroupEnd, CC.MathSwitch,
-                CC.Alignment, CC.Macro, CC.Superscript, CC.Subscript,
-                CC.Spacer, CC.Active, CC.Comment, CC.Other):
+                CC.Alignment, CC.EndOfLine, CC.Macro, CC.Superscript,
+                CC.Subscript, CC.Spacer, CC.Active, CC.Comment, CC.Other):
         result = text.forward(2)
         result.category = TC.EscapedComment
         return result

diff --git a/tests/test_parser.py b/tests/test_parser.py
index 60ea596..e958c58 100644
--- a/tests/test_parser.py
+++ b/tests/test_parser.py
@@ -195,6 +195,13 @@ def test_escaped_characters():
     assert '\\$4-\\$5' in str(soup), 'Escaped characters not properly rendered.'
 
 
+def test_newline_after_backslash():
+    """Tests that newlines after backslashes are preserved."""
+    text = 'a\\\nb'
+    soup = TexSoup(text)
+    assert str(soup) == text
+
+
 def test_math_environment_weirdness():
     """Tests that math environment interacts correctly with other envs."""
     soup = TexSoup(r"""\begin{a} \end{a}$ b$""")
@@ -385,7 +392,7 @@ def test_def_item():
 
 
 def test_def_without_braces():
-    """Tests that def without braces around the new command parses correctly"""
+    """Tests that def without braces around the new command parses correctly."""
     soup = TexSoup(r"\def\acommandname{replacement text}")
     assert len(soup.find("def").args) == 2
     assert str(soup.find("def").args[0]) == r"\acommandname"
@@ -398,6 +405,19 @@ def test_grouping_optional_argument():
     assert len(soup.Theorem.args) == 1
 
 
+def test_zero_argument_signatures():
+    """Tests that specific commands that do not take arguments are parsed correctly."""
+    soup = TexSoup(r"$\cap[\cup[\in[\notin[\infty[$")
+    assert len(soup.find("cap").args) == 0
+    assert len(soup.find("cup").args) == 0
+    assert len(soup.find("in").args) == 0
+    assert len(soup.find("notin").args) == 0
+    assert len(soup.find("infty").args) == 0
+
+    soup = TexSoup(r"\begin{equation} \cup [0, \infty) \end{equation}")
+    assert len(soup.find("cup").args) == 0
+
+
 ##############
 # FORMATTING #
 ##############

Newlines after backslashes are not parsed correctly
For example:

```python
>>> import TexSoup
>>> text = 'a\\\nb'
>>> print(text)
a\
b
>>> soup = TexSoup.TexSoup(text)
>>> soup
a\b
```

The newline is gone, which has of course changed the meaning of the text, so running it through `TexSoup` again gives a different result:

```python
>>> TexSoup.TexSoup(soup)
a
```
tests/test_parser.py::test_newline_after_backslash tests/test_parser.py::test_zero_argument_signatures
TexSoup/__init__.py::TexSoup.TexSoup TexSoup/category.py::TexSoup.category.categorize TexSoup/data.py::TexSoup.data.TexArgs TexSoup/data.py::TexSoup.data.TexArgs.__contains__ TexSoup/data.py::TexSoup.data.TexArgs.__getitem__ TexSoup/data.py::TexSoup.data.TexArgs.__repr__ TexSoup/data.py::TexSoup.data.TexArgs.__str__ TexSoup/data.py::TexSoup.data.TexArgs.append TexSoup/data.py::TexSoup.data.TexArgs.clear TexSoup/data.py::TexSoup.data.TexArgs.extend TexSoup/data.py::TexSoup.data.TexArgs.insert TexSoup/data.py::TexSoup.data.TexArgs.pop TexSoup/data.py::TexSoup.data.TexArgs.remove TexSoup/data.py::TexSoup.data.TexArgs.reverse TexSoup/data.py::TexSoup.data.TexCmd TexSoup/data.py::TexSoup.data.TexEnv TexSoup/data.py::TexSoup.data.TexEnv.__init__ TexSoup/data.py::TexSoup.data.TexExpr.__eq__ TexSoup/data.py::TexSoup.data.TexExpr.all TexSoup/data.py::TexSoup.data.TexExpr.append TexSoup/data.py::TexSoup.data.TexExpr.contents TexSoup/data.py::TexSoup.data.TexExpr.insert TexSoup/data.py::TexSoup.data.TexExpr.remove TexSoup/data.py::TexSoup.data.TexExpr.string TexSoup/data.py::TexSoup.data.TexGroup.parse TexSoup/data.py::TexSoup.data.TexNamedEnv TexSoup/data.py::TexSoup.data.TexNode.__iter__ TexSoup/data.py::TexSoup.data.TexNode.__match__ TexSoup/data.py::TexSoup.data.TexNode.all TexSoup/data.py::TexSoup.data.TexNode.append TexSoup/data.py::TexSoup.data.TexNode.args TexSoup/data.py::TexSoup.data.TexNode.char_pos_to_line TexSoup/data.py::TexSoup.data.TexNode.children TexSoup/data.py::TexSoup.data.TexNode.contents TexSoup/data.py::TexSoup.data.TexNode.copy TexSoup/data.py::TexSoup.data.TexNode.count TexSoup/data.py::TexSoup.data.TexNode.delete TexSoup/data.py::TexSoup.data.TexNode.descendants TexSoup/data.py::TexSoup.data.TexNode.find TexSoup/data.py::TexSoup.data.TexNode.find_all TexSoup/data.py::TexSoup.data.TexNode.insert TexSoup/data.py::TexSoup.data.TexNode.name TexSoup/data.py::TexSoup.data.TexNode.remove TexSoup/data.py::TexSoup.data.TexNode.replace TexSoup/data.py::TexSoup.data.TexNode.replace_with TexSoup/data.py::TexSoup.data.TexNode.string TexSoup/data.py::TexSoup.data.TexNode.text TexSoup/data.py::TexSoup.data.TexText TexSoup/data.py::TexSoup.data.TexText.__contains__ TexSoup/data.py::TexSoup.data.TexText.__eq__ TexSoup/data.py::TexSoup.data.TexText.__repr__ TexSoup/data.py::TexSoup.data.TexText.__str__ TexSoup/reader.py::TexSoup.reader.make_read_peek TexSoup/reader.py::TexSoup.reader.read_arg TexSoup/reader.py::TexSoup.reader.read_arg_required TexSoup/reader.py::TexSoup.reader.read_args TexSoup/reader.py::TexSoup.reader.read_command TexSoup/reader.py::TexSoup.reader.read_env TexSoup/reader.py::TexSoup.reader.read_item TexSoup/reader.py::TexSoup.reader.read_math_env TexSoup/reader.py::TexSoup.reader.read_skip_env TexSoup/reader.py::TexSoup.reader.read_spacer TexSoup/tokens.py::TexSoup.tokens.next_token TexSoup/tokens.py::TexSoup.tokens.tokenize TexSoup/tokens.py::TexSoup.tokens.tokenize_command_name TexSoup/tokens.py::TexSoup.tokens.tokenize_escaped_symbols TexSoup/tokens.py::TexSoup.tokens.tokenize_ignore TexSoup/tokens.py::TexSoup.tokens.tokenize_line_break TexSoup/tokens.py::TexSoup.tokens.tokenize_line_comment TexSoup/tokens.py::TexSoup.tokens.tokenize_math_asym_switch TexSoup/tokens.py::TexSoup.tokens.tokenize_math_sym_switch TexSoup/tokens.py::TexSoup.tokens.tokenize_spacers TexSoup/tokens.py::TexSoup.tokens.tokenize_string TexSoup/tokens.py::TexSoup.tokens.tokenize_symbols TexSoup/utils.py::TexSoup.utils.Buffer TexSoup/utils.py::TexSoup.utils.Buffer.__getitem__ TexSoup/utils.py::TexSoup.utils.Buffer.backward TexSoup/utils.py::TexSoup.utils.Buffer.forward TexSoup/utils.py::TexSoup.utils.Buffer.forward_until TexSoup/utils.py::TexSoup.utils.CharToLineOffset TexSoup/utils.py::TexSoup.utils.MixedBuffer.__init__ TexSoup/utils.py::TexSoup.utils.Token.__add__ TexSoup/utils.py::TexSoup.utils.Token.__contains__ TexSoup/utils.py::TexSoup.utils.Token.__eq__ TexSoup/utils.py::TexSoup.utils.Token.__getitem__ TexSoup/utils.py::TexSoup.utils.Token.__hash__ TexSoup/utils.py::TexSoup.utils.Token.__iadd__ TexSoup/utils.py::TexSoup.utils.Token.__iter__ TexSoup/utils.py::TexSoup.utils.Token.__radd__ TexSoup/utils.py::TexSoup.utils.Token.lstrip TexSoup/utils.py::TexSoup.utils.Token.rstrip TexSoup/utils.py::TexSoup.utils.to_list tests/test_parser.py::test_commands_only tests/test_parser.py::test_commands_envs_only tests/test_parser.py::test_commands_envs_text tests/test_parser.py::test_text_preserved tests/test_parser.py::test_command_name_parse tests/test_parser.py::test_command_env_name_parse tests/test_parser.py::test_commands_without_arguments tests/test_parser.py::test_unlabeled_environment tests/test_parser.py::test_ignore_environment tests/test_parser.py::test_inline_math tests/test_parser.py::test_escaped_characters tests/test_parser.py::test_math_environment_weirdness tests/test_parser.py::test_tokenize_punctuation_command_names tests/test_parser.py::test_item_parsing tests/test_parser.py::test_item_argument_parsing tests/test_parser.py::test_comment_escaping tests/test_parser.py::test_comment_unparsed tests/test_parser.py::test_comment_after_escape tests/test_parser.py::test_items_with_labels tests/test_parser.py::test_multiline_args tests/test_parser.py::test_nested_commands tests/test_parser.py::test_def_item tests/test_parser.py::test_def_without_braces tests/test_parser.py::test_grouping_optional_argument tests/test_parser.py::test_basic_whitespace tests/test_parser.py::test_whitespace_in_command tests/test_parser.py::test_math_environment_whitespace tests/test_parser.py::test_non_letter_commands tests/test_parser.py::test_math_environment_escape tests/test_parser.py::test_punctuation_command_structure tests/test_parser.py::test_non_punctuation_command_structure tests/test_parser.py::test_allow_unclosed_non_curly_braces tests/test_parser.py::test_buffer tests/test_parser.py::test_to_buffer tests/test_parser.py::test_unclosed_commands tests/test_parser.py::test_unclosed_environments tests/test_parser.py::test_unclosed_math_environments tests/test_parser.py::test_arg_parse tests/test_parser.py::test_tolerance_env_unclosed