diff --git a/lib/matplotlib/dviread.py b/lib/matplotlib/dviread.py
index 7d61367fd661..040ca5ef4365 100644
--- a/lib/matplotlib/dviread.py
+++ b/lib/matplotlib/dviread.py
@@ -132,20 +132,20 @@ def glyph_name_or_index(self):
     # raw: Return delta as is.
     raw=lambda dvi, delta: delta,
     # u1: Read 1 byte as an unsigned number.
-    u1=lambda dvi, delta: dvi._arg(1, signed=False),
+    u1=lambda dvi, delta: dvi._read_arg(1, signed=False),
     # u4: Read 4 bytes as an unsigned number.
-    u4=lambda dvi, delta: dvi._arg(4, signed=False),
+    u4=lambda dvi, delta: dvi._read_arg(4, signed=False),
     # s4: Read 4 bytes as a signed number.
-    s4=lambda dvi, delta: dvi._arg(4, signed=True),
+    s4=lambda dvi, delta: dvi._read_arg(4, signed=True),
     # slen: Read delta bytes as a signed number, or None if delta is None.
-    slen=lambda dvi, delta: dvi._arg(delta, signed=True) if delta else None,
+    slen=lambda dvi, delta: dvi._read_arg(delta, signed=True) if delta else None,
     # slen1: Read (delta + 1) bytes as a signed number.
-    slen1=lambda dvi, delta: dvi._arg(delta + 1, signed=True),
+    slen1=lambda dvi, delta: dvi._read_arg(delta + 1, signed=True),
     # ulen1: Read (delta + 1) bytes as an unsigned number.
-    ulen1=lambda dvi, delta: dvi._arg(delta + 1, signed=False),
+    ulen1=lambda dvi, delta: dvi._read_arg(delta + 1, signed=False),
     # olen1: Read (delta + 1) bytes as an unsigned number if less than 4 bytes,
     # as a signed number if 4 bytes.
-    olen1=lambda dvi, delta: dvi._arg(delta + 1, signed=(delta == 3)),
+    olen1=lambda dvi, delta: dvi._read_arg(delta + 1, signed=(delta == 3)),
 )
 
 
@@ -271,7 +271,8 @@ def _output(self):
         Output the text and boxes belonging to the most recent page.
         page = dvi._output()
         """
-        minx, miny, maxx, maxy = np.inf, np.inf, -np.inf, -np.inf
+        minx = miny = np.inf
+        maxx = maxy = -np.inf
         maxy_pure = -np.inf
         for elt in self.text + self.boxes:
             if isinstance(elt, Box):
@@ -357,7 +358,7 @@ def _read(self):
                 self.close()
                 return False
 
-    def _arg(self, nbytes, signed=False):
+    def _read_arg(self, nbytes, signed=False):
         """
         Read and return a big-endian integer *nbytes* long.
         Signedness is determined by the *signed* keyword.
@@ -422,7 +423,7 @@ def _nop(self, _):
     @_dispatch(139, state=_dvistate.outer, args=('s4',)*11)
     def _bop(self, c0, c1, c2, c3, c4, c5, c6, c7, c8, c9, p):
         self.state = _dvistate.inpage
-        self.h, self.v, self.w, self.x, self.y, self.z = 0, 0, 0, 0, 0, 0
+        self.h = self.v = self.w = self.x = self.y = self.z = 0
         self.stack = []
         self.text = []          # list of Text objects
         self.boxes = []         # list of Box objects
@@ -506,7 +507,7 @@ def _fnt_def_real(self, k, c, s, d, a, l):
             self.fonts[k] = exc
             return
         if c != 0 and tfm.checksum != 0 and c != tfm.checksum:
-            raise ValueError('tfm checksum mismatch: %s' % n)
+            raise ValueError(f'tfm checksum mismatch: {n}')
         try:
             vf = _vffile(fontname)
         except FileNotFoundError:
@@ -517,7 +518,7 @@ def _fnt_def_real(self, k, c, s, d, a, l):
     def _pre(self, i, num, den, mag, k):
         self.file.read(k)  # comment in the dvi file
         if i != 2:
-            raise ValueError("Unknown dvi format %d" % i)
+            raise ValueError(f"Unknown dvi format {i}")
         if num != 25400000 or den != 7227 * 2**16:
             raise ValueError("Nonstandard units in dvi file")
             # meaning: TeX always uses those exact values, so it
@@ -678,8 +679,8 @@ def _read(self):
         Read one page from the file. Return True if successful,
         False if there were no more pages.
         """
-        packet_char, packet_ends = None, None
-        packet_len, packet_width = None, None
+        packet_char = packet_ends = None
+        packet_len = packet_width = None
         while True:
             byte = self.file.read(1)[0]
             # If we are in a packet, execute the dvi instructions
@@ -687,48 +688,57 @@ def _read(self):
                 byte_at = self.file.tell()-1
                 if byte_at == packet_ends:
                     self._finalize_packet(packet_char, packet_width)
-                    packet_len, packet_char, packet_width = None, None, None
+                    packet_len = packet_char = packet_width = None
                     # fall through to out-of-packet code
                 elif byte_at > packet_ends:
                     raise ValueError("Packet length mismatch in vf file")
                 else:
                     if byte in (139, 140) or byte >= 243:
-                        raise ValueError(
-                            "Inappropriate opcode %d in vf file" % byte)
+                        raise ValueError(f"Inappropriate opcode {byte} in vf file")
                     Dvi._dtable[byte](self, byte)
                     continue
 
             # We are outside a packet
             if byte < 242:          # a short packet (length given by byte)
                 packet_len = byte
-                packet_char, packet_width = self._arg(1), self._arg(3)
+                packet_char = self._read_arg(1)
+                packet_width = self._read_arg(3)
                 packet_ends = self._init_packet(byte)
                 self.state = _dvistate.inpage
             elif byte == 242:       # a long packet
-                packet_len, packet_char, packet_width = \
-                            [self._arg(x) for x in (4, 4, 4)]
+                packet_len = self._read_arg(4)
+                packet_char = self._read_arg(4)
+                packet_width = self._read_arg(4)
                 self._init_packet(packet_len)
             elif 243 <= byte <= 246:
-                k = self._arg(byte - 242, byte == 246)
-                c, s, d, a, l = [self._arg(x) for x in (4, 4, 4, 1, 1)]
+                k = self._read_arg(byte - 242, byte == 246)
+                c = self._read_arg(4)
+                s = self._read_arg(4)
+                d = self._read_arg(4)
+                a = self._read_arg(1)
+                l = self._read_arg(1)
                 self._fnt_def_real(k, c, s, d, a, l)
                 if self._first_font is None:
                     self._first_font = k
             elif byte == 247:       # preamble
-                i, k = self._arg(1), self._arg(1)
+                i = self._read_arg(1)
+                k = self._read_arg(1)
                 x = self.file.read(k)
-                cs, ds = self._arg(4), self._arg(4)
+                cs = self._read_arg(4)
+                ds = self._read_arg(4)
                 self._pre(i, x, cs, ds)
             elif byte == 248:       # postamble (just some number of 248s)
                 break
             else:
-                raise ValueError("Unknown vf opcode %d" % byte)
+                raise ValueError(f"Unknown vf opcode {byte}")
 
     def _init_packet(self, pl):
         if self.state != _dvistate.outer:
             raise ValueError("Misplaced packet in vf file")
-        self.h, self.v, self.w, self.x, self.y, self.z = 0, 0, 0, 0, 0, 0
-        self.stack, self.text, self.boxes = [], [], []
+        self.h = self.v = self.w = self.x = self.y = self.z = 0
+        self.stack = []
+        self.text = []
+        self.boxes = []
         self.f = self._first_font
         self._missing_font = None
         return self.file.tell() + pl
@@ -744,7 +754,7 @@ def _pre(self, i, x, cs, ds):
         if self.state is not _dvistate.pre:
             raise ValueError("pre command in middle of vf file")
         if i != 202:
-            raise ValueError("Unknown vf format %d" % i)
+            raise ValueError(f"Unknown vf format {i}")
         if len(x):
             _log.debug('vf file comment: %s', x)
         self.state = _dvistate.outer
@@ -794,7 +804,9 @@ def __init__(self, filename):
             widths = struct.unpack(f'!{nw}i', file.read(4*nw))
             heights = struct.unpack(f'!{nh}i', file.read(4*nh))
             depths = struct.unpack(f'!{nd}i', file.read(4*nd))
-        self.width, self.height, self.depth = {}, {}, {}
+        self.width = {}
+        self.height = {}
+        self.depth = {}
         for idx, char in enumerate(range(bc, ec+1)):
             byte0 = char_info[4*idx]
             byte1 = char_info[4*idx+1]