diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -9,6 +9,12 @@
 
 # Changelog by versions
 
+## 3.23.0.0
+* Rename `forall` as `forall_` (Patrick Ritzenfeld).
+* Drop trailing zeros and decimal point from rendered Floats and Doubles (David Fox).
+* Fix line break command formatting (David Fox).
+* Fix typo in `twoheadrightarrow` (Daniel Casanueva).
+
 ## 3.22.4.2
 * Drop support for `base < 4.14`.
 * Support `hashable-1.5.0.0`.
diff --git a/HaTeX.cabal b/HaTeX.cabal
--- a/HaTeX.cabal
+++ b/HaTeX.cabal
@@ -1,5 +1,5 @@
 name: HaTeX
-version: 3.22.4.2
+version: 3.23.0.0
 category: LaTeX
 build-type: Simple
 license: BSD3
@@ -54,7 +54,7 @@
                , bytestring >= 0.9.2.1 && < 0.13
                , text >= 0.11.2.3 && < 2.2
                , transformers >= 0.2.2 && < 0.7
-               , containers >= 0.4.2.1 && < 0.7
+               , containers >= 0.4.2.1 && < 0.8
                , hashable >= 1.2 && < 1.6
                , bibtex >= 0.1 && < 0.2
                , matrix
diff --git a/Text/LaTeX/Base/Math.hs b/Text/LaTeX/Base/Math.hs
--- a/Text/LaTeX/Base/Math.hs
+++ b/Text/LaTeX/Base/Math.hs
@@ -125,7 +125,7 @@
    -- ** Other symbols
  , pm , mp
  , implies
- , forall , exists
+ , forall_ , exists
  , dagger, ddagger
  , infty
  , imath, jmath
@@ -923,8 +923,8 @@
 implies = comm0 "implies"
 
 -- | /For all/ symbol, \(\forall\).
-forall :: LaTeXC l => l
-forall = comm0 "forall"
+forall_ :: LaTeXC l => l
+forall_ = comm0 "forall"
 
 -- | /Exists/ symbol, \(\exists\).
 exists :: LaTeXC l => l
diff --git a/Text/LaTeX/Base/Render.hs b/Text/LaTeX/Base/Render.hs
--- a/Text/LaTeX/Base/Render.hs
+++ b/Text/LaTeX/Base/Render.hs
@@ -29,7 +29,7 @@
 import qualified Data.ByteString as B
 import Data.Word (Word8)
 import Numeric (showFFloat)
-import Data.Text (Text,lines,unlines)
+import Data.Text (Text,lines,unlines,dropWhileEnd)
 import Data.Text.Encoding
 import Data.Text.Lazy (toStrict)
 import Data.Text.Lazy.Builder (Builder)
@@ -147,8 +147,13 @@
   renderBuilder (TeXMath Square l) = "\\[" <> renderBuilder l <> "\\]"
   renderBuilder (TeXMath Parentheses l) = "\\(" <> renderBuilder l <> "\\)"
 
-  renderBuilder (TeXLineBreak m b) = "\\\\" <> maybe mempty (\x -> "[" <> renderBuilder x <> "]") m <> ( if b then "*" else mempty )
-
+  -- It is not safe to simply say \\, if the text following it starts
+  -- with a left square bracket or a star you will get an error or
+  -- something unexpected.  I think this is why you see "\\%\n" so
+  -- often.  Here I supply a zero "extra vertical space" argument.
+  renderBuilder (TeXLineBreak m b) =
+    "\\\\" <> (if b then "*" else mempty) <>
+    "[" <> maybe (renderBuilder (Em 0.0)) renderBuilder m <> "]"
   renderBuilder (TeXBraces l) = "{" <> renderBuilder l <> "}"
 
   renderBuilder (TeXComment c) =
@@ -190,11 +195,10 @@
 
 instance Render Float where
   renderBuilder = Builder.formatRealFloat Builder.Fixed (Just 5)
-  render = renderDefault
-
+  render = dropWhileEnd (== '.') . dropWhileEnd (== '0') . renderDefault
 instance Render Double where
   renderBuilder = Builder.formatRealFloat Builder.Fixed (Just 5)
-  render = renderDefault
+  render = dropWhileEnd (== '.') . dropWhileEnd (== '0') . renderDefault
 
 instance Render Word8 where
   renderBuilder = Builder.decimal
diff --git a/Text/LaTeX/Packages/AMSMath.hs b/Text/LaTeX/Packages/AMSMath.hs
--- a/Text/LaTeX/Packages/AMSMath.hs
+++ b/Text/LaTeX/Packages/AMSMath.hs
@@ -116,7 +116,7 @@
    -- ** Other symbols
  , pm , mp
  , to , mapsto, implies
- , forall , exists
+ , forall_ , exists
  , dagger, ddagger
  , infty
  , imath, jmath
diff --git a/Text/LaTeX/Packages/AMSSymb.hs b/Text/LaTeX/Packages/AMSSymb.hs
--- a/Text/LaTeX/Packages/AMSSymb.hs
+++ b/Text/LaTeX/Packages/AMSSymb.hs
@@ -106,7 +106,7 @@
 
 -- | \(\twoheadrightarrow\) symbol - double head right arrow
 twoheadrightarrow :: LaTeXC l => l
-twoheadrightarrow = comm0 "twoheadleftarrow"
+twoheadrightarrow = comm0 "twoheadrightarrow"
 
 -- | \(\checkmark\) symbol.
 checkmark :: LaTeXC l => l
