cleveref, autonum și etichetare doar ecuații de referință

Utilizatorul MMM mi-a recomandat să folosesc noul autonum pachet ca răspuns la interogarea mea . Cu toate acestea, întâmpin unele dificultăți pentru ca pachetul să funcționeze. Iată un exemplu de lucru minim care se compilează cu „referințe nedefinite”:

\documentclass{article} \usepackage{amsmath, cleveref} \usepackage{autonum} \begin{document} \begin{align}\label{eq:eq1} a = b+c \end{align} Refer to equation \cref{eq:eq1}. \end{document} 

Presupun că nu folosesc pachetul corect, dar nu sunt sigur ce anume Fac greșeli.

De asemenea, iată lista de fișiere pentru compilarea LaTeX => PDF.

 *File List* article.cls 2007/10/19 v1.4h Standard LaTeX document class size10.clo 2007/10/19 v1.4h Standard LaTeX file (size option) amsmath.sty 2000/07/18 v2.13 AMS math features amstext.sty 2000/06/29 v2.01 amsgen.sty 1999/11/30 v2.0 amsbsy.sty 1999/11/29 v1.2d amsopn.sty 1999/12/14 v2.01 operator names cleveref.sty 2011/01/19 v0.17.8 Intelligent cross-referencing autonum.sty 2012/06/21 v0.2 autonum LaTeX package etoolbox.sty 2011/01/03 v2.1 e-TeX tools for LaTeX etex.sty 1998/03/26 v2.0 eTeX basic definition package (PEB) textpos.sty 2012/06/01 v1.7h everyshi.sty 2001/05/15 v3.00 EveryShipout Package (MS) *********** 

Și .log file:

This is pdfTeX, Version 3.1415926-1.40.10 (MiKTeX 2.8) (preloaded format=pdflatex 2012.7.8) 8 JUL 2012 05:05 entering extended mode **E:/programming/latex/minimal-examples/autonum.tex (E:/programming/latex/minimal-examples/autonum.tex LaTeX2e <2009/09/24> Babel <v3.8l> and hyphenation patterns for english, dumylang, nohyphenation, ge rman, ngerman, german-x-2009-06-19, ngerman-x-2009-06-19, french, loaded. (E:\programfiles\MiKTeX2.8\tex\latex\base\article.cls Document Class: article 2007/10/19 v1.4h Standard LaTeX document class (E:\programfiles\MiKTeX2.8\tex\latex\base\size10.clo File: size10.clo 2007/10/19 v1.4h Standard LaTeX file (size option) ) \c@part=\count79 \c@section=\count80 \c@subsection=\count81 \c@subsubsection=\count82 \c@paragraph=\count83 \c@subparagraph=\count84 \c@figure=\count85 \c@table=\count86 \abovecaptionskip=\skip41 \belowcaptionskip=\skip42 \bibindent=\dimen102 ) (E:\programfiles\MiKTeX2.8\tex\latex\ams\math\amsmath.sty Package: amsmath 2000/07/18 v2.13 AMS math features \@mathmargin=\skip43 For additional information on amsmath, use the `?" option. (E:\programfiles\MiKTeX2.8\tex\latex\ams\math\amstext.sty Package: amstext 2000/06/29 v2.01 (E:\programfiles\MiKTeX2.8\tex\latex\ams\math\amsgen.sty File: amsgen.sty 1999/11/30 v2.0 \@emptytoks=\toks14 \ex@=\dimen103 )) (E:\programfiles\MiKTeX2.8\tex\latex\ams\math\amsbsy.sty Package: amsbsy 1999/11/29 v1.2d \pmbraise@=\dimen104 ) (E:\programfiles\MiKTeX2.8\tex\latex\ams\math\amsopn.sty Package: amsopn 1999/12/14 v2.01 operator names ) \inf@bad=\count87 LaTeX Info: Redefining \frac on input line 211. \uproot@=\count88 \leftroot@=\count89 LaTeX Info: Redefining \overline on input line 307. \classnum@=\count90 \DOTSCASE@=\count91 LaTeX Info: Redefining \ldots on input line 379. LaTeX Info: Redefining \dots on input line 382. LaTeX Info: Redefining \cdots on input line 467. \Mathstrutbox@=\box26 \strutbox@=\box27 \big@size=\dimen105 LaTeX Font Info: Redeclaring font encoding OML on input line 567. LaTeX Font Info: Redeclaring font encoding OMS on input line 568. \macc@depth=\count92 \c@MaxMatrixCols=\count93 \dotsspace@=\muskip10 \c@parentequation=\count94 \dspbrk@lvl=\count95 \tag@help=\toks15 \row@=\count96 \column@=\count97 \maxfields@=\count98 \andhelp@=\toks16 \eqnshift@=\dimen106 \alignsep@=\dimen107 \tagshift@=\dimen108 \tagwidth@=\dimen109 \totwidth@=\dimen110 \lineht@=\dimen111 \@envbody=\toks17 \multlinegap=\skip44 \multlinetaggap=\skip45 \mathdisplay@stack=\toks18 LaTeX Info: Redefining \[ on input line 2666. LaTeX Info: Redefining \] on input line 2667. ) (C:\Users\<User>\AppData\Roaming\MiKTeX\2.8\tex\latex\cleveref\cleveref.sty Package: cleveref 2011/01/19 v0.17.8 Intelligent cross-referencing Package cleveref Info: loaded `english" language definitions on input line 5263 . ) (C:\Users\<User>\AppData\Roaming\MiKTeX\2.8\tex\latex\autonum\autonum.sty Package: autonum 2012/06/21 v0.2 autonum LaTeX package (C:\Users\<User>\AppData\Roaming\MiKTeX\2.8\tex\latex\etoolbox\etoolbox.sty Package: etoolbox 2011/01/03 v2.1 e-TeX tools for LaTeX (E:\programfiles\MiKTeX2.8\tex\latex\misc\etex.sty Package: etex 1998/03/26 v2.0 eTeX basic definition package (PEB) \et@xins=\count99 ) \etb@tempcnta=\count100 ) (C:\Users\<User>\AppData\Roaming\MiKTeX\2.8\tex\latex\textpos\textpos.sty Package: textpos 2012/06/01 v1.7h Package: textpos 2012/06/01 1.7h, absolute positioning of text on the page (C:\Users\<User>\AppData\Roaming\MiKTeX\2.8\tex\latex\ms\everyshi.sty Package: everyshi 2001/05/15 v3.00 EveryShipout Package (MS) ) \TP@textbox=\box28 \TP@holdbox=\box29 \TPHorizModule=\dimen112 \TPVertModule=\dimen113 \TP@margin=\dimen114 \TP@absmargin=\dimen115 Grid set 16 x 16 = 38.39343pt x 49.68562pt \TPboxrulesize=\dimen116 \TP@ox=\dimen117 \TP@oy=\dimen118 \TP@tbargs=\toks19 \TP@prevdepth=\dimen119 TextBlockOrigin set to 0pt x 0pt ) \c@autonum@counter=\count101 ) (E:\programming\latex\minimal-examples\autonum.aux) LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 5. LaTeX Font Info: ... okay on input line 5. LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 5. LaTeX Font Info: ... okay on input line 5. LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 5. LaTeX Font Info: ... okay on input line 5. LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 5. LaTeX Font Info: ... okay on input line 5. LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 5. LaTeX Font Info: ... okay on input line 5. LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 5. LaTeX Font Info: ... okay on input line 5. ABD: EveryShipout initializing macros Underfull \hbox (badness 10000) detected at line 5 []$[] $ [] LaTeX Warning: Reference `eq:eq1" on page 1 undefined on input line 10. [1 {C:/Users/<User>/AppData/Local/MiKTeX/2.8/pdftex/config/pdftex.map}] (E:\programming\latex\minimal-examples\autonum.aux) *File List* article.cls 2007/10/19 v1.4h Standard LaTeX document class size10.clo 2007/10/19 v1.4h Standard LaTeX file (size option) amsmath.sty 2000/07/18 v2.13 AMS math features amstext.sty 2000/06/29 v2.01 amsgen.sty 1999/11/30 v2.0 amsbsy.sty 1999/11/29 v1.2d amsopn.sty 1999/12/14 v2.01 operator names cleveref.sty 2011/01/19 v0.17.8 Intelligent cross-referencing autonum.sty 2012/06/21 v0.2 autonum LaTeX package etoolbox.sty 2011/01/03 v2.1 e-TeX tools for LaTeX etex.sty 1998/03/26 v2.0 eTeX basic definition package (PEB) textpos.sty 2012/06/01 v1.7h everyshi.sty 2001/05/15 v3.00 EveryShipout Package (MS) *********** LaTeX Warning: There were undefined references. ) Here is how much of TeX"s memory you used: 2606 strings out of 495285 44952 string characters out of 3180519 139985 words of memory out of 3000000 5849 multiletter control sequences out of 15000+200000 4402 words of font info for 17 fonts, out of 3000000 for 9000 14 hyphenation exceptions out of 8191 30i,9n,31p,841b,210s stack positions out of 5000i,500n,10000p,200000b,50000s <E:/programfiles/MiKTeX2.8/fonts/type1/public/amsfonts/cm/cmbx10.pfb><E:/prog ramfiles/MiKTeX2.8/fonts/type1/public/amsfonts/cm/cmmi10.pfb><E:/programfiles/M iKTeX2.8/fonts/type1/public/amsfonts/cm/cmr10.pfb> Output written on autonum.pdf (1 page, 30636 bytes). PDF statistics: 18 PDF objects out of 1000 (max. 8388607) 0 named destinations out of 1000 (max. 500000) 1 words of extra memory for PDF output out of 10000 (max. 10000000) 

Comentarii

  • Funcționează pentru mine. Ați compilat de două ori?
  • De cel puțin 10 ori! LaTeX = > PS = > PDF, btw.
  • Hm … apoi lipiți .log-ul sau un link către acesta
  • Vă ‘ vă sugerez să adăugați \listfiles la intrarea dvs. și să editați *File List* în întrebare.
  • Lista fișierelor adăugate și fișierul jurnal.

Răspuns

În versiunea sa actuală, pachetul autonum întrerupe suportul pentru caracterele speciale din numele etichetelor. Astfel, caractere precum două puncte sau cifre nu sunt permise în acest moment și trebuie modificate.

Motivul tehnic este acela că numele etichetei este folosit ca parte a unei comenzi nou create atunci când se face referire la o ecuație. Această comandă este salvată în fișierul aux și în cursul următoarei etichete primește un număr dacă această comandă este disponibilă în fișierul aux. Deoarece numele unei comenzi nu trebuie să conțină caractere speciale, apare limitarea observată.

Cred că trebuie să pun o întrebare separată pentru a obține o soluție mai bună la această problemă, întrucât depășește cunoștințele mele TeX.

Actualizați : un nume de comandă poate conține caractere speciale dacă creat corect .

Actualizare 2 : Există un versiune nouă disponibilă, remedierea erorii.

Actualizare 3 : Versiunea 0.3.6 ar trebui să remedieze eroarea odată pentru totdeauna. Din păcate, a existat o regresie care nu a fost acoperită de suita de teste.

Comentarii

  • Mulțumesc MMM. Voi aștepta acea actualizare a pachetului autonum, care este deja aproape ceea ce am nevoie. Deoarece problema mea inițială rămâne compatibilitatea cu un document foarte mare care urmează acelei convenții de etichetare, capacitatea autonum de a procesa caractere speciale va fi într-adevăr foarte utilă.
  • Uimitor funcționează, @MMM.
  • Versiunea actuală, v0.3.5 (2013/06/15) nu acceptă din nou numele cu caractere speciale, cred că versiunea în care a fost acceptată a făcut-o neintenționat, nu ca o caracteristică
  • Caracterele speciale par să nu fie o problemă în versiunea 0.3.5 în general, deoarece au fost adăugate în suita de testare când a apărut prima eroare timpul și lansările se fac numai dacă suita de testare trece toate testele. S-ar putea să existe o regresie în situații specifice, de care nu sunt conștient, deoarece nu am văzut încă un document problematic ‘. După cum am scris deja în privat, sper să putem rezolva problema, dacă există un exemplu minim care să o demonstreze.
  • @MMM Ne pare rău, dar pentru mine lucrurile sunt rupte cu v0.3.5 și o etichetă precum eq:a: în .aux vedeți \xdef\autonum@eq:bReferenced{} mai degrabă decât ceea ce eu ‘ mă aștept, @namedef{autonum@eq:bReferenced}{}. ‘ Urmăresc tex.stackexchange.com/questions/119737 , dar am găsit problema când am dezbrăcat eliminați celelalte pachete.

Răspuns

În plus față de răspunsurile anterioare, există încă un bug undeva între cleveref și autonum care implică \Cref.

\documentclass{article} \usepackage{amsmath, cleveref} \usepackage{autonum} \begin{document} \begin{align}\label{eq:eq1} a = b+c \end{align} Refer to equation \cref{eq:eq1}. % This works fine post bug-fix. \Cref{eq:eq1} is a great equation. % This gives "reference undefined" 

\ end {document}

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *