1

I reinstalled my Windows 7 without loosing most software (including MiKTeX) and hopefully most settings.
With my new OS I can build LaTeX files with no problem (I use MiKTeX, xelatex compiler).
The only problem is I cannot compile standalone document to create jpg image via ImageMagick.

WE:

\documentclass[subpreambles=true,crop,convert={outfile=apl-procesy.png,size=600},border={-0.3cm 0.05cm 0.05cm -0.3cm},12pt,varwidth]{standalone} %density=hustota (bodů na palec dpi),size=velikost delší ze stran,border=rámec uříznutí (vlevo,dole,vpravo,nahoře),varwidth=zalomení řádků a odstavců
\usepackage{polyglossia} % diakritika, kódování textu, fontů
\usepackage{xcolor,pifont,fontspec} % pořebné makro pro barevný text!,pifont=speciální znaky (fajfky, křížky atd.),fontspec=přizpůsobení písma
\usepackage{hyperref,titlesec} % hyperref=přizpůsobení odkazů, titlesec=přizpůsobení nadpisů a sekcí
\usepackage{tikz,tikz-3dplot,graphicx} % tikz,tikz-3dplot=grafika, graphicx=vkládání a formátování externích obrázků
\usepackage{mathtools,breqn,xparse} % styl matematického textu
\usepackage{array,multirow} % formátování tabulek
\usepackage{chemfig,circuitikz} % chemické vzorce a rovnice, elektrická schémata
\usepackage{pgfplots} % grafy funkcí
\setmainlanguage{czech} % výběr českého jazyku z polyglossia
\linespread{1} % řádkování v celém dokumentu
\hypersetup{colorlinks=true,linkcolor=black,pdfnewwindow=true,urlcolor=blue} % nastavení odkazů v celém dokumentu
\DeclareMathSizes{12}{12}{10}{8} % {display-size}{text-size}{script-size}{script-script-size} velikosti písma matematického textu v celém dokumentu - první velikost musí být stejná jako velikost /usepackage! (je to velikost písma). Lokální nastavení takto definovaných velikostí matematického textu: vložit \displaystyle \textstyle \scriptstyle \scriptscriptstyle přímo před text
\NewDocumentCommand{\qfrac}{smm}{\dfrac{\IfBooleanT{#1}{\vphantom{\big|}}#2}{\mathstrut #3}} % definice příkazu matematického zlomku s nastavitelnou vertikální mezerou mezi zlomkovou čárou a textem (\qfrac{}{} v čitateli , \qfrac*{}{} ve jmenovateli)
\tdplotsetmaincoords{70}{110} % rotace Kartézského souřadnicového systému v prostoru (x šikmo dopředu, y doprava, z nahoru) + \begin{tikzpicture}[tdplot_main_coords]
\usetikzlibrary{arrows.meta,decorations.markings,shapes.misc,3d,calc,positioning} % nastavení šipek, tečny a normály,objekty v prostorových souřadnicích
\tikzset{mrizky/.style={color=blue!50,very thick}} % nastavení čar specifických mřížek v celém dokumentu
\tikzset{mrizky-cervena/.style={mrizky,color=red!50}} % hierarchie stylů
\tikzset{mrizky-p/.style ={mrizky,color=#1!50},mrizky-p/.default=yellow}
\tikzset{cross/.style={cross out,draw=black,minimum size=2*(#1-\pgflinewidth),inner sep=0pt,outer sep=0pt},cross/.default={3pt}} % křížky na vyznačení bodů
\tikzset{xyplane/.style={canvas is yx plane at z=#1,very thin}} % definice rovin v Kartézském souřadnicovém systému
\tikzset{xzplane/.style={canvas is zx plane at y=#1,very thin}}
\tikzset{yzplane/.style={canvas is zy plane at x=#1,very thin}}
\newcolumntype{C}[3]{@{\hspace*{#1}}>{\centering\arraybackslash}p{#2}@{\hspace*{#3}}} % zarovnání textu ve sloupci na střed a odsazení textu ve sloupci vlevo a vpravo
\newcolumntype{R}[2]{>{\raggedleft\arraybackslash}p{#1}@{\hspace*{#2}}} % zarovnání textu ve sloupci doprava a odsazení textu ve sloupci vpravo
\newcolumntype{L}[2]{@{\hspace*{#1}}>{\raggedright\arraybackslash}p{#2}} % zarovnání textu ve sloupci doleva a odsazení textu ve sloupci vlevo
\newcolumntype{"}[1]{@{\vrule width #1}} % síla sloupcových čar
\makeatletter\newcommand{\ohline}[1]{\noalign {\ifnum 0=`}\fi\hrule height #1\futurelet\reserved@a\@xhline}\makeatletter % síla řádkových čar přes všechny buňky v řádku
\newlength\savedwidth
\newcommand{\ocline}[2]{\noalign{\global\savedwidth\arrayrulewidth\global\arrayrulewidth #1}\cline{#2}\noalign{\vskip\arrayrulewidth}\noalign{\global\arrayrulewidth\savedwidth}} % síla řádkových čar přes volitelné buňky v řádku
\newcommand{\fajfka}{\textcolor[RGB]{0,166,79}{\ding{51}}} % definice zelené fajfky a červeného křížku
\newcommand{\krizek}{\textcolor[RGB]{237,27,35}{\ding{55}}}
%\setmainfont{Cambria} % hlavní písmo (nic nebo \rmfamily)
\setsansfont{Calibri} % písma bez patek (\sffamily)
\setmonofont{Courier} % písma s univerzální šířkou všech písmen (\ttfamily)
\newfontface{\pismo}{Times New Roman} % definice nového písma
\titleformat{\paragraph}{\LARGE\scshape}{}{0pt}{}[]  % formátování nadpisů a sekcí {název sekce}[pozice]{formát písma}{číslování sekce}{mezera mezi číslováním a textem}{kód před sekcí}[kód po sekci]
\titlespacing{\paragraph}{0pt}{0pt}{0pt} % {odsazení vlevo}{odsazení nahoře}{odsazení dole}
\newcommand*{\tabparagraph}[1]{\textsc{\LARGE{#1}}\vspace{0pt}} % formátování nadpisů a sekcí v tabulce
\titleformat{\subparagraph}{\Large\scshape}{}{0pt}{}[]
\titlespacing{\subparagraph}{0pt}{0pt}{0pt}
\newcommand*{\tabsubparagraph}[1]{\textsc{\Large{#1}}\vspace{4pt}}
\newenvironment{odstavec}{\begin{adjustwidth}{10pt}{0pt}}{\end{adjustwidth}\vspace{8pt}} % {název prostředí}[počet proměnných]{kód před prostředím}{kód za prostředím}
\tikzset{odsazeni-obrazku/.style={baseline=(my center), % nastavení odsazení u tikz obrázků (je nezbytné při vertikálním centrování textu v tabulkách s tikz obrázky)
execute at end picture={
\path (current bounding box.north) -- ++ (0,4pt);
\path (current bounding box.south) -- ++ (0,-4pt);
\path (current bounding box.center) -- ++ (0,#1) coordinate (my center);}},
odsazeni-obrazku/.default=0pt,}
\newcommand*{\StrikeThruDistance}{0.1cm} % přeškrtnutí šipek
\newcommand*{\StrikeThru}{\StrikeThruDistance,\StrikeThruDistance} % přeškrtnutí šipek
\tikzset{preskrtnuta-sipka/.style={decoration={markings, mark=at position 0.3 with {\draw[black,-] ++ (-\StrikeThruDistance,-\StrikeThruDistance) -- (  \StrikeThruDistance, \StrikeThruDistance);}},postaction={decorate},}} % přeškrtnutí šipek
\author{Jan Ullsperger} % autor
\title{Import obrázků} % popis dokumentu
\begin{document}
%\pagecolor[RGB]{255,255,254}
content
\end{document}

When compiling there are multiple errors and the final document won't create. Error samples are:

Missing \begin{document}
Argument of provide@command has an extra }
Paragraph ended before provide@command was complete

I don't think there is missing } in the document, because the same file was compiled without problems with my older OS.
Compiler log file is here.
Can you help me where is the problem?

  • There seems to be an incompatibility between standalone and polyglossia and hyperref. – Bernard Apr 7 '16 at 10:40
4

The problem is that the newest version of the standalone.cls reads the aux-file with \globaldefs=-1, and this breaks the internal command \renew@command which relies on an \xdef inside a group. As hyperref inserts \providecommand in the aux-file (which uses the \renew@command) one gets errors.

Avoiding hyperref could help, but there is no garanty that not other packages which write to the aux-file triggers it too. The following example demonstrates the problem. The error message can vary depending on the definition of \@gtempa and the location of the \providecommand.

\documentclass{article}

\makeatletter
%\def\renew@command#1{%
%  \begingroup \escapechar\m@ne\xdef\@gtempa{{\string#1}}\endgroup %<-- xdef breaks
%  \expandafter\@ifundefined\@gtempa
%     {\@latex@error{\noexpand#1undefined}\@ehc}%
%     \relax
%  \let\@ifdefinable\@rc@ifdefinable
%  \new@command#1}
\def\@gtempa{foo} % breaks the \providecommand because of the missing inner braces.
\makeatother
\begingroup
\globaldefs=-1
\providecommand\blub{abc}
\endgroup

\begin{document}
\end{document}

I think it is a standalone bug. It shouldn't use \globaldefs in this way (before reading a large file which can contain commands from various packages) and so I made bug report: https://bitbucket.org/martin_scharrer/standalone/issues/22/reading-the-aux-with-globaldefs-1-breaks

  • 1
    Nice detective work! – cfr Apr 7 '16 at 12:43
  • Without 'hyperref' package the file is compiled, but it cannot run 'imgconvert' command via ImageMagick. It says 'imgconvert is not recognized as an internal or external command operable program or batch file'. Imgconvert command works when executed in command prompt (ImageMagick path is set in PATH variable). Also '--shell-escape' option is set in "Command line arguments to pass to the compiler" in TeXnicCenter editor. – user46581 Apr 10 '16 at 12:52

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.