编译独立文档时出现多个错误

编译独立文档时出现多个错误

我重新安装了 Windows 7,但大多数软件(包括 MiKTeX)和设置都没有丢失。
使用我的新操作系统,我可以毫无问题地构建 LaTeX 文件(我使用 MiKTeX、xelatex 编译器)。
唯一的问题是我无法编译独立文档以通过 ImageMagick 创建 jpg 图像。

我们:

\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}

编译时出现多个错误,最终无法生成文档。错误示例如下:

缺少 \begin{document}
provide@command 的参数有一个额外的 }
段落在 provide@command 完成之前结束

我不认为文档中缺少 },因为同一个文件在我的旧操作系统上编译时没有问题。
编译器日志文件是这里
你能帮我看看问题出在哪里吗?

答案1

问题是最新版本的 用standalone.cls读取辅助文件\globaldefs=-1,这会破坏\renew@command依赖于\xdef组内 的内部命令。当 hyperref 插入\providecommand辅助文件(使用\renew@command)时,会出现错误。

避免 hyperref 可能会有所帮助,但不能保证其他写入辅助文件的包也不会触发它。以下示例演示了这个问题。错误消息可能因 的定义\@gtempa和 的位置而异\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}

我认为这是一个独立的错误。它不应该以这种方式使用 \globaldefs(在读取可能包含来自各种软件包的命令的大文件之前),因此我制作了错误报告:https://bitbucket.org/martin_scharrer/standalone/issues/22/reading-the-aux-with-globaldefs-1-breaks

相关内容