antonio.macrì

Risposte nei forum create

Stai visualizzando 15 risposte – dal 121 al 135 (di 418 totali)
  • Autore
    Risposte
  • in risposta a: Lettere accentate èéòàùì #70470
    Up
    0
    Down
    ::


    1. La codifica con cui è salvato il file deve coincidere con quella che specifichi a inputenc.
    2. La scelta migliore è usare la codifica uft8.
    3. Non puoi cambiare in utf8 la codifica a inputenc senza che anche il file sia in utf8.
    4. Devi prima convertire il file in utf8 e poi dire a inputenc che il file si trova in utf8.
    5. Per convertire il file in utf8 puoi usare Notepad++, dato che sei sotto Windows: dal menu Formato->Converti in UTF8 senza BOM.

    Edit: 6. Dopo aver convertito il tuo file in utf8 (per esempio con Notepad++), devi impostare anche il tuo editor (TeXstudio) affinché tutte le volte successive lo salvi ancora in utf8.

    Per prima cosa fatti una copia di backup del file, perché non è detto che vada tutto a buon fine! 😉

    Ciao,
    Antonio

    in risposta a: Problema con indice #70440
    Up
    0
    Down
    ::


    [tt]\spacedlowsmallcaps[/tt] è un comando definito da classicthesis e ridefinito da arsclassica, non esiste in book. Probabilmente hai mischiato i due modelli TesiClassica (che usa classicthesis) e TesiModerna (basata su book).

    Se usi TesiModerna, allora dovrebbe funzionare sostituendo
    `\pagenumbering{roman}
    \cleardoublepage
    \pdfbookmark{\contentsname}{tableofcontents}
    \setcounter{tocdepth}{2}
    \tableofcontents
    \markboth{\spacedlowsmallcaps{\contentsname}}{\spacedlowsmallcaps{\contentsname}} `
    con
    `\frontmatter
    \cleardoublepage
    \phantomsection
    \pdfbookmark{\contentsname}{tableofcontents}
    \setcounter{tocdepth}{2} % lo metterei nel preambolo
    \markboth{\MakeTextUppercase{\contentsname}}{\MakeTextUppercase{\contentsname}}
    \tableofcontents`

    Ti faccio notare che è meglio usare [tt]\frontmatter[/tt] piuttosto che [tt]\pagenumbering{roman}[/tt] (così come [tt]\mainmatter[/tt] invece di [tt]\pagenumbering{arabic}[/tt]).

    Ciao,
    Antonio

    in risposta a: Codici colori #70345
    Up
    0
    Down
    ::


    Intendi che codice inserire per usarlo?

    Credo che questo dovrebbe andare:
    `\color[rgb]{0.784 .0314 .0824}`
    I valori sono ottenuti dividendo 200 8 21 per 255.

    Ciao,
    Antonio

    in risposta a: Iniziale maiuscola per \monthname #70215
    Up
    0
    Down
    ::


    L’argomento di [tt]\patchmontname[/tt]… me l’ero proprio scordato! 🙂

    L’osservazione sull’ordine dei controlli mi piace. Nell’ultima versione poi ho usato [tt]\ifcsname[/tt], mentre non avevo proprio pensato al punto 7!

    Ancora grazie, Enrico!

    in risposta a: Aiuto con layout avanzato #18035
    Up
    0
    Down
    ::


    Sono interessato anch’io a longmedal.

    Ho trovato il progetto su SourceForge: mi confermate che la versione più recente è quella?

    Purtroppo sto avendo qualche problema con quel codice. È un peccato perché è un pacchetto davvero interessante.

    Grazie,
    Antonio

    in risposta a: Iniziale maiuscola per \monthname #70213
    Up
    0
    Down
    ::


    Sono perfettamente d’accordo.

    Ho creato un pacchettino ucmonthname che mi tengo nella cartella corrente (sembra funzionare sia con babel che con polyglossia). Purtroppo l’idea di inserirlo in anthosthesis per ora decade: non mi piace mettere patch.

    `%% ucmonthname.sty

    \ProvidesPackage{ucmonthname}

    \RequirePackage{datetime}
    \RequirePackage{etoolbox}

    \DeclareRobustCommand*\patchmonthname[1]{%
    \if@dt@multilingual
    \ifcsname monthname\languagename\endcsname
    \ifcsname p@monthname\languagename\endcsname\else
    \begingroup
    \letcs{\x}{\string\monthname\languagename}%
    \@patchmonthname
    \global\cslet{p@monthname\languagename}{\x}%
    \endgroup
    \fi
    \fi
    \fi}

    \begingroup
    \@makeother\#
    \gdef\@patchmonthname{%
    \patchcmd\x{\the\@orgargctr}{#1}\relax\relax
    \patchcmd\x{\the\@orgargctr}{#1}\relax\relax
    \patchcmd\x{\@orgargctr=#1\relax}{}\relax\relax
    \patchcmd\x{\@orgargctr}{#1\relax}\relax\relax}
    \endgroup

    \DeclareRobustCommand*\Monthname[1]{%
    \begingroup
    \edef\x{\endgroup\noexpand\MakeTextUppercase
    \csname p@monthname\languagename\endcsname[#1]}%
    \x}

    \apptocmd\select@language{\patchmonthname{#1}}{}{%
    \errmessage{Cannot patch \string\select@language}}`

    Approfondirò la questione di [tt]\patchcmd[/tt] e #.

    Grazie mille Enrico!

    in risposta a: Simboli con pedice rapidi #70302
    Up
    0
    Down
    ::


    Fantastico Enrico! 🙂

    Volendo anche gli apici posso modificare così?
    `\makeatletter
    \mathcode`_=\string”8000
    \catcode`_=\active
    \def_{\@ifnextchar[\ItOrUp@sb@mathrm\sb}
    \def\ItOrUp@sb@mathrm[#1]{\sb\mathrm{#1}}
    \@makeother\_

    \mathcode`^=\string”8000
    \catcode`^=\active
    \def^{\@ifnextchar[\ItOrUp@sp@mathrm\sp}
    \def\ItOrUp@sp@mathrm[#1]{\sp\mathrm{#1}}
    \@makeother\^
    \makeatother`

    Sono andato a braccio, ma sembra funzionare.

    Grazie!

    in risposta a: Iniziale maiuscola per \monthname #70211
    Up
    0
    Down
    ::


    Alla fine l’errore era dovuto a un’incompatibilità già nota tra lipsum e babel quando si specifica spanish come ultima opzione. (Scrivo qui come promemoria per me stesso che spanish ridefinisce [tt]\@roman[/tt] per forzare i numeri romani in maiuscolo: si può ovviare con [tt]\def\@roman{\romannumeral}[/tt].)

    `\documentclass[11pt,a4paper]{article}
    \usepackage[T1]{fontenc}
    \usepackage[utf8]{inputenc}
    \usepackage[spanish,french,english,german,italian]{babel}
    \usepackage{lipsum,textcase}

    \title{Nomi dei mesi in maiuscolo}
    \author{}

    \usepackage{datetime}
    \usepackage{etoolbox}

    \makeatletter
    \DeclareRobustCommand*\patchmonthname[1]{%
    \if@dt@multilingual
    \begingroup
    \expandafter\ifx\csname monthname\languagename\endcsname\relax
    \typeout{No original \string\monthname\languagename}%
    \endgroup
    \else
    \expandafter\ifx\csname p@monthname\languagename\endcsname\relax
    \endgroup
    \typeout{Patching \string\monthname\languagename}%
    \@patchmonthname
    \typeout{Patched \string\monthname\languagename}%
    \else
    \typeout{Already patched \string\monthname\languagename}%
    \endgroup
    \fi
    \fi
    \fi}

    \def\@patchmonthname{%
    % Uso \x per fare prima a scrivere
    \expandafter\let\expandafter\x\csname\string\monthname\languagename\endcsname
    \@@patchmonthname
    \expandafter\let\csname p@monthname\languagename\endcsname\x}

    \begingroup
    \@makeother\#
    \gdef\@@patchmonthname{%
    % Senza bisogno di generare errore se il patching fallisce:
    % se il problema esiste si ripresenterà durante l'espansione
    \patchcmd\x{\the\@orgargctr}{#1}\relax\relax
    \patchcmd\x{\the\@orgargctr}{#1}\relax\relax
    \patchcmd\x{\@orgargctr=#1\relax}{}\relax\relax
    \patchcmd\x{\@orgargctr}{#1\relax}\relax\relax}
    \endgroup

    \DeclareRobustCommand*\Monthname[1]{%
    \edef\x{%
    % Non dovrebbero esserci problemi
    \csname p@monthname\languagename\endcsname[#1]}%
    \expandafter\MakeTextUppercase\x}

    \patchmonthname{english}
    \apptocmd\select@language{\patchmonthname{#1}}{}{%
    \errmessage{Cannot patch \string\select@language}}
    \makeatother

    \setlipsumdefault{66}

    \begin{document}
    \maketitle
    \section{È possibile?}
    \Monthname{1} 2012. \lipsum
    \begin{otherlanguage}{french}
    \Monthname{2} 2012. \lipsum
    \end{otherlanguage}
    \begin{otherlanguage}{italian}
    \Monthname{3} 2012. \lipsum
    \end{otherlanguage}
    \begin{otherlanguage}{spanish}
    \Monthname{4} 2012. \lipsum
    \end{otherlanguage}
    \begin{otherlanguage}{german}
    \Monthname{5} 2012. \lipsum
    \end{otherlanguage}
    \begin{otherlanguage}{english}
    \Monthname{6} 2012. \lipsum
    \end{otherlanguage}
    \begin{otherlanguage}{spanish}
    \Monthname{7} 2012. \lipsum
    \end{otherlanguage}
    \end{document}`

    Chiedo:

    1. C’è qualche grave falla in questo codice?
    2. Non sono riuscito a incorporare [tt]\@@patchmonthname[/tt] dentro [tt]\@patchmonthname[/tt]: ho dovuto definirlo a parte dopo aver posto [tt]\@makeother\#[/tt]. Perché? Se provo a incorporarlo, scrivendo “#1” nel secondo o terzo argomento di [tt]\patchcmd[/tt], il compilatore giustamente si lamenta che [tt]\@patchmonthname[/tt] non ha argomenti (cioè non può risolvere quel “#1”); se invece scrivo “##1”, rimangono entrambi i ##, anziché venire dimezzati. Mi sfugge qualcosa? Per essere più precisi, non funziona questo:
      `\def\@patchmonthname{%
      % Uso \x per fare prima a scrivere
      \expandafter\let\expandafter\x\csname\string\monthname\languagename\endcsname
      \patchcmd\x{\the\@orgargctr}{##1}\relax\relax
      \patchcmd\x{\the\@orgargctr}{##1}\relax\relax
      \patchcmd\x{\@orgargctr=##1\relax}{}\relax\relax
      \patchcmd\x{\@orgargctr}{##1\relax}\relax\relax}
      \expandafter\let\csname p@monthname\languagename\endcsname\x}`
      A [tt]\patchcmd[/tt] viene passato “##1”, invece di “#1”. Perché?

    Grazie,
    Antonio

    in risposta a: Simboli con pedice rapidi #70299
    Up
    0
    Down
    ::

    francesco.biccari” post=69519[…] Mi rispose Enrico ma ora non riesco a trovare la conversazione […]

    Credo fosse questa.

    PS: forse qualcuno storcerà il naso, ma qualche volta ho pensato di usare una notazione di questo tipo:
    `x^{i} % apice corsivo
    x^ % apice dritto
    x_{i} % pedice corsivo
    x_ % pedice dritto`

    Intuitivamente, le parentesi quadre sono “più dritte” di quelle graffe. Perdonate l’analogia… 🙂

    In ogni caso non credo che possano sorgere problemi di ambiguità. Per come stanno le cose di norma, [tt]x_[/tt] metterebbe a pedice solo la parentesi: del tutto senza senso (direi). Inoltre, con la ridefinizione che ho proposto, anche [tt]x_{}[/tt] continuerebbe a fare il suo lavoro.

    Ciao,
    Antonio

    in risposta a: Iniziale maiuscola per \monthname #70210
    Up
    0
    Down
    ::


    Ho studiato meglio la faccenda.

    Lasciando perdere gli argomenti opzionali, sono riuscito a trovare una possibile soluzione. L’ora comincia a farsi tarda, quindi potrei aver preso un abbaglio. In sostanza, oltre a usare [tt]\string\monthname…[/tt], faccio un po’ di patching. I comandi [tt]\monthname…[/tt] hanno la stessa struttura per tutte le lingue, quindi le patch dovrebbero applicarsi a tutte con una certa tranquillità.

    `\documentclass[11pt,a4paper]{article}
    \usepackage[T1]{fontenc}
    \usepackage[utf8]{inputenc}
    \usepackage[french,italian,spanish,english]{babel}
    \usepackage{lipsum,textcase}

    \title{Nomi dei mesi in maiuscolo}
    \author{}

    \usepackage{datetime}
    \usepackage{etoolbox}

    \makeatletter
    \newcommand*\patchmonthname[1]{%
    \if@dt@multilingual
    \begingroup
    \expandafter\ifx\csname monthname\languagename\endcsname\relax
    \typeout{No original \string\monthname\languagename}%
    \endgroup
    \else
    \expandafter\ifx\csname p@monthname\languagename\endcsname\relax
    \endgroup
    \typeout{Patching \string\monthname\languagename}%
    \@patchmonthname
    \typeout{Patched \string\monthname\languagename}%
    \else
    \typeout{Already patched \string\monthname\languagename}%
    \endgroup
    \fi
    \fi
    \fi}

    \def\@patchmonthname{%
    % Uso \x per fare prima a scrivere
    \expandafter\let\expandafter\x\csname\string\monthname\languagename\endcsname
    \@@patchmonthname
    \expandafter\let\csname p@monthname\languagename\endcsname\x}

    \begingroup
    \@makeother\#%
    \gdef\@@patchmonthname{%
    % Senza bisogno di generare errore se il patching fallisce:
    % se il problema esiste si ripresenterà durante l'espansione
    \patchcmd\x{\the\@orgargctr}{#1}\relax\relax
    \patchcmd\x{\the\@orgargctr}{#1}\relax\relax
    \patchcmd\x{\@orgargctr=#1\relax}{}\relax\relax
    \patchcmd\x{\@orgargctr}{#1\relax}\relax\relax}
    \endgroup

    \newcommand*\Monthname[1]{%
    \edef\xx{\noexpand\MakeTextUppercase
    % Dovrei generare un errore se non è definito?
    \csname p@monthname\languagename\endcsname[#1]}\xx
    }

    \patchmonthname{english}
    \let\p@monthnameenglish\x

    \apptocmd\select@language{\patchmonthname{#1}}{}{\errmessage{failure}}
    \makeatother

    \begin{document}
    \maketitle
    \section{È possibile?}
    \Monthname{\month} 2012. \lipsum[2]
    \begin{otherlanguage}{french}
    \Monthname{\month} 2012. \lipsum[2]
    \end{otherlanguage}
    \begin{otherlanguage}{italian}
    \Monthname{\month} 2012. \lipsum[2]
    \end{otherlanguage}
    \begin{otherlanguage}{spanish}
    \Monthname{\month} 2012. \lipsum[2]
    \end{otherlanguage}
    \begin{otherlanguage}{french}
    \Monthname{\month} 2012. \lipsum[2]
    \end{otherlanguage}
    \begin{otherlanguage}{italian}
    \Monthname{\month} 2012. \lipsum[2]
    \end{otherlanguage}
    \begin{otherlanguage}{spanish}
    \Monthname{\month} 2012. \lipsum[2]
    \end{otherlanguage}
    \end{document}`

    Ripeto, può essere che il codice sia un po’ una schifezza, devo ragionarci meglio. Inoltre ha qualche problema, per esempio se l’inglese non è la lingua predefinita (cioè l’ultima caricata in babel). Comunque può essere una base.

    Domani si vedrà! 🙂

    Antonio

    PS: mi sembrava che qualcuno si stesse divertendo coi link del forum… finalmente sono in blu! 😎 😉

    in risposta a: overloading #69599
    Up
    0
    Down
    ::


    Per sbaglio (cercando altro) ho trovato questa discussione su TeX-StackExchange.

    antonio.macrì” post=68716[…] È per questo che dico che si può fare pur usando parentesi tonde o quadre anziché graffe. Le parentesi graffe vengono sempre “consumate” da TeX, mentre quelle tonde o quadre possiamo gestircele come meglio crediamo…

    Sbagliavo: si può fare anche con le parentesi graffe. Il trucco è usare [tt]\bgroup[/tt] per indicare [tt]{[/tt].

    `\documentclass[a4paper]{article}

    \usepackage[T1]{fontenc}
    \usepackage[utf8]{inputenc}
    \usepackage[italian]{babel}
    \usepackage{xspace}

    \makeatletter
    \def\regione#1#2{%
    \@ifnextchar\bgroup{#1\regione@@{#2}}{\regione@{#1}{#2}}}
    \def\regione@#1#2{%
    #1 è #2\xspace}
    \def\regione@@#1#2{%
    \@ifnextchar\bgroup{, #1\regione@@{#2}}{ e #1 sono #2\xspace}}
    \makeatother

    \begin{document}
    \begin{itemize}
    \item \regione{silvia}{sarda};
    \item \regione{francesco}{marco}{abbruzzesi};
    \item \regione{maurizio}{aldo}{giuseppe}{pugliesi};
    \item \regione{antonio}{giovanni}{luca}{carlo}{siciliani}.
    \end{itemize}

    \regione{silvia}{sarda} mentre
    \regione{francesco}{marco}{abbruzzesi};
    \regione{maurizio}{aldo}{giuseppe}{pugliesi};
    \regione{antonio}{giovanni}{luca}{carlo}{siciliani}.

    \end{document}`

    Rimane il fatto, come precisava Roberto, che non si tratta di “vero” overloading.
    In ogni caso, la notazione di Enrico è certamente più compatta e semplice.

    in risposta a: Iniziale maiuscola per \monthname #70208
    Up
    0
    Down
    ::


    Una questione storica. Il problema della non espandibilità di [tt]\monthname[/tt] deriva dall’uso di [tt]\futurelet[/tt] (che non può essere espanso, ma va eseguito) per trovare gli argomenti opzionali. È sempre stato così, oppure in versioni precedenti di LaTeX per cercare gli argomenti opzionali [tt]\newcommand[/tt] usava qualche altro meccanismo senza problemi di espansione?

    Grazie,
    Antonio

    in risposta a: Iniziale maiuscola per \monthname #70207
    Up
    0
    Down
    ::

    egreg9″ post=69456

    Mi resta una (forte) domanda: perché non posso avere ~ a delimitare #1 e #2 nella definizione di [tt]\extractMonthYear[/tt]?

    Puoi farlo sostituendo [tt]\let~\relax[/tt] a [tt]\let~\space[/tt] e definendo
    `\def\extractMonthYear#1~#2#3\relax{…% il resto esattamente come prima`
    Non trovi che sia carina? Domanda: perché quel [tt]\let~\relax[/tt] non rovina tutta la faccenda?

    Ciao
    Enrico

    Interessante: dato che [tt]\relax[/tt] non è espandibile, può essere usato con un [tt]\let[/tt] per rendere non espandibile un altro token!

    Se dico giusto, la faccenda continua a funzionare perché in quel modo rendo ~ non espandibile. Dunque, sopravvive all’espansione di [tt]\today[/tt] e il [tt]\def[/tt] se lo ritrova tal quale come delimitatore tra gli argomenti (nemmeno [tt]\def[/tt] espande i token che incontra come delimitatori). Sarebbe del tutto equivalente ad avere
    `\providecommand*% o simile
    \today{23\noexpand~febbraio 2012}

    \def\extractMonthYear#1~#2#3\relax{…% il resto esattamente come prima`

    La mia domanda nascondeva anche un altro problema: perché non posso avere ~ a delimitare #1 e #2 nella definizione di [tt]\extractMonthYear[/tt] dopo aver cambiato a 11 il codice di categoria di ~?

    La risposta naturalmente è che, oltre a dover mettere `\catcode`\~=11` al di fuori anche di [tt]\AtBeginDocument[/tt], [tt]\today[/tt] è già stato digerito da un bel pezzo, con ~ come carattere attivo, ed è impossibile cambiarglielo ora.

    Anche se si applica solo (principalmente) all’italiano, bellina questa discussione. 🙂

    in risposta a: XeLaTeX e Microtype #64926
    Up
    0
    Down
    ::

    Doc” post=69441

    Il link c’è ed è formato dalla parola “qui” in verde scuro che non emerge drispotto al colore del testo, ma se ci porti sipra la manina del browser vedi che “qui” è cliccabile 🙂

    AZZ! Per mesi ho percorso TUTTO il post di Ivan alla ricerca del fatidico link!!!!!! Certo che questo tema…. Bah! 🙄

    [OT]
    Esiste una soluzione “lato client”:

    1. Se sei in Chrome o Firefox, tasto destro sulla barra dei preferiti/segnalibri e clicca su “Aggiungi pagina…” (Chrome) o “Nuovo segnalibro” (Firefox).
    2. Come nome mettici “Evidenzia link”.
    3. Come indirizzo inserisci questo codice:
      `javascript:(function(){var i,x;for(i=0;x=document.links;++i){x.style.color=[“orange”];x.style.fontWeight='bold';}})()`

    Apri la pagina con il post di Ivan e poi “apri” il segnalibro “Evidenzia link” appena creato (in quella stessa pagina, non in una nuova!).

    Finalmente potrai vedere anche il link nascosto in questo messaggio… Ti piace l’arancione? 😀
    [/OT]

    Ciao,
    Antonio

    in risposta a: Iniziale maiuscola per \monthname #70205
    Up
    0
    Down
    ::


    Grazie mille, Claudio e Enrico!

    Tentiamo lo sforzo ermeneutico sul codice di Enrico: 🙂
    `\AtBeginDocument{%
    \begingroup
    % giorno / spazio / prima lettera del mese / tutto fino a \relax
    \def\extractMonthYear#1 #2#3\relax{%`
    Con la [tt]\def[/tt]inizione dentro [tt]\uppercase[/tt], [tt]\x[/tt] contiene solo la prima lettera del mese in maiuscolo
    ` \uppercase{\def\x{#2}}%`
    L'[tt]\edef[/tt] esterno prepara la definizione di [tt]\MonthYear[/tt] come “Febbraio 2012”: con [tt]\x#3[/tt] unisce la prima lettera del mese in maiuscolo e il resto fino a [tt]\relax[/tt]. L'[tt]\endgroup[/tt] farà sparire [tt]\extractYearMonth[/tt] ([tt]\endgroup[/tt] ed [tt]\edef[/tt] non sono espandibili).
    ` \edef\x{\endgroup\edef\noexpand\MonthYear{\x#3}}%
    \x`
    A questo punto finalmente [tt]\MonthYear[/tt] vale “Febbraio 2012”.
    ` }
    \begingroup`
    Siccome [tt]\today[/tt] separa giorno e mese con ~, lo rendiamo equivalente a uno spazio:
    ` \let~\space`
    L'[tt]\edef[/tt] seguente espande [tt]\today[/tt] e prepara la “chiamata” a [tt]\extractMonthYear[/tt]…
    ` \edef\x{\endgroup\noexpand\extractMonthYear\today\relax}%
    \x % …che avviene qui!
    }`

    Mi resta una (forte) domanda: perché non posso avere ~ a delimitare #1 e #2 nella definizione di [tt]\extractMonthYear[/tt]?


    Edit:
    Mi hai già risposto nel messaggio precedente (che ho visto solo ora :)):

    egreg9″ post=69444…C’è il problema che fra giorno e mese viene messo ~ la cui espansione è una schifezza; perciò lo neutralizziamo dicendo [tt]\let~\space[/tt] prima di eseguire l’espansione completa.

    Grazie!

    Ciao,
    Antonio

Stai visualizzando 15 risposte – dal 121 al 135 (di 418 totali)

Go to top