diff --git a/data/filters/wg21.py b/data/filters/wg21.py
index c10c6b5..a842d3f 100755
--- a/data/filters/wg21.py
+++ b/data/filters/wg21.py
@@ -14,6 +14,7 @@
 import re
 
 embedded_md = re.compile('@@(.*?)@@|@(.*?)@')
+expos_name = re.compile(r'\$([\w\-\s]*?)\$')
 stable_names = {}
 refs = {}
 
@@ -205,10 +206,27 @@ def repl(match_obj):
             if group is not None:
                 return repl2(group)
 
+        def repl_expos(match_obj):
+            match = match_obj[1]
+            if not match or match.isspace():  # $  $
+                return match
+            if doc.format == 'latex':
+                pf.debug('Exposition-only names in latex is totally untested')
+                result = "\\textitalic{{{}}}".format(match)
+            elif doc.format == 'html':
+                result = '{}'.format(match)
+            else:
+                raise ValueError('Unsupported doc format for expos-name')
+            return result
+
         if isinstance(elem, pf.Code):
-            result = pf.RawInline(embedded_md.sub(repl, text), doc.format)
+            text = embedded_md.sub(repl, text)
+            text = expos_name.sub(repl_expos, text)
+            result = pf.RawInline(text, doc.format)
         elif isinstance(elem, pf.CodeBlock):
-            result = pf.RawBlock(embedded_md.sub(repl, text), doc.format)
+            text = embedded_md.sub(repl, text)
+            text = expos_name.sub(repl_expos, text)
+            result = pf.RawBlock(text, doc.format)
 
         if 'diff' not in elem.classes:
             return result
diff --git a/data/syntax/isocpp.xml b/data/syntax/isocpp.xml
index 3fac946..0998f9b 100644
--- a/data/syntax/isocpp.xml
+++ b/data/syntax/isocpp.xml
@@ -300,6 +300,8 @@
         
         
         
+        
+