egreg9

Risposte nei forum create

Stai visualizzando 15 risposte – dal 6,481 al 6,495 (di 13,205 totali)
  • Autore
    Risposte
  • in risposta a: Rilevare l’altezza di una tabella con \settoheight #44664
    Up
    0
    Down
    ::

    Non riesco a rilevare la corretta altezza delle tabelle prodotte da tabular. Ecco un esempio

    `\newlength{\phhh}
    \settoheight{\phhh}{
    \begin{tabular}{|c|c|c|c|c|}
    \hline & espressione & dominio & zeri \\ \hline
    $f$ & $\color{magenta}\displaystyle \ln(1+ex^2)$ & $\R$ & $\set{0}$ \\ \hline
    $f'$ & $\displaystyle \frac{2ex}{1+ex^2}$ & $\R$ & $\set{0}$ \\ \hline
    $f''$ & $\displaystyle \frac{2e(1-ex^2)}{(1+ex^2)^2}$ & $\R$ & $\Set{\pm e^{-1/2}}$
    \\ \hline
    \end{tabular}
    }
    \the\phhh`

    Un ambiente tabular costruisce una box che viene allineata verticalmente al centro; quindi l’altezza “vera” è esattamente il doppio di ciò che ottieni con \settoheight.

    Ciao
    Enrico

    in risposta a: problema con comando \newgeometry e pacchetto fancyhdr #44655
    Up
    0
    Down
    ::

    Ho un documento in cui uso il comando \newgeometry (pacchetto geometry) per modificare i margini di una sola pagina.

    Aggiungendo però intestazioni personalizzate con il pacchetto fancyhdr, la loro posizione nella pagina non si adegua ai nuovi margini impostati.

    Esempio:

    `
    \documentclass[a4paper,oneside]{article}

    \usepackage[T1]{fontenc}
    \usepackage[utf8x]{inputenc}
    \usepackage[italian]{babel}
    \usepackage{microtype}
    \usepackage{lipsum}

    \usepackage{fancyhdr}
    \usepackage[showframe]{geometry}

    \pagestyle{fancy}
    \lhead{}
    \chead{}
    \rhead{}
    \lfoot{Left foot}
    \rfoot{Right foot}
    \cfoot{}
    \renewcommand{\headrulewidth}{0pt}
    \renewcommand{\footrulewidth}{0pt}

    \begin{document}

    \newgeometry{margin=2cm}

    \lipsum[1]

    \cleardoublepage

    \restoregeometry

    \lipsum[1]

    \end{document}
    `

    l’allineamento di “Right foot” nella prima pagina è uguale alla seconda pagina, nonostante il testo abbia dimensioni diverse.

    Dove sbaglio?

    grazie

    Il pacchetto fancyhdr determina l’ampiezza di testatina e piedino mediante il valore di \headwidth che è impostato al momento della definizione dello stile fancy (cioè dal comando \pagestyle{fancy}). Se non modifichi le ampiezze con \fancy{head|foot|hf}offset (le tre macro descritte a pagina 12 del manuale), puoi fare così:
    `\newenvironment{changegeometry}[1]
    {\newgeometry{#1}\setlength{\headwidth}{\textwidth}}
    {\cleardoublepage\aftergroup\restoregeometry}`
    Il tuo documento diventerà
    `\begin{document}

    \begin{changegeometry}{margin=2cm}

    \lipsum[1]

    \end{changegeometry}

    \lipsum[1]

    \end{document}`
    che dovrebbe fare come desideri, perché \headwidth è ricalcolata con il valore attuale di \textwidth, ma la modifica viene annullata alla fine dell’ambiente changegeometry.

    Ciao
    Enrico

    in risposta a: Quando mettere \phantomsection? #44648
    Up
    0
    Down
    ::

    [OT]
    Formule inserite con $$, sistemi definiti a mano con \left e array, l’orrido eqnarray, \nonumber. 😕

    Decisamente, ne abbiamo fatta di strada, insieme.
    [/OT]

    Ma ora bando ai ricordi, vediamo di concentraci su \phantomsection. 😉

    Mi associo (dall’alto dei 2743 messaggi in più :wink:) ai complimenti per i 4000! Riporto dal manuale di hyperref:

    \phantomsection
    This sets an anchor at this location. It works similar to \hypertarget{}{} with an automatically chosen anchor name. Often it is used in conjunction with \addcontentsline for sectionlike things (index, bibliography, preface). \addcontentsline refers to the latest previous location where an anchor is set. Example:
    `\cleardoublepage
    \phantomsection
    \addcontentsline{toc}{chapter}{\indexname}
    \printindex`

    Dunque \phantomsection definisce un punto di riferimento (anchor) che però non ha un “nome” conosciuto dall’utente, ma che è memorizzato nella macro \@currentHref che contiene sempre il nome di punto di riferimento più recente. Un po’ come \@currentlabel contiene sempre la rappresentazione dell’ultimo numero generato per il sistema \label-\ref.

    La macro \addcontentsline è ridefinita da hyperref in modo da generare un collegamento con il più recente punto di riferimento. Infatti \addcontentsline è emesso automaticamente da comandi come \chapter e \section, i quali definiscono anche un punto di riferimento. Quando però \addcontentsline è usato da solo, il punto di riferimento non sarà quello corretto e perciò \phantomsection viene in soccorso.

    Con \pdfbookmark non c’è bisogno, confermo, perché ovviamente genera il suo proprio punto di riferimento: sarebbe assurdo che non lo facesse!

    Altri comandi che usano \@currentHref sono \refstepcounter, gli ambienti per le equazioni numerate, \footnote, \caption e \cite; ma per questi non c’è bisogno di impostare punti di riferimento perché il meccanismo li genera automaticamente.

    Ciao
    Enrico

    in risposta a: Latex: package babel #44559
    Up
    0
    Down
    ::

    Questa è davvero una magia.
    Grazie!

    Non avendo a disposizione doxygen né il tempo di esaminarlo, ho curato il sintomo. Il pacchetto babel si aspetta di conoscere certi comandi legati a una lingua; per l’inglese sono \l@english, \dateenglish, \captionsenglish, \extrasenglish, \noextrasenglish e \englishhyphenmins. Analogamente per l’italiano e le altre lingue. Ho quindi creato un’infrastruttura che definisce i comandi necessari con il nome della lingua maiuscolo, in modo da non dover ripetere macro complicate per ogni lingua.

    Ciao
    Enrico

    in risposta a: Quando mettere \phantomsection? #44642
    Up
    0
    Down
    ::

    Ciao a tutti, il problema è noto: con hyperref, si possono avere problemi con i segnalibri tutte le volte che si usa \addcontentsline. Per rimediare, va dato \pahntomsection. Per esempio:
    `\cleardoublepage
    \phantomsection
    \chapter*{Premessa}
    \addcontentsline{toc}{chapter}{\tocEntry{Premessa}}`
    È corretta la sequenza precedente?

    Quali sono gli altri casi in cui va dato \phantomsection? Per esempio, vorrei sapere se va bene la sequenza:
    `\cleardoublepage
    \phantomsection
    \pdfbookmark{\contentsname}{tableofcontents}
    \tableofcontents
    `
    Insomma, quali sono tutti i casi in cui va dato \phantomsection?

    Credo che \pdfbookmark faccia da sé. Il manuale di hyperref è a disposizione. 🙂

    Ciao
    Enrico

    in risposta a: Latex: package babel #44557
    Up
    0
    Down
    ::

    Ciao. Allora, ho capito qual è il problema..
    Ovvero, quel warning (con ENGLISH o ITALIAN maiuscoli) me lo dà quando uso il pacchetto doxygen.
    Solo che – dovendo inserire nel documento la documentazione Doxygen – non posso fare a meno di quel pacchetto.

    Hai idea di come possa risolvere??

    Prova a mettere nel tuo preambolo la seguente magia:
    `\providecommand{\csletcs}[2]{%
    \expandafter\let\csname#1\expandafter\endcsname\csname#2\endcsname}
    \newcommand{\equivUC}[3][\def]{%
    \expandafter#1\csname#2\expandafter\endcsname\expandafter{%
    \csname#3\endcsname}}
    \newcommand{\UPCASElang}[1]{
    \uppercase{\def\temp{#1}}
    \csletcs{l@\temp}{l@#1}
    \equivUC{date\temp}{date#1}
    \equivUC{captions\temp}{captions#1}
    \equivUC{extras\temp}{extras#1}
    \equivUC{noextras\temp}{noextras#1}
    \equivUC[\edef]{\temp hyphenmins}{#1hyphenmins}
    }
    \UPCASElang{english}
    \UPCASElang{italian}`
    Ciao
    Enrico

    in risposta a: Stile philosophy-modern e numero della rivista #44582
    Up
    0
    Down
    ::

    Ho provato il suggerimento di Ivan, e funziona:
    `@article{cevolani:italiano,
    author = {Cevolani, Gustavo},
    title = {Norme tipografiche per l'italiano in \LaTeX},
    journaltitle = {\Ars},
    number = {\unskip\unskip\unpenalty\unskip~1},
    year = {2006},
    url = {http://www.guit.sssup.it/arstexnica/download_ars/arstexnica01.pdf}
    }
    `
    Il risultato, così, è decisamente migliore.

    Grazie mille a Ivan ed Enrico,
    L.

    Adesso potremmo provare ad automatizzare la faccenda:
    `\newif\ifinserthardspace
    \def\nobibbreak{\inserthardspacefalse\chasenodes\ifinserthardspace~\fi}
    \def\chasenodes{%
    \ifcase\lastnodetype
    \or % 0: char node
    \or % 1: hlist node
    \or % 2: vlist node
    \or % 3: rule node
    \or % 4: ins node
    \or % 5: mark node
    \or % 6: adjust node
    \or % 7: ligature node
    \or % 8: disc node
    \or % 9: whatsit node
    \or % 10: math node
    \expandafter\nobibunskip\or % 11: glue node
    \expandafter\nobibunkern\or % 12: kern node
    \expandafter\nobibunpenalty\or % 13: penalty node
    \or % 14: unset node
    % 15: math mode nodes
    \fi
    }
    \def\nobibunskip{\unskip\inserthardspacetrue\chasenodes}
    \def\nobibunkern{\unkern\inserthardspacetrue\chasenodes}
    \def\nobibunpenalty{\unpenalty\chasenodes}`
    Questo codice (che va nel preambolo del documento) definisce la macro \nobibbreak che va a caccia ricorsivamente dei nodi precedenti eliminando tutti quelli di tipo “glue”, “penalty” e “kern” e, se ne elimina uno, aggiunge uno spazio indivisibile (~). Quindi
    `@article{cevolani:italiano,
    author = {Cevolani, Gustavo},
    title = {Norme tipografiche per l'italiano in \LaTeX},
    journaltitle = {\Ars},
    number = {\nobibbreak 1},
    year = {2006},
    url = {http://www.guit.sssup.it/arstexnica/download_ars/arstexnica01.pdf}
    }`
    dovrebbe funzionare. Hai voglia di provare?

    Ciao
    Enrico

    in risposta a: PsTricks: problemi di compilazione #44605
    Up
    0
    Down
    ::

    Grazie prima di tutto per avermi risposto!!

    La funzione da disegnare in Geogebra è la stessa f(x)= 1+ 3log(x). Tuttavia, quando visualizzo il codice PsTricks da Geogebra e lo copio nel documento Latex, quando faccio la compilazione ps – pdf mi dà errore!

    Boh!!

    A me no. Che errore ottieni?

    Ciao
    Enrico

    in risposta a: Stile philosophy-modern e numero della rivista #44580
    Up
    0
    Down
    ::

    Una buona notizia e una cattiva.
    La buona. I comandi che hai indicato si possono mettere anche nel file .bib:
    `@article{Mori:2008,
    Author = {Lapo F. Mori},
    ….
    Number = {\unskip\unskip\unpenalty\unskip~6}}`
    Questo semplifica il lavoro perché si possono eliminare i file ausiliari e ricompilare quante volte si vuole; in compenso il record potrebbe non andar bene in altri scritti. Poco male. Nel caso di Lorenzo, per esempio, è possibile creare due archivi bibliografici: uno normale e uno con i record “patologici”.
    La cattiva. \showthe\lastnode nel file .bbl come da te indicato mi blocca la compilazione dicendo semplicemente “Undefined control sequence” 🙄

    Ciao
    Ivan

    \showthe\lastnodetype, uffa! 🙂 Correggo.

    Ciao
    Enrico

    in risposta a: Il pacchetto babel non funziona #44607
    Up
    0
    Down
    ::

    Ciao a tutti, sto scrivendo la mia tesi di laurea e sto avendo un problema col pacchetto babel. In pratica se non uso questo pacchetto non ho alcun errore quando processo; ma se inserisco \usepackage[italian]{babel} non mi dà nulla in output. Potete aiutarmi? Vorrei farvi vedere cosa mi dice il latex ma non riesco a inserirlo qui.

    Cara Enza (suppongo sia questo il tuo nome), oggi mi sento buono e ho provveduto a modificare il titolo del filone e a mettere le “o” mancanti nel tuo messaggio. Diciamo che è il mio regalo di benvenuto. 🙂

    Difficile fare una diagnosi con così pochi dati. Prova, prima di tutto, a cancellare dalla cartella contenente il tuo documento il file con estensione .aux; poi rimetti \usepackage[italian]{babel} e goditi LaTeX.

    Ciao
    Enrico

    in risposta a: PsTricks: problemi di compilazione #44603
    Up
    0
    Down
    ::

    Salve a tutti ragazzi, ho notato che con il pacchetto PsTricks si riescono a fare belle figure. Mi sono documentato e ho trovato alcune dispense. Tuttavia ho un problema di compilazione.

    —– Primo problema —-

    Precisamente la funzione che vorrei rappresentare è la seguente f(x) = 1+ 3log(x)
    Ora, in base a quanto ho letto nelle dispense, ho scritto il codice

    `\documentclass{minimal}
    \usepackage[usenames,dvipsnames]{pstricks}
    \usepackage{pst-all} % For gradients
    \usepackage{pst-plot} % For axes
    %\usepackage{pstricks-add}
    \pagestyle{empty}
    \begin{document}
    \begin{pspicture}(-5.5,-4.5)(10,4.5)
    \psaxes[labels=none,linecolor=blue,linewidth=1.2pt]{->}(0,0)(-1.5,-3.5)(9,3.5)
    \psplot[linecolor=red,linewidth=1.5pt]{-1}{8}{1 x 3 exp log add}
    \end{pspicture}
    \end{document}`

    Effettuo i soliti passaggi Latex – dvi – ps – pdf, ma quando compilo in ps-pdf mi dà errore

    “ps2pdf returned nonzero Exit code (1) indicating that some problems might have occured during the compilation … ”

    i pacchetti sopra citati li ha installati automaticamente (perché non li avevo), quindi penso che siano aggiornati! Come posso risolvere questo problema? PsTricks riconosce solo alcune funzioni?

    —- Secondo problema —
    Ho scaricato Geogebra e ho visto che salva anche in codice pstricks! Solo che quando lo copio e procedo come sopra, anche qui mi dà errore.

    Help!!!! 😥

    Primo problema: è ovvio che non puoi calcolare una funzione che contiene “log x” con x<0. ❗

    Poi sbagli a scrivere la notazione polacca inversa: 1+3 log x diventa
    `1 3 x ln mul add`
    L’ultima operazione è +, quindi va in fondo; devi anche moltiplicare 3 per log x, che diventa appunto “3 x ln mul”. La riga rilevante sarà allora
    `\psplot[linecolor=red,linewidth=1.5pt]{0.05}{8}{1 3 x ln mul add}`
    Non userei valori iniziali minori di 0.05, forse addirittura 0.1 è meglio. In realtà la scrittura
    `1 x 3 exp ln add`
    sarebbe matematicamente equivalente, ma elevando al cubo ottieni valori troppo grandi che possono rendere il calcolo instabile numericamente.

    Per il secondo problema, dovresti almeno dire che funzione cerchi di disegnare con GeoGebra.

    Ciao
    Enrico

    in risposta a: Stile philosophy-modern e numero della rivista #44578
    Up
    0
    Down
    ::

    Ci sono due spazietti con intercalata una penalità 10000 che non capisco da dove saltino fuori.

    Non ne ho la più pallida idea. Allora, il volume e il numero sono gestiti da questa macro:
    `\newbibmacro*{volnumdefault}{%
    \printfield{volume}%
    \setunit*{\volnumpunct}%
    \printfield{number}}`
    Il comando \volnumpunct è definito così:
    `\newcommand*{\volnumpunct}{\addcomma\space}`
    Non dovrebbero essere qui gli spazi intrusi. Questa macro è richiamata all’interno di un’altra macro: journal+issuetitle, dove ci sono un paio di \ifdefstring{}{}{}{}…ma non credo sia nemmeno lì il problema.
    L’altro comando eseguito dalla macro è \printfield. Credo sia definito nel file biblatex.sty così:
    `\newrobustcmd*{\blx@imc@printfield}[2][]{%
    \blx@imc@iffieldundef{#2}
    {\blx@nounit}
    {\blx@getformat\blx@theformat{ffd}{#1}{#2}%
    \ifdefvoid\blx@theformat
    {\blx@nounit}
    {\blx@begunit
    \def\currentfield{#2}%
    \expandafter\expandafter
    \expandafter\blx@theformat
    \expandafter\expandafter
    \expandafter{\csname abx@field@#2\endcsname}%
    \blx@endunit}}}`

    Come si fa a scoprirlo? Si scrive \showthe\lastnodetype e si scopre che il nodo precedente è “glue”; allora si aggiunge \unskip e si scopre che il nodo precedente è “glue”; di nuovo e il nodo precedente è “penalty”; con \unpenalty abbiamo un nodo “glue” e poi un nodo “char”. Finalmente!

    Non capisco dove mettere \showthe\lastnodetype 🙄

    In totale: glue per lo spazio tra parole; una penalità 10000 che sinceramente non so a che serva, poi uno spazio negativo di 0.00035pt e uno spazio positivo di 0.00035pt. ❓ Suppongo derivino dal codice di biblatex, quindi indagare dovrebbe essere complicato. 🙂

    Spero che dipendano da biblatex e non dai miei codici

    Non ci sono spazi spuri, se è questo che ti preoccupa; i due spazietti dopo la penalità si cancellano, ma sono comunque invisibili (0,00035 pt = 0.00012 mm).

    Quanto a \showthe\lastnodetype, lo devi mettere davanti al numero della rivista:
    `\field{number}{\showthe\lastnodetype1}`
    per esempio, modificando il file .bbl. Durante la compilazione, TeX si ferma come per un errore e ti dice un numero. Il numero corrisponde a un tipo di nodo secondo la tabella
    `-1: none (empty list)
    0: char node
    1: hlist node
    2: vlist node
    3: rule node
    4: ins node
    5: mark node
    6: adjust node
    7: ligature node
    8: disc node
    9: whatsit node
    10: math node
    11: glue node
    12: kern node
    13: penalty node
    14: unset node
    15: math mode nodes`
    Puoi eliminare solo nodi kern (\unkern), penalty (\unpenalty) e glue (\unskip); con un trucco si possono eliminare anche i nodi hlist e vlist (che corrispondono a costruzioni come \hbox, \vbox, \box e \copy) dicendo
    `{\setbox0=\lastbox}`
    Ciao
    Enrico

    in risposta a: Stile philosophy-modern e numero della rivista #44576
    Up
    0
    Down
    ::

    Potresti provare, nel caso problematico del numero che va a capo, a scrivere
    `\field{number}{\unskip~1}`
    Ciao
    Enrico

    Provato ma non sembra funzionare 🙁
    Con
    `\field{number}{\hskip-1pt1}`
    eventualmente aumentando lo spazio negativo, il numero dovrebbe tornare sopra.
    Ma un giocare molto sporco perché potrebbe richiedere di giustificare manualmente l’intera riga.

    Ciao
    Ivan

    Ci sono due spazietti con intercalata una penalità 10000 che non capisco da dove saltino fuori. Ma con “\unskip\unskip\unpenalty\unskip~” dovrebbe funzionare. Naturalmente uno si definisce una bella macro.

    Come si fa a scoprirlo? Si scrive \showthe\lastnodetype e si scopre che il nodo precedente è “glue”; allora si aggiunge \unskip e si scopre che il nodo precedente è “glue”; di nuovo e il nodo precedente è “penalty”; con \unpenalty abbiamo un nodo “glue” e poi un nodo “char”. Finalmente!

    In totale: glue per lo spazio tra parole; una penalità 10000 che sinceramente non so a che serva, poi uno spazio negativo di 0.00035pt e uno spazio positivo di 0.00035pt. ❓ Suppongo derivino dal codice di biblatex, quindi indagare dovrebbe essere complicato. 🙂

    Ciao
    Enrico

    in risposta a: Stile philosophy-modern e numero della rivista #44574
    Up
    0
    Down
    ::

    A mano. 8) Correggendo il bbl quando il testo è definitivo.

    Certo. Potresti essere più specifico, Enrico? Diciamo che il mio .bbl è già definitivo. Mi dici come correggere il seguente:
    `\entry{cevolani:italiano}{article}{}
    \name{author}{1}{%
    {{Cevolani}{C.}%
    {Gustavo}{G.}%
    {}{}%
    {}{}}%
    }
    \field{journaltitle}{\Ars}
    \strng{namehash}{CG1}
    \strng{fullhash}{CG1}
    \field{labelyear}{2006}
    \field{sortinit}{C}
    \count{uniquename}{0}
    \field{number}{1}
    \field{title}{Norme tipografiche per l'italiano in \LaTeX}
    \verb{url}
    \verb http://www.guit.sssup.it/arstexnica/download_ars/arstexnica01.pdf
    \endverb
    \field{year}{2006}
    \endentry`
    Grazie,
    L.

    Potresti provare, nel caso problematico del numero che va a capo, a scrivere
    `\field{number}{\unskip~1}`
    Ciao
    Enrico

    in risposta a: Dimensione nulla di un carattere #44599
    Up
    0
    Down
    ::

    Salve a tutti, ho molta poca esperienza con LaTeX e mi trovo davanti a questa difficoltà:
    dovrei fare in modo che un carattere abbia dimensione nulla, come se fosse su un altro “layer” e in modo che il parser lo inserisca nel corpo, ma non tenga conto della sua dimensione.
    Ad esempio se scrivessi una cosa del tipo E\nullsize{F}E, nel pdf vorrei vedere EE, in cui la F è sovrapposta alla seconda E.

    Benvenuto! Non è per caso un’esigenza legata all’esercizio 3? 😉

    Ci sono due modi, uno LaTeX e uno a “basso livello”:
    `\newcommand{\nullsize}[1]{\makebox[0pt][l]{#1}}
    \newcommand{\nullsize}[1][\leavevmode\rlap{#1}}`
    Il comando \makebox crea un oggetto che occupa, in orizzontale, la dimensione specificata nel primo argomento opzionale (se non c’è, lo spazio occupato è quello “naturale”). Il secondo argomento opzionale dice dove inserire il testo dato come argomento: con “l” il testo viene appoggiato al margine sinistro dello spazio riservato (che poi coincida con il margine destro a LaTeX non importa). Se invece si desse come secondo argomento opzionale “r”, il testo verrebbe appoggiato al margine destro, quindi “sporgerebbe sulla sinistra”.

    La seconda versione fa più o meno la stessa cosa in modo assai più efficiente.

    Però niente premio. 🙂

    Ciao
    Enrico

Stai visualizzando 15 risposte – dal 6,481 al 6,495 (di 13,205 totali)

Go to top▲