mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2025-02-25 18:55:22 -06:00
Fix #2723: extra spaces in latex pdf output from multirow cell
Adds some ``\relax``/``\unskip`` and removes spaces from ``visit_entry``
generated latex code. Earlier, multirow cell inherited one extra space
token at begin and one at end, making left or right alignment with other
cells fail because the native LaTeX space removal mechanism for table
cells could not apply there.
Memo: the ``\eqparbox`` part of ``visit_entry`` from e41f831f
is left
untouched; separate analysis required.
This commit is contained in:
parent
f30a8d5a36
commit
b25dc5ef4c
@ -1123,7 +1123,7 @@ class LaTeXTranslator(nodes.NodeVisitor):
|
||||
extracols = self.remember_multirowcol[self.table.col]
|
||||
self.body.append('\\multicolumn{')
|
||||
self.body.append(str(extracols + 1))
|
||||
self.body.append('}{|l|}{}')
|
||||
self.body.append('}{|l|}{}\\relax ')
|
||||
self.table.col += extracols
|
||||
self.body.append('&')
|
||||
else:
|
||||
@ -1134,15 +1134,15 @@ class LaTeXTranslator(nodes.NodeVisitor):
|
||||
self.body.append('\\multicolumn{')
|
||||
self.body.append(str(node.get('morecols') + 1))
|
||||
if self.table.col == 1:
|
||||
self.body.append('}{|l|}{')
|
||||
self.body.append('}{|l|}{\\relax ')
|
||||
else:
|
||||
self.body.append('}{l|}{')
|
||||
context += '}'
|
||||
self.body.append('}{l|}{\\relax ')
|
||||
context += '\\unskip}\\relax '
|
||||
if 'morerows' in node:
|
||||
self.body.append('\\multirow{')
|
||||
self.body.append(str(node.get('morerows') + 1))
|
||||
self.body.append('}{*}{')
|
||||
context += '}'
|
||||
self.body.append('}{*}{\\relax ')
|
||||
context += '\\unskip}\\relax '
|
||||
self.remember_multirow[self.table.col] = node.get('morerows')
|
||||
if 'morecols' in node:
|
||||
if 'morerows' in node:
|
||||
@ -1160,7 +1160,7 @@ class LaTeXTranslator(nodes.NodeVisitor):
|
||||
pass
|
||||
else:
|
||||
self.body.append('\\textsf{\\relax ')
|
||||
context += '}'
|
||||
context += '\\unskip}\\relax '
|
||||
while self.remember_multirow.get(self.table.col + 1, 0):
|
||||
self.table.col += 1
|
||||
self.remember_multirow[self.table.col] -= 1
|
||||
@ -1169,7 +1169,7 @@ class LaTeXTranslator(nodes.NodeVisitor):
|
||||
extracols = self.remember_multirowcol[self.table.col]
|
||||
context += '\\multicolumn{'
|
||||
context += str(extracols + 1)
|
||||
context += '}{l|}{}'
|
||||
context += '}{l|}{}\\relax '
|
||||
self.table.col += extracols
|
||||
if len(node.traverse(nodes.paragraph)) >= 2:
|
||||
self.table.has_problematic = True
|
||||
|
Loading…
Reference in New Issue
Block a user