"Use of \@icentercr doesn't match its definition." error building latexpdf

136 views
Skip to first unread message

Dave Page

unread,
Mar 7, 2019, 12:03:03 PM3/7/19
to sphinx-users
Hi

I'm trying to build a PDF version of the docs for a project I work on - the doc source is at https://git.postgresql.org/gitweb/?p=pgadmin4.git;a=tree;f=docs/en_US for anyone that may be interested. On both macOS and Fedora I get the following error when trying to build the latexpdf target. Can anyone suggest how I might be able to fix/avoid this in the source RST files? We normally use just the HTML build target, which works just fine (https://www.pgadmin.org/docs/pgadmin4/dev/).

Thanks, Dave.


(pgadmin4) dpage@hal:~/git/pgadmin4$ sphinx-build --version
sphinx-build 1.8.4
(pgadmin4) dpage@hal:~/git/pgadmin4$ python --version
Python 3.7.2
(pgadmin4) dpage@hal:~/git/pgadmin4$ make docs-pdf
LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 /Applications/Xcode.app/Contents/Developer/usr/bin/make -C docs/en_US -f Makefile.sphinx latexpdf
Generating code-snippet.rst for some of the important classes...
sphinx-build -W -b latex -d _build/doctrees   . _build/latex
Running Sphinx v1.8.4
loading pickled environment... done
building [mo]: targets for 0 po files that are out of date
building [latex]: all documents
updating environment: [] 0 added, 3 changed, 0 removed
reading sources... [100%] release_notes_4_4                                                                                                                                                                                                     
looking for now-outdated files... none found
pickling environment... done
checking consistency... done
processing pgadmin4.tex...index getting_started deployment desktop_deployment server_deployment container_deployment login user_management change_user_password user_interface menu_bar toolbar tabbed_browser tree_control preferences keyboard_shortcuts connecting server_group_dialog server_dialog clear_saved_passwords connect_to_server connect_error export_import_servers managing_cluster_objects database_dialog move_objects resource_group_dialog role_dialog tablespace_dialog managing_database_objects cast_dialog collation_dialog domain_dialog domain_constraint_dialog event_trigger_dialog extension_dialog foreign_data_wrapper_dialog foreign_server_dialog foreign_table_dialog fts_configuration_dialog fts_dictionary_dialog fts_parser_dialog fts_template_dialog function_dialog language_dialog materialized_view_dialog package_dialog procedure_dialog schema_dialog sequence_dialog synonym_dialog trigger_function_dialog type_dialog user_mapping_dialog view_dialog modifying_tables check_dialog column_dialog exclusion_constraint_dialog foreign_key_dialog index_dialog primary_key_dialog rule_dialog table_dialog trigger_dialog unique_constraint_dialog management_basics add_restore_point_dialog change_password_dialog grant_wizard import_export_data maintenance_dialog backup_and_restore backup_dialog backup_globals_dialog backup_server_dialog restore_dialog developer_tools debugger query_tool editgrid contributions submitting_patches code_overview coding_standards code_snippets code_review translations pgagent using_pgagent pgagent_install pgagent_jobs licence release_notes release_notes_4_4 release_notes_4_3 release_notes_4_2 release_notes_4_1 release_notes_4_0 release_notes_3_6 release_notes_3_5 release_notes_3_4 release_notes_3_3 release_notes_3_2 release_notes_3_1 release_notes_3_0 release_notes_2_1 release_notes_2_0 release_notes_1_6 release_notes_1_5 release_notes_1_4 release_notes_1_3 release_notes_1_2 release_notes_1_1 release_notes_1_0 
resolving references...
writing... done
copying images... [100%] images/pgagent_properties.png                                                                                                                                                                                          
copying TeX support files...
done
build succeeded.

The LaTeX files are in _build/latex.
Run 'make' in that directory to run these through (pdf)latex
(use `make latexpdf' here to do that automatically).
Running LaTeX files through pdflatex...
make -C _build/latex all-pdf
latexmk -pdf -dvi- -ps-  'pgadmin4.tex'
Latexmk: This is Latexmk, John Collins, 17 Jan. 2018, version: 4.55.
Latexmk: applying rule 'makeindex pgadmin4.idx'...
Rule 'makeindex pgadmin4.idx': File changes, etc:
   Non-existent destination files:
      'pgadmin4.ind'
------------
Run number 1 of rule 'makeindex pgadmin4.idx'
------------
------------
Running 'makeindex -s python.ist  -o "pgadmin4.ind" "pgadmin4.idx"'
------------
This is makeindex, version 2.15 [TeX Live 2018] (kpathsea + Thai support).
Scanning style file ./python.ist.......done (7 attributes redefined, 0 ignored).
Scanning input file pgadmin4.idx...done (0 entries accepted, 0 rejected).
Nothing written in pgadmin4.ind.
Transcript written in pgadmin4.ilg.
Latexmk: applying rule 'pdflatex'...
Rule 'pdflatex': File changes, etc:
   Changed files, or newly in use since previous run(s):
      'pgadmin4.aux'
      'pgadmin4.ind'
      'pgadmin4.tex'
   Non-existent destination files:
      'pgadmin4.pdf'
------------
Run number 1 of rule 'pdflatex'
------------
------------
Running 'pdflatex   -recorder  "pgadmin4.tex"'
------------
This is pdfTeX, Version 3.14159265-2.6-1.40.19 (TeX Live 2018/MacPorts 2018.47642_8) (preloaded format=pdflatex)
 restricted \write18 enabled.
entering extended mode
(./pgadmin4.tex
LaTeX2e <2018-04-01> patch level 2
Babel <3.18> and hyphenation patterns for 46 language(s) loaded.
(./sphinxmanual.cls
Document Class: sphinxmanual 2018/12/22 v1.8.3 Document class (Sphinx manual)
(/opt/local/share/texmf-texlive/tex/latex/base/report.cls
Document Class: report 2014/09/29 v1.4h Standard LaTeX document class
(/opt/local/share/texmf-texlive/tex/latex/base/size10.clo)))
(/opt/local/share/texmf-texlive/tex/latex/base/inputenc.sty)
(/opt/local/share/texmf-texlive/tex/latex/cmap/cmap.sty)
(/opt/local/share/texmf-texlive/tex/latex/base/fontenc.sty
(/opt/local/share/texmf-texlive/tex/latex/base/t1enc.def)<<t1.cmap>>)
(/opt/local/share/texmf-texlive/tex/latex/amsmath/amsmath.sty
For additional information on amsmath, use the `?' option.
(/opt/local/share/texmf-texlive/tex/latex/amsmath/amstext.sty
(/opt/local/share/texmf-texlive/tex/latex/amsmath/amsgen.sty))
(/opt/local/share/texmf-texlive/tex/latex/amsmath/amsbsy.sty)
(/opt/local/share/texmf-texlive/tex/latex/amsmath/amsopn.sty))
(/opt/local/share/texmf-texlive/tex/latex/amsfonts/amssymb.sty
(/opt/local/share/texmf-texlive/tex/latex/amsfonts/amsfonts.sty))
(/opt/local/share/texmf-texlive/tex/generic/babel/babel.sty
(/opt/local/share/texmf-texlive/tex/generic/babel/switch.def)
(/opt/local/share/texmf-texlive/tex/generic/babel-english/english.ldf
(/opt/local/share/texmf-texlive/tex/generic/babel/babel.def
(/opt/local/share/texmf-texlive/tex/generic/babel/txtbabel.def))))
(/opt/local/share/texmf-texlive/tex/latex/psnfss/times.sty)
(/opt/local/share/texmf-texlive/tex/latex/fncychap/fncychap.sty) (./sphinx.sty
(/opt/local/share/texmf-texlive/tex/generic/oberdiek/ltxcmds.sty)
(/opt/local/share/texmf-texlive/tex/latex/graphics/graphicx.sty
(/opt/local/share/texmf-texlive/tex/latex/graphics/keyval.sty)
(/opt/local/share/texmf-texlive/tex/latex/graphics/graphics.sty
(/opt/local/share/texmf-texlive/tex/latex/graphics/trig.sty)
(/opt/local/share/texmf-texlive/tex/latex/graphics-cfg/graphics.cfg)
(/opt/local/share/texmf-texlive/tex/latex/graphics-def/pdftex.def)))
(/opt/local/share/texmf-texlive/tex/latex/fancyhdr/fancyhdr.sty)
(/opt/local/share/texmf-texlive/tex/latex/base/textcomp.sty
(/opt/local/share/texmf-texlive/tex/latex/base/ts1enc.def
(/opt/local/share/texmf-texlive/tex/latex/base/ts1enc.dfu)))
(/opt/local/share/texmf-texlive/tex/latex/titlesec/titlesec.sty)
(/opt/local/share/texmf-texlive/tex/latex/tabulary/tabulary.sty
(/opt/local/share/texmf-texlive/tex/latex/tools/array.sty))
(/opt/local/share/texmf-texlive/tex/latex/tools/longtable.sty)
(/opt/local/share/texmf-texlive/tex/latex/varwidth/varwidth.sty)
(./sphinxmulticell.sty)
(/opt/local/share/texmf-texlive/tex/latex/base/makeidx.sty)
(/opt/local/share/texmf-texlive/tex/latex/framed/framed.sty)
(/opt/local/share/texmf-texlive/tex/latex/xcolor/xcolor.sty
(/opt/local/share/texmf-texlive/tex/latex/graphics-cfg/color.cfg))
(/opt/local/share/texmf-texlive/tex/latex/fancyvrb/fancyvrb.sty
Style option: `fancyvrb' v2.7a, with DG/SPQR fixes, and firstline=lastline fix 
<2008/02/07> (tvz)) (./footnotehyper-sphinx.sty)
(/opt/local/share/texmf-texlive/tex/latex/float/float.sty)
(/opt/local/share/texmf-texlive/tex/latex/wrapfig/wrapfig.sty)
(/opt/local/share/texmf-texlive/tex/latex/parskip/parskip.sty)
(/opt/local/share/texmf-texlive/tex/latex/base/alltt.sty)
(/opt/local/share/texmf-texlive/tex/latex/upquote/upquote.sty)
(/opt/local/share/texmf-texlive/tex/latex/capt-of/capt-of.sty)
(/opt/local/share/texmf-texlive/tex/latex/needspace/needspace.sty)
(./sphinxhighlight.sty)
(/opt/local/share/texmf-texlive/tex/latex/oberdiek/kvoptions.sty
(/opt/local/share/texmf-texlive/tex/generic/oberdiek/kvsetkeys.sty
(/opt/local/share/texmf-texlive/tex/generic/oberdiek/infwarerr.sty)
(/opt/local/share/texmf-texlive/tex/generic/oberdiek/etexcmds.sty
(/opt/local/share/texmf-texlive/tex/generic/oberdiek/ifluatex.sty)))))
(/opt/local/share/texmf-texlive/tex/latex/geometry/geometry.sty
(/opt/local/share/texmf-texlive/tex/generic/oberdiek/ifpdf.sty)
(/opt/local/share/texmf-texlive/tex/generic/oberdiek/ifvtex.sty)
(/opt/local/share/texmf-texlive/tex/generic/ifxetex/ifxetex.sty))
(/opt/local/share/texmf-texlive/tex/latex/hyperref/hyperref.sty
(/opt/local/share/texmf-texlive/tex/generic/oberdiek/hobsub-hyperref.sty
(/opt/local/share/texmf-texlive/tex/generic/oberdiek/hobsub-generic.sty))
(/opt/local/share/texmf-texlive/tex/latex/oberdiek/auxhook.sty)
(/opt/local/share/texmf-texlive/tex/latex/hyperref/pd1enc.def)
(/opt/local/share/texmf-texlive/tex/latex/latexconfig/hyperref.cfg)
(/opt/local/share/texmf-texlive/tex/latex/hyperref/puenc.def)
(/opt/local/share/texmf-texlive/tex/latex/url/url.sty))
(/opt/local/share/texmf-texlive/tex/latex/hyperref/hpdftex.def
(/opt/local/share/texmf-texlive/tex/latex/oberdiek/rerunfilecheck.sty))
(/opt/local/share/texmf-texlive/tex/latex/oberdiek/hypcap.sty)
Writing index file pgadmin4.idx
(./pgadmin4.aux) (/opt/local/share/texmf-texlive/tex/latex/base/ts1cmr.fd)
(/opt/local/share/texmf-texlive/tex/latex/psnfss/t1ptm.fd)
(/opt/local/share/texmf-texlive/tex/context/base/mkii/supp-pdf.mkii
[Loading MPS to PDF converter (version 2006.09.02).]
) (/opt/local/share/texmf-texlive/tex/latex/oberdiek/epstopdf-base.sty
(/opt/local/share/texmf-texlive/tex/latex/oberdiek/grfext.sty)
(/opt/local/share/texmf-texlive/tex/latex/latexconfig/epstopdf-sys.cfg))
*geometry* driver: auto-detecting
*geometry* detected driver: pdftex
(/opt/local/share/texmf-texlive/tex/latex/hyperref/nameref.sty
(/opt/local/share/texmf-texlive/tex/generic/oberdiek/gettitlestring.sty))
(./pgadmin4.out) (./pgadmin4.out)
(/opt/local/share/texmf-texlive/tex/latex/psnfss/t1phv.fd)<<ot1.cmap>><<oml.cma
p>><<oms.cmap>><<omx.cmap>>
(/opt/local/share/texmf-texlive/tex/latex/amsfonts/umsa.fd)
(/opt/local/share/texmf-texlive/tex/latex/amsfonts/umsb.fd) [1{/opt/local/var/d
b/texmf/fonts/map/pdftex/updmap/pdftex.map}] [2] (./pgadmin4.toc) [1] [2]
(/opt/local/share/texmf-texlive/tex/latex/psnfss/t1pcr.fd) [1 <./logo-right-128
.png>] [2]
Chapter 1.
! Use of \@icentercr doesn't match its definition.
<argument> \def 
                
l.88 ...spxentry{Getting Started}}Getting Started}
                                                  
?

jfbu

unread,
Mar 7, 2019, 2:35:12 PM3/7/19
to sphinx...@googlegroups.com
Le 07/03/2019 à 18:03, Dave Page a écrit :
> Chapter 1.
> ! Use of \@icentercr doesn't match its definition.
> <argument> \def
>
> l.88 ...spxentry{Getting Started}}Getting Started}
>
> ?

Hi,

This is caused by usage of index role inside
top level sectioning titles which creates such mark-up in
LaTeX :

\chapter{\index{Getting Started@\spxentry{Getting Started}}Getting Started}


Unfortunately, Sphinx by default uses a package fncychap
which tries to uppercase the chapter titles.

It uses for this LaTeX core macro \MakeUppercase but the
other LaTeX core macro \index
is not legal inside \MakeUppercase argument and this creates
the error you hit against.

I can propose this workaround for your project :

add either

latex_elements = {
'fncychap' : r'\usepackage[Bjarne]{fncychap}\UCTfalse',
}


or

latex_elements = {
'fncychap' : r'\usepackage[Sonny]{fncychap}',
}

to your conf.py.

The former disables the uppercasing but keeps the Bjarne style,
(\UCTfalse is a macor of fncychap)
the latter switches to another style which uses no uppercasing.

http://www.sphinx-doc.org/en/master/latex.html#latex-elements-confval

> 'fncychap'
>
> Inclusion of the “fncychap” package (which makes fancy chapter titles), default '\\usepackage[Bjarne]{fncychap}' for English documentation (this option is slightly customized by Sphinx), '\\usepackage[Sonny]{fncychap}' for internationalized docs (because the “Bjarne” style uses numbers spelled out in English). Other “fncychap” styles you can try are “Lenny”, “Glenn”, “Conny”, “Rejne” and “Bjornstrup”. You can also set this to '' to disable fncychap.


Or

latex_elements = {
'fncychap' : '',
}

will disable usage of this LaTeX package altogether and also fix your problem.

This looks like a bug of Sphinx can you please raise the issue at the github tracker ?

Don't worry about a minimal example I will provide one later on,

Thanks,

Jean-François





Dave Page

unread,
Mar 8, 2019, 4:47:02 AM3/8/19
to sphinx-users


On Thursday, 7 March 2019 19:35:12 UTC, jfbu wrote:
...

Or

latex_elements = {
     'fncychap' : '',
}

will disable usage of this LaTeX package altogether and also fix your problem.

Great, many thanks. Works a treat.
 
This looks like a bug of Sphinx can you please raise the issue at the github tracker ?

No problem.
 

Don't worry about a minimal example I will provide one later on,

Thanks again! 

Cheers, Dave.
Reply all
Reply to author
Forward
0 new messages