diff --git a/resources/simplex/simplex.py b/resources/simplex/simplex.py
index 24e282c6ab410e0a32f703801047cb1a03faca62..1de39781bbce914aa1124a321367d009b683e52e 100644
--- a/resources/simplex/simplex.py
+++ b/resources/simplex/simplex.py
@@ -344,22 +344,54 @@ class Simplex():
         logger.info('Printing Simplex Tableau.')
         logger.info('')
 
+        # Calculate overall table width.
         tableau_length = (len(self._obj_func) * 5) + 4
 
+        # Optionally print description.
         if self._description is not None:
-            logger.info('{0}'.format(self._description))
-        logger.info('-' * tableau_length)
+            logger.info('')
+            logger.info('Description: {0}'.format(self._description))
+            logger.info('')
+
+        # Print variables for reference.
+        print_string = '       '
+        for index in range(len(self._obj_func)):
+            # Check if last index.
+            if index == (len(self._obj_func) - 1):
+                print_string += '     C  '
+            else:
+                print_string += ' {0:>3} '.format('x{0}'.format(index + 1))
+
+        print_string += '   B'
+        logger.info(print_string)
+
+        # Print objective function.
+        logger.info('      ' + '-' * tableau_length)
+        print_string = ' Max: |'
+        for index in range(len(self._obj_func)):
+            # Check if last index.
+            if index == (len(self._obj_func) - 1):
+                print_string += ' | {0:>3} |'.format(self._obj_func[index])
+            else:
+                print_string += ' {0:>3} '.format(self._obj_func[index])
+        logger.info(print_string)
+
+        # Print constraints.
+        logger.info('      ' + '-' * tableau_length)
         for row_index in range(len(self._matrix_a)):
-            print_string = '|'
+            if row_index == 0:
+                print_string = ' S.T. |'
+            else:
+                print_string = '      |'
 
+            # Loop through all items in row.
             for item in self._matrix_a[row_index]:
                 print_string += ' {0:>3} '.format(item)
-
             print_string += ' | {0:>3} |'.format(self._constants[row_index])
+            print_string += ' {0:>3}'.format('x{0}'.format(self._basic_var_indexes[row_index] + 1))
             logger.info(print_string)
 
-        logger.info('-' * tableau_length)
-
+        logger.info('      ' + '-' * tableau_length)
         logger.info('')
 
     def pivot(self, old_basic_index, new_basic_index):