diff --git a/sphinx/texinputs/sphinx.sty b/sphinx/texinputs/sphinx.sty index 5d9adb5bb..7e8421aed 100644 --- a/sphinx/texinputs/sphinx.sty +++ b/sphinx/texinputs/sphinx.sty @@ -1881,9 +1881,10 @@ \let\sphinxtermref \@firstofone }} -% For curly braces inside \index macro +% For curly braces and vertical bar inside \index macro \def\sphinxleftcurlybrace{\{} \def\sphinxrightcurlybrace{\}} +\def\sphinxverticalbar{|} % Declare Unicode characters used by linux tree command to pdflatex utf8/utf8x \def\spx@bd#1#2{% diff --git a/sphinx/texinputs/sphinx.xdy b/sphinx/texinputs/sphinx.xdy index 1c0794cd9..0efbdef2f 100644 --- a/sphinx/texinputs/sphinx.xdy +++ b/sphinx/texinputs/sphinx.xdy @@ -109,6 +109,7 @@ (merge-rule "\sphinxleftcurlybrace{}" "{" :string) (merge-rule "\sphinxrightcurlybrace{}" "}" :string) +(merge-rule "\sphinxverticalbar{}" "|" :string) (merge-rule "\_" "_" :string) (merge-rule "{[}" "[" :string) (merge-rule "{]}" "]" :string) @@ -126,7 +127,6 @@ (merge-rule "\(\rightarrow\)" "→" :string) (merge-rule "\(\checkmark\)" "✓" :string) (merge-rule "\textendash{}" "–" :string) -(merge-rule "\textbar{}" "|" :string) (merge-rule "\(\sp{\text{0}}\)" "⁰" :string) (merge-rule "\(\sp{\text{1}}\)" "¹" :string) (merge-rule "\(\sp{\text{2}}\)" "²" :string) diff --git a/sphinx/util/texescape.py b/sphinx/util/texescape.py index e3c45adb4..5daaf137a 100644 --- a/sphinx/util/texescape.py +++ b/sphinx/util/texescape.py @@ -32,8 +32,6 @@ tex_replacements = [ ('`', r'{}`'), ('<', r'\textless{}'), ('>', r'\textgreater{}'), - # map char for some unknown reason. TODO: remove this? - ('|', r'\textbar{}'), # map special Unicode characters to TeX commands ('✓', r'\(\checkmark\)'), ('✔', r'\(\pmb{\checkmark}\)'), diff --git a/sphinx/writers/latex.py b/sphinx/writers/latex.py index 5facdc40c..7e79385f1 100644 --- a/sphinx/writers/latex.py +++ b/sphinx/writers/latex.py @@ -1816,6 +1816,7 @@ class LaTeXTranslator(SphinxTranslator): value = value.replace('"', '""') value = value.replace('@', '"@') value = value.replace('!', '"!') + value = value.replace('|', r'\sphinxverticalbar{}') return value def style(string): diff --git a/tests/test_build_latex.py b/tests/test_build_latex.py index 0ebcd0b62..dc91a51a0 100644 --- a/tests/test_build_latex.py +++ b/tests/test_build_latex.py @@ -315,7 +315,7 @@ def test_numref_with_prefix2(app, status, warning): assert ('\\hyperref[\\detokenize{baz:table22}]' '{Table:\\ref{\\detokenize{baz:table22}}}') in result assert ('\\hyperref[\\detokenize{index:code-1}]{Code-\\ref{\\detokenize{index:code-1}} ' - '\\textbar{} }') in result + '| }') in result assert ('\\hyperref[\\detokenize{baz:code22}]' '{Code-\\ref{\\detokenize{baz:code22}}}') in result assert ('\\hyperref[\\detokenize{foo:foo}]'