    # File lib/prawn/document/span.rb, line 27
        def span(width, options={})
          Prawn.verify_options [:position], options
          original_position = self.y

          # FIXME: Any way to move this upstream?
          left_boundary = case(options[:position] || :left)
          when :left
            margin_box.absolute_left
          when :center
            margin_box.absolute_left + margin_box.width / 2.0 - width /2.0
          when :right
            margin_box.absolute_right - width
          when Numeric
            margin_box.absolute_left + options[:position]
          else
            raise ArgumentError, "Invalid option for :position"
          end

          # we need to bust out of whatever nested bounding boxes we're in.
          canvas do
            bounding_box([left_boundary,
                          margin_box.absolute_top], :width => width) do
              self.y = original_position
              yield
            end
          end
        end
      end
    end