Risposte nei forum create
-
AutoreRisposte
-
::
Ciao Angelo e benvenuto sul forum GuiT. Come sottinteso da @Liverpool, occorrono delle informazioni in più. Dovresti fornirci un esempio minimo compilabile che riproduca l’errore, ossia un documento che parte [tt]\documentclass[/tt] fino a [tt]\end{document}[/tt], così che noi possiamo semplicemente copiarlo e aiutarti.
23 Settembre 2015 alle 15:37 in risposta a: [RISOLTO] Acronimo in un \item di una description #103257::
Puoi postare un esempio di cosa intendi? Questo codice mi sembra funzionare (ho aggiunto anche [tt]\acfp[/tt] se vuoi usarlo dentro all’argomento opzionale di [tt]\item[/tt]).
`
\documentclass[10pt,% % corpo del font principale
a4paper,% % carta A4
twoside,openright,% % fronte-retro
% oneside,openany,% % solo fronte
titlepage,% % frontespizio
headinclude,,footinclude,% % testatina e piede di pagina
BCOR5mm,% % rilegatura di 5 mm
cleardoublepage=empty,% % pagine vuote senza testatina e piede di pagina
tablecaptionabove,% % didascalie in cima alle tabelle
]{scrreprt} % classe report di KOMA-Script;\usepackage[T1]{fontenc} % codifica dei font:
% NOTA BENE! richiede una distribuzione *completa* di LaTeX,
% per esempio TeXLive o MiKTeX *complete*\usepackage[utf8]{inputenc} % codifica di input; anche [latin1] va bene
% NOTA BENE! va accordata con le preferenze dell'editor\usepackage[italian,english]{babel} % per scrivere in italiano e in inglese;
% l'ultima lingua (l'italiano) risulta predefinita\usepackage[suftesi]{frontespizio} % frontespizo
% per includerlo nel documento bisogna:
% 1. compilare una prima volta Tesi.tex;
% 2. compilare a parte Tesi-frn.tex, generato dalla compilazione precedente;
% 3. compilare ancora Tesi.tex.\usepackage{indentfirst} % rientra il primo capoverso di ogni sezione
\usepackage{graphicx} % immagini
\usepackage{listings} % codici
\usepackage[font=small]{quoting} % citazioni
\usepackage{amsmath,amssymb,amsthm} % matematica
\usepackage[italian]{varioref} % riferimenti completi della pagina
\usepackage{mparhack,relsize} % finezze tipografiche
\usepackage{tabularx} % tabelle di larghezza prefissata
\usepackage[style=philosophy-modern,citestyle=numeric-comp,hyperref,backref,square,natbib,backend=biber]{biblatex}
% eccellente pacchetto per la bibliografia;
% produce uno stile di citazione autore-anno;
% lo stile “numeric-comp” produce riferimenti numerici;
% NOTA BENE! bisogna che il proprio editor sia configurato per biber%\addbibresource{Bibliografia.bib} % database di biblatex
\defbibheading{paper}{\noindent \Large{BIBLIOGRAPHY}}
\defbibheading{web}{\noindent \Large{WEBSITES}\footnote{Date refers to last online visit}}\usepackage{subfig} % sottofigure, sottotabelle
\usepackage{eurosym} % simbolo dell'euro
\usepackage[eulerchapternumbers,% % numeri dei capitoli nel font Euler
subfig,% % se si usa il pacchetto subfig
beramono,% % Bera Mono come font a spaziatura fissa
eulermath,% % AMS Euler come font per la matematica
pdfspacing,% % migliora il riempimento di riga
listings,% % codici
% parts,% % da decommentare in un documento diviso in parti
]{classicthesis} % stile ClassicThesis\usepackage{arsclassica} % modifica alcuni aspetti di ClassicThesis
\usepackage[printonlyused,withpage]{acronym}
\makeatletter
\def\ac@read#1{\expandafter\ac@readi#1{#1}}
\def\ac@readi#1#2#3{\def\noexpand#3{\unexpanded{{#1}}{\@skipmath\lowercase#2$\valign$}}}
\DeclareRobustCommand{\MakeTextLowercase}{\@uclcnotmath{\def\ac##1{\ifcsname fn@##1\endcsname\expandafter\ac@read\csname fn@##1\endcsname\fi\NoCaseChange{\ac{##1}}}\def\acfp##1{\ifcsname fn@##1\endcsname\expandafter\ac@read\csname fn@##1\endcsname\fi\NoCaseChange{\acfp{##1}}}}{##1##2}\lowercase}
\makeatother\begin{document}
\section{Acronyms}
\noindent{\huge{\textbf{E}}}
\begin{acronym}
\acro{EPM}{European Physiology Module}
\acro{AAP}{Altro Acronimo di Prova}
\end{acronym}%%%%%%
\begin{description}
\item[ciao]
\item[\ac{EPM}]
\item[\ac{AAP}]
\item[\acfp{AAP}]
\end{description}
\ac{EPM}
\ac{AAP}
\acfp{AAP}\end{document}
`
22 Settembre 2015 alle 18:40 in risposta a: [RISOLTO] Acronimo in un \item di una description #10325522 Settembre 2015 alle 15:06 in risposta a: [RISOLTO] Acronimo in un \item di una description #103253::
Eccomi, scusa il ritardo ma sono ancora in sessione esami 👿
Comunque è un errore mio, ho dimenticato uno spazio nel nome della macro 😳
`
\makeatletter
\def\ac@read#1{\expandafter\ac@readi#1{#1}}
\def\ac@readi#1#2#3{\def\noexpand#3{\unexpanded{{#1}}{\@skipmath\lowercase#2$\valign$}}}
\@namedef{MakeTextLowercase }{\@uclcnotmath{\def\ac##1{\ifcsname fn@##1\endcsname\expandafter\ac@read\csname fn@##1\endcsname\fi\NoCaseChange{\ac{##1}}}}{##1##2}\lowercase}
\makeatother
`
Nota attentamente che la macro è definita [tt]\@namedef{MakeTextLowercase }[/tt]. Lo spazio nel nome della macro è necessario: questa differisce da [tt]\MakeTextLowercase[/tt], più precisamente è una sua macro interna. Nello specifico fa parte di un sistema idea per rendere robuste le macro: questo significa che le macro non saranno espanse sempre, ma solo in determinate occasioni dove gli viene concesso, per impedirne espansioni indesiderate, con effetti talvolta disastrosi (come hai potuto sperimentare).
Dimenticandomi lo spazio ho distrutto la “robustezza” della macro perché ho sovrascritto la macro [tt]\MakeTextLowercase[/tt] perdendo tutto il meccanismo. Rinominare invece la versione con uno spazio finale permette di operare sulla macro le modifiche desiderate, senza perdere tutto il meccanismo di irrobustimento della macro.Provvedo subito nella correzione anche i miei precedenti interventi, chiedo scusa per il disguido.
PS Correggendo le precedenti macro mi sono ricordato del comando [tt]\DeclareRobustCommand[/tt] che utilizzi proprio per definire nuove macro robuste (o sovrascrivere precedenti). Per evitare disguidi, ti consiglio di utilizzare questa macro. Il codice diventa quindi
`
\makeatletter
\def\ac@read#1{\expandafter\ac@readi#1{#1}}
\def\ac@readi#1#2#3{\def\noexpand#3{\unexpanded{{#1}}{\@skipmath\lowercase#2$\valign$}}}
\DeclareRobustCommand{\MakeTextLowercase}{\@uclcnotmath{\def\ac##1{\ifcsname fn@##1\endcsname\expandafter\ac@read\csname fn@##1\endcsname\fi\NoCaseChange{\ac{##1}}}}{##1##2}\lowercase}
\makeatother
`
In questo caso ridefinisci direttamente [tt]\MakeTextLowercase[/tt], si occuperà poi [tt]\DeclareRobustCommand[/tt] di renderla robusta e sovrascrivere la macro interna con la nuova impostazione.
21 Settembre 2015 alle 19:44 in risposta a: [RISOLTO] Acronimo in un \item di una description #103251::
Niente, sul mio calcolatore continua a compilare tranquillamente (togliendo i warning vari). L’unica cosa che viene in mente è consigliarti di eliminare i file ausiliari (per capirci .log, .aux e simili, se usi un editor LaTeX-friendly esistono i pulsanti appositi). Hai provato a compilare il codice con il tuo preambolo che a me funziona? Ti restituisce comunque un errore? Se l’ultima risposta è affermativa, postami un esempio completo compilabile (da [tt]\documentclass[/tt] fino a [tt]\end{document}[/tt]) che restituisce l’errore.
21 Settembre 2015 alle 17:56 in risposta a: [RISOLTO] Acronimo in un \item di una description #103249::
A me questo codice compila tranquillamente (se escludiamo i warning, sei sicuro che [ŧt]classicthesis[/tt] sia compatibile con le classi KOMA-script?). Potresti postare il contenuto del file [tt]impostazione-tesi.tex[/tt]?
`
\documentclass[10pt,% % corpo del font principale
a4paper,% % carta A4
twoside,openright,% % fronte-retro
% oneside,openany,% % solo fronte
titlepage,% % frontespizio
headinclude,,footinclude,% % testatina e piede di pagina
BCOR5mm,% % rilegatura di 5 mm
cleardoublepage=empty,% % pagine vuote senza testatina e piede di pagina
tablecaptionabove,% % didascalie in cima alle tabelle
]{scrreprt} % classe report di KOMA-Script;\usepackage[T1]{fontenc} % codifica dei font:
% NOTA BENE! richiede una distribuzione *completa* di LaTeX,
% per esempio TeXLive o MiKTeX *complete*\usepackage[utf8]{inputenc} % codifica di input; anche [latin1] va bene
% NOTA BENE! va accordata con le preferenze dell'editor\usepackage[italian,english]{babel} % per scrivere in italiano e in inglese;
% l'ultima lingua (l'italiano) risulta predefinita\usepackage[suftesi]{frontespizio} % frontespizo
% per includerlo nel documento bisogna:
% 1. compilare una prima volta Tesi.tex;
% 2. compilare a parte Tesi-frn.tex, generato dalla compilazione precedente;
% 3. compilare ancora Tesi.tex.\usepackage{indentfirst} % rientra il primo capoverso di ogni sezione
\usepackage{graphicx} % immagini
\usepackage{listings} % codici
\usepackage[font=small]{quoting} % citazioni
\usepackage{amsmath,amssymb,amsthm} % matematica
\usepackage[italian]{varioref} % riferimenti completi della pagina
\usepackage{mparhack,relsize} % finezze tipografiche
\usepackage{tabularx} % tabelle di larghezza prefissata
\usepackage[style=philosophy-modern,citestyle=numeric-comp,hyperref,backref,square,natbib,backend=biber]{biblatex}
% eccellente pacchetto per la bibliografia;
% produce uno stile di citazione autore-anno;
% lo stile “numeric-comp” produce riferimenti numerici;
% NOTA BENE! bisogna che il proprio editor sia configurato per biber%\addbibresource{Bibliografia.bib} % database di biblatex
\defbibheading{paper}{\noindent \Large{BIBLIOGRAPHY}}
\defbibheading{web}{\noindent \Large{WEBSITES}\footnote{Date refers to last online visit}}\usepackage{subfig} % sottofigure, sottotabelle
\usepackage{eurosym} % simbolo dell'euro
\usepackage[eulerchapternumbers,% % numeri dei capitoli nel font Euler
subfig,% % se si usa il pacchetto subfig
beramono,% % Bera Mono come font a spaziatura fissa
eulermath,% % AMS Euler come font per la matematica
pdfspacing,% % migliora il riempimento di riga
listings,% % codici
% parts,% % da decommentare in un documento diviso in parti
]{classicthesis} % stile ClassicThesis\usepackage{arsclassica} % modifica alcuni aspetti di ClassicThesis
\usepackage{bookmark} % segnalibri
\usepackage{enumerate}
\usepackage[printonlyused,withpage]{acronym}
%\usepackage[table, x11names, rgb]{xcolor}
\usepackage{colortbl}%\input{impostazioni-tesi} % file con le impostazioni personali
\makeatletter
\def\ac@read#1{\expandafter\ac@readi#1{#1}}
\def\ac@readi#1#2#3{\def\noexpand#3{\unexpanded{{#1}}{\@skipmath\lowercase#2$\valign$}}}
\DeclareRobustCommand{\MakeTextLowercase}{\@uclcnotmath{\def\ac##1{\ifcsname fn@##1\endcsname\expandafter\ac@read\csname fn@##1\endcsname\fi\NoCaseChange{\ac{##1}}}}{##1##2}\lowercase}
\makeatother\begin{document}
\section*{Acronyms}
\noindent{\huge{\textbf{E}}}
\begin{acronym}
\acro{EPM}{European Physiology Module}
\acro{AAP}{Altro Acronimo di Prova}
\end{acronym}%%%%%%
\begin{description}
\item[ciao]
\item[\\ac{EPM}]
\item[\ac{AAP}]
\item[\ac{EPM}]
\end{description}
\ac{EPM}
\ac{AAP}\end{document}
`
Come vedi ho commentato il file delle tue impostazioni personali, non avendolo.
21 Settembre 2015 alle 15:05 in risposta a: [RISOLTO] Acronimo in un \item di una description #103246::
Un errore mio 😀 A me funzionava perché tra le varie prove era rimasti i file ausiliari (in questo caso il file .aux) che contenevano la definizione di [tt]\fn@[/tt]. La mancata definizione comporta una serie di problemi nella correzione della macro. Questo codice controlla che sia definita la macro incriminata prima di espandere tutto.
`
\documentclass[10pt]{scrreprt} % classe report di KOMA-Script;\usepackage[T1]{fontenc} % codifica dei font:
% NOTA BENE! richiede una distribuzione *completa* di LaTeX,
% per esempio TeXLive o MiKTeX *complete*\usepackage[utf8]{inputenc} % codifica di input; anche [latin1] va bene
% NOTA BENE! va accordata con le preferenze dell'editor\usepackage[italian,english]{babel} % per scrivere in italiano e in inglese;
% l'ultima lingua (l'italiano) risulta predefinita\usepackage{indentfirst} % rientra il primo capoverso di ogni sezione
\usepackage{mparhack,relsize} % finezze tipografiche
\usepackage[eulerchapternumbers,% % numeri dei capitoli nel font Euler
beramono,% % Bera Mono come font a spaziatura fissa
eulermath,% % AMS Euler come font per la matematica
pdfspacing,% % migliora il riempimento di riga
listings,% % codici
% parts,% % da decommentare in un documento diviso in parti
]{classicthesis} % stile ClassicThesis\usepackage{arsclassica} % modifica alcuni aspetti di ClassicThesis
\usepackage{bookmark} % segnalibri
\usepackage[printonlyused,withpage]{acronym}
\makeatletter
\def\ac@read#1{\expandafter\ac@readi#1{#1}}
\def\ac@readi#1#2#3{\def\noexpand#3{\unexpanded{{#1}}{\@skipmath\lowercase#2$\valign$}}}
\DeclareRobustCommand{\MakeTextLowercase}{\@uclcnotmath{\def\ac##1{\ifcsname fn@##1\endcsname\expandafter\ac@read\csname fn@##1\endcsname\fi\NoCaseChange{\ac{##1}}}}{##1##2}\lowercase}
\makeatother\begin{document}
\section*{Acronyms}
\noindent{\huge{\textbf{E}}}
\begin{acronym}
\acro{EPM}{European Physiology Module}
\acro{AAP}{Altro Acronimo di Prova}
\end{acronym}%%%%%%
\begin{description}
\item[ciao]
\item[\ac{EPM}]
\item[\ac{AAP}]
\item[\ac{EPM}]
\end{description}
\ac{EPM}
\ac{AAP}\end{document}
`
21 Settembre 2015 alle 14:00 in risposta a: [RISOLTO] Acronimo in un \item di una description #103244::
Questo sembra funzionare
`
\documentclass[10pt]{scrreprt} % classe report di KOMA-Script;\usepackage[T1]{fontenc} % codifica dei font:
% NOTA BENE! richiede una distribuzione *completa* di LaTeX,
% per esempio TeXLive o MiKTeX *complete*\usepackage[utf8]{inputenc} % codifica di input; anche [latin1] va bene
% NOTA BENE! va accordata con le preferenze dell'editor\usepackage[italian,english]{babel} % per scrivere in italiano e in inglese;
% l'ultima lingua (l'italiano) risulta predefinita\usepackage{indentfirst} % rientra il primo capoverso di ogni sezione
\usepackage{mparhack,relsize} % finezze tipografiche
\usepackage[eulerchapternumbers,% % numeri dei capitoli nel font Euler
beramono,% % Bera Mono come font a spaziatura fissa
eulermath,% % AMS Euler come font per la matematica
pdfspacing,% % migliora il riempimento di riga
listings,% % codici
% parts,% % da decommentare in un documento diviso in parti
]{classicthesis} % stile ClassicThesis\usepackage{arsclassica} % modifica alcuni aspetti di ClassicThesis
\usepackage{bookmark} % segnalibri
\usepackage[printonlyused,withpage]{acronym}
\makeatletter
\def\ac@read#1{\expandafter\ac@readi#1{#1}}
\def\ac@readi#1#2#3{\def\noexpand#3{\unexpanded{{#1}}{\@skipmath\lowercase#2$\valign$}}}
\DeclareRobustCommand{\MakeTextLowercase}{\@uclcnotmath{\def\ac##1{\expandafter\ac@read\csname fn@##1\endcsname\NoCaseChange{\ac{##1}}}}{##1##2}\lowercase}
\makeatother\begin{document}
\section*{Acronyms}
\noindent{\huge{\textbf{E}}}
\begin{acronym}
\acro{EPM}{European Physiology Module}
\acro{AAP}{Altro Acronimo di Prova}
\end{acronym}%%%%%%
\begin{description}
\item[ciao]
\item[\ac{EPM}]
\item[\ac{AAP}]
\end{description}
\ac{EPM}
\ac{AAP}\end{document}
`
In sostanza il problema è molto simile a quello a cui è venuto incontro @ivan qualche giorno fa. La macro è la stessa [tt]\MakeTextLowercase[/tt] e la soluzione è molto simile: ridefinire localmente [tt]\ac[/tt] affinché- Il suo argomento non venga modificato dalla primitiva [tt]\lowercase[/tt] che rende minuscole le lettere (e quindi altera la sigla di riconoscimento)
- Operi una modica della macro [tt]\fn@
[/tt]. In tal modo il testo dell’acronimo viene reso in minuscolo.
Ho aggiunto un acronimo di mia invenzione per testare se tutto funziona.
Piccola osservazione extra: se hai TeXlive 2015 il pacchetto [tt]fixltx2e[/tt] non è più necessario, puoi rimuoverlo tranquillamente.
::
Questo sembra funzionare. Ho impostato [tt]<[/tt], [tt]?[/tt] e [tt]>[/tt] come letter grazie alla chiave [tt]alsoletter={>}[/tt]. In questo modo vengono riconosciute le stringhe da [tt]emph[/tt]. Ho il dubbio che questo però possa dare qualche problema da altre parti. Controlla se nel tuo documento funziona tutto.
`
\documentclass[11pt,oneside]{book}\usepackage[italian,english]{babel}
\usepackage[latin1]{inputenc}\usepackage{fancybox}
\usepackage{verbatim}
\usepackage{color}
\usepackage{moreverb}
\usepackage[final,bookmarks,breaklinks,colorlinks]{hyperref}
\usepackage{booktabs}\usepackage{csquotes}
\usepackage{listings,xcolor} % php code
\definecolor{dkgreen}{rgb}{0,.6,0}
\definecolor{dkblue}{rgb}{0,0,.5}
\definecolor{dkyellow}{cmyk}{0,0,.8,.3}
\lstset{
numbers=left,
numberstyle=\tiny,
showspaces=false,
showtabs=false,
language = php,
basicstyle = \small\ttfamily,
keywordstyle = \color{dkblue},
stringstyle = \color{gray},
identifierstyle = \color{blue},
commentstyle = \color{gray},
alsoletter ={>},
emph =[1]{},
emphstyle =[1]\color{orange},
emph =[2]{if,and,or,else,new},
emphstyle =[2]\color{blue}\bfseries
}\begin{document}
\selectlanguage{italian}
\pagenumbering{roman}
\vfill
\chapter{Introduzione}
\setcounter{page}{1}
\pagenumbering{arabic}
\begin{lstlisting}
{
“testata”:”Stringa senza spazi visibili”
}
testo vario
if x=else
\end{lstlisting}
\end{document}
`
::
Il tuo problema è che [tt]<[/tt], [tt]>[/tt], [tt]?[/tt] e [tt],[/tt] sono interpretati da [tt]listings[/tt] in modo diverso dalle lettere dell’alfabeto (nel pacchetto si parla rispettivamente di other e letter, immagino centrino con i codici di categoria). Questo implica che la stringa che tu vuoi essere interpretata e colorata incontri dei problemi. Comunque sono riuscito ad aggirare il problema definendo un nuovo tipo di commento con l’apposita opzione [tt]morecomment=[\color{orange}]{}{?>}[/tt]. Nota che l’argomento [tt][/tt] è obbligatorio e in questo caso permette di usare due delimitatori per il tuo commento, che saranno uno di apertura e uno di chiusura. Il seocndo argomento è invece opzionale e ti permette di inserire la formattazione (il colore arancione l’ho impostato solo per evidenziare il rendimento del tutto).Qui il codice completo
`
\documentclass[11pt,oneside]{book}\usepackage[italian,english]{babel}
\usepackage[latin1]{inputenc}\usepackage{fancybox}
\usepackage{verbatim}
\usepackage{color}
\usepackage{moreverb}
\usepackage[final,bookmarks,breaklinks,colorlinks]{hyperref}
\usepackage{booktabs}\usepackage{csquotes}
\usepackage{listings,xcolor} % php code
\definecolor{dkgreen}{rgb}{0,.6,0}
\definecolor{dkblue}{rgb}{0,0,.5}
\definecolor{dkyellow}{cmyk}{0,0,.8,.3}
\lstset{
numbers=left,
numberstyle=\tiny,
showspaces=false,
showtabs=false,
language = php,
basicstyle = \small\ttfamily,
keywordstyle = \color{dkblue},
stringstyle = \color{gray},
identifierstyle = \color{blue},
commentstyle = \color{gray},
morecomment =[\color{orange}]{}{?>},
emph =[1]{if,and,or,else,new},
emphstyle =[1]\color{blue}\bfseries
}\begin{document}
\selectlanguage{italian}
\pagenumbering{roman}
\vfill
\chapter{Introduzione}
\setcounter{page}{1}
\pagenumbering{arabic}
\begin{lstlisting}
{
“testata”:”Stringa senza spazi visibili”
}
testo vario
if x=else
\end{lstlisting}
\end{document}
`
::
In realtà anche la parte del [tt]rm[/tt] o [tt]del[/tt] fa parte del meccanismo di rivelazione. In sostanza crea il file [tt]\jobname.w18[/tt] (che quindi avrà il nome del tuo main-file) con una stringa contenuta nella macro [tt]\ip@win[/tt] racchiusa tra apici [tt]'[/tt]. Su linux, la shell di comando interpreta gli apici come delimitatori (tutto il testo compreso tra essi verrà utilizzato senza essere interpretato, quindi anche caratteri che altrimenti avrebbero altri impieghi) e li rimuove, mentre immagino che su windows, nelle versioni precedenti a 7, non fossero interpretati o diversamente. Dopo aver salvato il file, legge la prima riga (se sei in shell escape) e la confronta con le macro [tt]\ip@win[/tt] e [tt]\ip@sig[/tt] per comprendere se sei su un sistema unix o windows. Nel primo caso il condizionale [tt]\ifwindows[/tt] viene impostato a vero, nel secondo a falso. Infine elimina il file [tt]\jobname.w18[/tt] usando la opportuna funzione in base al sistema operativo impiegato. Il condizionale [tt]\ifwindows[/tt] immagino servisse solo per selezionare il corretto comando tra [tt]del[/tt] o [tt]rm[/tt] per eliminare il file [tt]\jobname.w18[/tt]. Se usi la versione che ti ho indicato non hai bisogno di tutto il costrutto e non servono né il condizionale [tt]\ifwindows[/tt], né la rimozione del file [tt]\jobname.w18[/tt] perché non viene creato.In sostanza, tutto quel codice serve per comprendere se hai attivato lo shell escape e impostare il condizionale [tt]\ifdtt@ShellEscapeEnabled[/tt] a vero o falso di conseguenza. Se stai compilando con [tt]pdflatex[/tt], tutto questo la fai più semplicemente valutando quale valore viene assegnato al contatore [tt]\pdfshellescape[/tt] e agendo di conseguenza.
::
In teoria quel codice fa parte di un costrutto più esteso, il cui unico scopo è impostare vero o falso i condizionali [tt]\ifwindows[/tt] e [tt]\ifdtt@ShellEscapeEnabled[/tt]. Il condizionale [tt]\ifwindows[/tt] compare solo in quel frangente, dove viene impostato, ma non viene più utilizzato in nessun’altro posto. Ho il dubbio che sia un rimasuglio di qualche aggiornamento dimenticato dagli autori del pacchetto.Ti consiglio di copiare il file dot2texi.sty e cambiargli nome, poi sostituisci le righe 114-139
`
\newif\ifdtt@ShellEscapeEnabled
\newif\ifwindows
\edef\ip@file{\jobname.w18}
\edef\ip@sig{write18-test-\the\year\the\month\the\day\the\time}
\edef\ip@win{'\ip@sig'}
\def\ip@read@file{%
\newread\instream
\openin\instream=\ip@file
\@tempcnta=\endlinechar
\endlinechar=-1
\read\instream to\@tempa
\endlinechar=\@tempcnta
\closein\instream}
\immediate\write18{echo \ip@win >”\ip@file”}
\IfFileExists{\ip@file}{\dtt@ShellEscapeEnabledtrue}{\dtt@ShellEscapeEnabledfalse}
\ifdtt@ShellEscapeEnabled
\ip@read@file
\ifx\@tempa\ip@sig
\windowsfalse
\else
\ifx\@tempa\ip@win
\windowstrue
\fi
\fi
\immediate\write18{\ifwindows del \else rm — \fi “\ip@file”}
\fi
`
con semplicemente
`
\newif\ifdtt@ShellEscapeEnabled
\ifnum\pdfshellescape\@ne
\dtt@ShellEscapeEnabledtrue
\else
\dtt@ShellEscapeEnabledfalse
\fi
`
[tt]\pdfshellescape[/tt] è un contatore che viene impostato all’inizio della compilazione dal programma con tre possibili valori:- [tt]0[/tt], quando write18 è completamente disabilitato
- [tt]1[/tt], quando write18 è attivo
- [tt]2[/tt], quando write18 è attivo in modalità ristretta
La modifica che ti ho indicato semplicemente, invece di usare tutto il sistema complesso di prima, controlla se write18 è attivo e quindi imposta a vero il condizionale [tt]\ifdtt@ShellEscapeEnabled[/tt]. Dovrebbe essere indipendente dal sistema operativo. Unica pecca: questo contatore è definito solo per [tt]pdflatex[/tt]. Se devi compilare con altri programmi occorre rattoppare in altro modo.
-
AutoreRisposte