egreg9

Risposte nei forum create

Stai visualizzando 15 risposte – dal 2,161 al 2,175 (di 13,205 totali)
  • Autore
    Risposte
  • in risposta a: Iniziale maiuscola per \monthname #70212
    Up
    0
    Down
    ::

    antonio.macrì” post=69539Alla 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

    Non è possibile usare [tt]\patchcmd[/tt] e [tt]#[/tt] in un testo di sostituzione senza biechi trucchi. L’errore è, come avrai capito, alla fonte: quell’assegnazione [tt]\@orgctr=#1[/tt] è perfettamente inutile. Prova a chiederlo a Nicola Talbot. Una definizione come
    `\providecommand{\monthnameitalian}[1][\month]{%
    \ifcase#1\relax\@dt@invalid@month{#1}%
    \or gennaio%
    \or febbraio%
    \or marzo%
    \or aprile%
    \or maggio%
    \or giugno%
    \or luglio%
    \or agosto%
    \or settembre%
    \or ottobre%
    \or novembre%
    \or dicembre%
    \else\@dt@invalid@month{#1}
    \fi}`
    insieme a quella generica
    `\def\@dt@invalid@month#1{\PackageError{datetime}{Invalid Month number #1}{Month numbers should go from 1 to 12}}`
    sarebbe davvero meglio.

    Ciao
    Enrico

    in risposta a: TexShop impazzito 🙁 #26908
    Up
    0
    Down
    ::

    IneXperience” post=69537rimando quanto presente sul mio terminale, dopo l’ennesima installazione:
    `
    MarSy:~ bones$ ls -ld /usr/texbin
    lrwxr-xr-x 1 root wheel 63 24 Feb 23:58 /usr/texbin -> /Library/TeX/Distributions/.DefaultTeX/Contents/Programs/texbin
    MarSy:~ bones$ ls /usr/texbin
    /usr/texbin
    `

    Buonanotte ed a ben sperare.

    edit: se avete idee indicatemele… oppure altre installazioni da provare; scusate l’edit.

    Ti avevo chiesto anche la risposta ad altri comandi.

    Ciao
    Enrico

    in risposta a: TexShop impazzito 🙁 #26901
    Up
    0
    Down
    ::

    IneXperience” post=69528Buonasera e scusate se mi ripropongo, nuovamente con un’installazione ex-novo non va.
    Durante l’installazione non è stato chiesto nessun path o altro, è stato tutto eseguito automaticamente. Anche sulle preferenze di sistema non trovo nulla, qui mi chiede l’installazione di Basic TeX o Mac TeX.

    Se avete qualche idea, fatemi partecipe….
    Saluti e grazie.

    Mi sembra davvero strano.

    Che cosa danno
    `ls /Library/TeX/Distributions
    ls -ld /usr/texbin
    ls /usr/local/texlive/2011/bin`
    dal terminale?

    Ciao
    Enrico

    in risposta a: Rinominare le sezioni #70313
    Up
    0
    Down
    ::

    quattropezze” post=69515…e quindi che debbo fare????

    Per fare che? Per favore, cerca di spiegare che cosa vorresti ottenere. Nessuno stile che conosca mette “Sezione” davanti al numero della sezione nel titolo. Tanto meno “Sub.” che mi sa tanto di leguleio. Abbreviazioni di quel tipo sono orride in qualsiasi contesto.

    Ciao
    Enrico

    in risposta a: Rinominare le sezioni #70309
    Up
    0
    Down
    ::

    quattropezze” post=69513Salve a tutti,
    ho provato a utilizzare il comando

    \addto\captionsitalian{%
    \renewcommand{\chaptername}{Art.}}
    \renewcommand{\sectionname}{Sub.}}

    ma viene fuori un errore:

    ! LaTeX Error: \sectionname undefined.

    e poi

    \select@language{italian}

    Che vuol dire?

    Grazie.

    Che \sectionname non è definito. Perché mai dovrebbe?

    Ciao
    Enrico

    in risposta a: TexShop impazzito 🙁 #26898
    Up
    0
    Down
    ::

    IneXperience” post=69510mi dice:
    `
    lrwxr-xr-x 1 root wheel 63 24 Feb 14:51 /usr/texbin -> /Library/TeX/Distributions/.DefaultTeX/Contents/Programs/texbin
    `

    Inoltre nel pannello delle preferenze:
    No TeX distribution available
    Please install a TeX distribution, for example BasicTeX or MacTeX.

    Ho provato a dare il comando drastico e poi lanciato una nuova compilazione, ma l’errore resta.
    Che debba reinstallare tutto da zero?

    Temo di sì: manca tutta l’infrastruttura di MacTeX, a quanto pare. Se hai fretta, prova con
    `sudo rm /usr/texbin
    sudo ln -s /usr/local/texlive/2011/bin/x86_64-darwin /usr/texbin`
    Ciao
    Enrico

    in risposta a: TexShop impazzito 🙁 #26896
    Up
    0
    Down
    ::

    IneXperience” post=69508Presto detto… qualcosa di terminale la digerisco 🙂
    Grazie della pronta risposta al mio intervento.

    Anyway, ecco quanto richiesto:
    `
    /usr/texbin
    `

    Ehm, non dovrebbe. Dovrebbe essere un link simbolico; che dice “[tt]ls -ld /usr/texbin[/tt]”?

    Apri le “Preferenze di sistema” e il pannello “TeX Distribution”. Là dovresti trovare un pulsante con a fianco “TeXLive-2011”. Attivalo; se è già attivo, prova ad attivarne un altro e poi a ripetere l’operazione. Se non hai alcun pulsante oppure ce n’è uno solo, bisogna ricorrere a un rimedio più drastico:
    `sudo ln -s /Library/TeX/Distributions/.DefaultTeX/Contents/Programs/texbin /usr/texbin`
    Ciao
    Enrico

    in risposta a: TexShop impazzito 🙁 #26894
    Up
    0
    Down
    ::

    IneXperience” post=69506Buongiorno a tutti,
    risollevo questa discussione perché ho tale problema.
    Il messaggio durante la compilazione con TeXShop è il seguente (installazione effettuata su Mac Lion):

    /usr/texbin/pdflatex does not exist. Perhaps TeXLive was not installed or was removed during a system upgrade. If so, go to the TeXShop web site and follow the instructions to (re)install TeXLive. Another possibility is that a tool path is incorrectly configured in TeXShop preferences. This can happen if you are using the fink teTeX distribution.

    Hai eseguito l’installazione di MacTeX? Se sì, prova a vedere che ti dice il terminale se dai il comando
    `ls /usr/texbin`
    Se non sei esperto di terminale non aver paura: è un comando del tutto innocuo.

    Ciao
    Enrico

    in risposta a: Compilazione Frontespizio: Mac vs. Ubuntu #70269
    Up
    0
    Down
    ::

    Ricca” post=69502Utilizzo Ubuntu 10.04LTS con kernel 2.6.35-31. Come posso fare per cambiare il formato di pagina?

    Intendo che distribuzione TeX. Se hai quella standard, cioè TeX Live 2009/Ubuntu, temo che ci sia poco da fare: installa la 2011 e vedrai che va tutto a posto.

    http://profs.scienze.univr.it/~gregorio/texlive-ubuntu.pdf

    A giorni farò l’aggiornamento per la TeX Live 2011, ma basta cambiare tutti i 2010 in 2011.

    Ciao
    Enrico

    in risposta a: Compilazione Frontespizio: Mac vs. Ubuntu #70267
    Up
    0
    Down
    ::


    Tenderei a sospettare un formato di pagina sbagliato nel caso della macchina GNU/Linux. Che distribuzione hai su questa?

    Ciao
    Enrico

    in risposta a: textbf Omega #70292
    Up
    0
    Down
    ::

    Marcello” post=69497Ciao a tutti,

    Uso TeXShop (su Mac), non so se è un problema comune anche agli altri ambienti, ma all’interno di una {equation}, nello scrivere
    \mathbf{\Omega}
    non ottengo il carattere in bold (grassetto).

    In altre parole, con \Omega e con \mathbf{\Omega} ottengo lo stesso risultato (cosa che non accade con tutte le altre lettere greche)!
    Qualcuno saprebbe indicarmi come bypassare questo problema?

    Dubito che [tt]\mathbf{\Lambda}[/tt] ti dia qualcosa. Carica il pacchetto bm
    `\usepackage{bm}`
    e per le lettere greche scrivi [tt]\bm{\Omega}[/tt]

    Ciao
    Enrico

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

    antonio.macrì” post=69465Una 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?

    Fino alla comparsa di LaTeX2e l’unico modo di definire comandi con argomento opzionale era di usare esplicitamente [tt]\@ifnextchar[/tt] che ovviamente rendeva tali comandi fragili. Non c’è (quasi) alcun modo di avere comandi con argomenti opzionali che siano espandibili (nel senso che possono passare attraverso [tt]\edef[/tt] senza problemi). Qualcosa si può fare con xparse:
    `\DeclareExpandableDocumentCommand{\mycmd}{O{pippo} m}{…}`
    ma ci deve essere almeno un argomento “normale” dopo quello opzionale.

    Ciao
    Enrico

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

    antonio.macrì” post=69451Mi 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

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

    Teodoro Studita” post=69443

    devi solo aprie il finder, andare nel ramo intestato, diciamo, Teodoro, l’ì trovi una Libreria, che non è la Libreria di sistema ma è la tua Libreria personale, e qui crei…

    Problema.

    Nel mio “ramo intestato” non c’è una directory “Libreria”
    Ce n’è una subito dentro Macintosh HD e un’altra dentro una cartella “Sistema” che sta anch’essa subito in Macintosh HD.

    Ho un problema? Che faccio?

    (intanto ho cancellato ciò che avevo messo prima in posti a caso)

    Purtroppo in Lion (Mac OS X 10.7) la “Libreria” personale non è più visibile. Poco male: apri una finestra del Finder e premi “Command-Shift-G”; nella finestrella che si apre scrivi “~/Library” (senza le virgolette) e il Finder ti porterà dove ti serve; lì crea la cartella “texmf” e via via le cartelle necessarie.

    Più “semplice” ancora: apri il terminale e scrivi
    `mkdir -p ~/Library/texmf/tex/latex/microtype && open ~/Library/texmf/tex/latex/microtype`
    Ti si aprirà la cartella del Finder dove copiare [tt]microtype.sty[/tt] e file connessi.

    Ciao
    Enrico

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

    OldClaudio” post=69442Antonio, credo che per te questa definizione logorroica (che Enrico troverà certamente il modo di ridurre a mezza riga 😉 ) ti possa servire per il tuo scopo particolare di mettere Febbraio 2011 in modo automatico ad ogni nuova edizione nel frontespizio del documento dove volevi metterlo:
    `
    \AtBeginDocument{{%% In italiano
    \let~\space
    \edef\Oggi{\today}
    \def\GetOggiAnno#1 #2 #3!{#3}
    \edef\OggiAnno{\expandafter\GetOggiAnno\Oggi!}
    \def\GetOggiMese#1 #2 #3!{#2}
    \edef\OggiMese{\expandafter\GetOggiMese\Oggi!}
    \def\SplitOggi#1#2!{\uppercase{#1}#2\ \OggiAnno}
    \xdef\myDocDate{\expandafter\SplitOggi\OggiMese!}}}
    `

    Nel tuo frontespizio, nel punto che vuoi tu, scrivi semplicemente \myDocDate e non ci pensi più.

    Spero che tu non voglia farlo con datetime, perché se ometti il giorno allora devi omettere anche le frazioni di giorno: ore, minuti, secondi, time zone e compagnia.

    Non è tanto più breve, ma almeno ha il vantaggio che l’espansione di [tt]\MonthYear[/tt] è proprio “[tt]Febbraio 2012[/tt]” e non “[tt]\uppercase{f}ebbraio\ 2012[/tt]”.
    `\AtBeginDocument{\begingroup
    \def\extractMonthYear#1 #2#3\relax{\uppercase{\def\x{#2}}%
    \edef\x{\endgroup\def\noexpand\MonthYear{\x#3}}\x}
    \begingroup\let~\space\edef\x{\endgroup\noexpand\extractMonthYear\today\relax}\x}`
    L’idea è la stessa di Claudio: espandere \today fino in fondo ed estrarre l’informazione che ci interessa, sapendo che l’espansione di \today è del tipo “22 febbraio 2012” (il metodo funziona solo per l’italiano, altre lingue vanno trattate in modo diverso). 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. La definizione di [tt]\x[/tt] è, perciò
    `\endgroup\extractMonthYear 22 febbraio 2012\relax`
    e l’esecuzione di [tt]\x[/tt] chiude il gruppo iniziato prima di [tt]\let~\space[/tt].

    Abbiamo prima definito [tt]\extractMonthYear[/tt] (nel gruppo, così sparirà) in modo che il primo argomento sia tutto ciò che va fino al primo spazio, il secondo sia il token successivo e il terzo tutto ciò che va fino a [tt]\relax[/tt]. Perciò il primo argomento è “22”, il secondo è “f”, il terzo è “ebbraio 2012”. Il lavoro di [tt]\extractMonthYear[/tt] è

    1. definire [tt]\x[/tt] come il primo argomento, ma all’interno di [tt]\uppercase[/tt], così l’espansione di [tt]\x[/tt] è, oggi, “F”;
    2. definire [tt]\x[/tt] in modo che la sua espansione sia [tt]\endgroup\def\MonthYear{Febbraio 2012}[/tt] (si noti che la [tt]\x[/tt] “dentro” viene espansa prima che sia assegnato il nuovo significato a [tt]\x[/tt] tramite [tt]\edef[/tt]);
    3. eseguire [tt]\x[/tt], che quindi chiude il gruppo cominciato alla prima riga e a sua volta esegue [tt]\def\MonthYear{Febbraio 2012}[/tt].

    Esercizio: contare quanti significati prende [tt]\x[/tt] durante tutta la faccenda. 🙂

    Ciao
    Enrico

Stai visualizzando 15 risposte – dal 2,161 al 2,175 (di 13,205 totali)

Go to top▲