diff --git a/changelog b/changelog
--- a/changelog
+++ b/changelog
@@ -1,3 +1,7 @@
+texmath (0.12.8.9)
+
+  * Parse TeX `\mathbf` as both bold and upright (#236).
+
 texmath (0.12.8.8)
 
   * TeX reader: support unicode-math Greek symbols, e.g. `\Alpha` (#235).
diff --git a/src/Text/TeXMath/Readers/TeX/Commands.hs b/src/Text/TeXMath/Readers/TeX/Commands.hs
--- a/src/Text/TeXMath/Readers/TeX/Commands.hs
+++ b/src/Text/TeXMath/Readers/TeX/Commands.hs
@@ -41,7 +41,7 @@
 styleOps = M.fromList
           [ ("\\mathrm",     EStyled TextNormal)
           , ("\\mathup",     EStyled TextNormal)
-          , ("\\mathbf",     EStyled TextBold)
+          , ("\\mathbf",     EStyled TextNormal . (:[]) . EStyled TextBold)
           , ("\\boldsymbol", EStyled TextBold)
           , ("\\bm",         EStyled TextBold)
           , ("\\symbf",      EStyled TextBold)
diff --git a/src/Text/TeXMath/Writers/TeX.hs b/src/Text/TeXMath/Writers/TeX.hs
--- a/src/Text/TeXMath/Writers/TeX.hs
+++ b/src/Text/TeXMath/Writers/TeX.hs
@@ -274,6 +274,9 @@
   case map (fixSpace . escapeLaTeX) (T.unpack s) of
        []   -> return ()
        xs   -> tell $ txtcmd (Grouped xs)
+writeExp (EStyled TextNormal [EStyled TextBold es]) = do
+  tell [ControlSeq "\\mathbf"]
+  tellGroup $ mapM_ writeExp $ everywhere (mkT (fromUnicode TextBold)) es
 writeExp (EStyled ttype es) = do
   txtcmd <- (flip S.getLaTeXTextCommand ttype) <$> asks mathEnv
   tell [ControlSeq txtcmd]
diff --git a/test/reader/tex/22.test b/test/reader/tex/22.test
--- a/test/reader/tex/22.test
+++ b/test/reader/tex/22.test
@@ -66,13 +66,16 @@
       ]
     , [ [ EText TextMonospace "mathbf" ]
       , [ EStyled
-            TextBold
-            [ EIdentifier "A"
-            , EIdentifier "B"
-            , EIdentifier "C"
-            , EIdentifier "a"
-            , EIdentifier "b"
-            , EIdentifier "c"
+            TextNormal
+            [ EStyled
+                TextBold
+                [ EIdentifier "A"
+                , EIdentifier "B"
+                , EIdentifier "C"
+                , EIdentifier "a"
+                , EIdentifier "b"
+                , EIdentifier "c"
+                ]
             ]
         ]
       ]
diff --git a/test/reader/tex/binomial_coefficient.test b/test/reader/tex/binomial_coefficient.test
--- a/test/reader/tex/binomial_coefficient.test
+++ b/test/reader/tex/binomial_coefficient.test
@@ -2,7 +2,7 @@
    \mathbf{C}(n,k) = \mathbf{C}_k^n = {}_n\mathbf{C}_k = \binom{n}{k} = \frac{n!}{k!\,(n -k)!}
 
 >>> native
-[ EStyled TextBold [ EIdentifier "C" ]
+[ EStyled TextNormal [ EStyled TextBold [ EIdentifier "C" ] ]
 , EDelimited
     "("
     ")"
@@ -12,12 +12,14 @@
     ]
 , ESymbol Rel "="
 , ESubsup
-    (EStyled TextBold [ EIdentifier "C" ])
+    (EStyled TextNormal [ EStyled TextBold [ EIdentifier "C" ] ])
     (EIdentifier "k")
     (EIdentifier "n")
 , ESymbol Rel "="
 , ESub (EGrouped []) (EIdentifier "n")
-, ESub (EStyled TextBold [ EIdentifier "C" ]) (EIdentifier "k")
+, ESub
+    (EStyled TextNormal [ EStyled TextBold [ EIdentifier "C" ] ])
+    (EIdentifier "k")
 , ESymbol Rel "="
 , EDelimited
     "("
diff --git a/test/regression/236a.test b/test/regression/236a.test
new file mode 100644
--- /dev/null
+++ b/test/regression/236a.test
@@ -0,0 +1,4 @@
+<<< tex
+\mathbf{A}
+>>> typst
+upright(bold(A))
diff --git a/test/regression/236b.test b/test/regression/236b.test
new file mode 100644
--- /dev/null
+++ b/test/regression/236b.test
@@ -0,0 +1,4 @@
+<<< tex
+\mathbf{A}
+>>> tex
+\mathbf{A}
diff --git a/texmath.cabal b/texmath.cabal
--- a/texmath.cabal
+++ b/texmath.cabal
@@ -1,5 +1,5 @@
 Name:                texmath
-Version:             0.12.8.8
+Version:             0.12.8.9
 Cabal-Version:       >= 1.10
 Build-type:          Simple
 Synopsis:            Conversion between math formats.
