egreg9

Risposte nei forum create

Stai visualizzando 15 risposte – dal 2,656 al 2,670 (di 13,205 totali)
  • Autore
    Risposte
  • in risposta a: Grassetto di default per un solo font #66799
    Up
    0
    Down
    ::

    samiel” post=65791Però il codice che ho riportato nel messaggio precedente
    non mi rende grassetto il font tt

    I misteri di NFSS. 🙁

    Sostituisci \sbox0{\ttfamily x} con \sbox0{\fontsize{1}{1}\ttfamily x}

    Funzionerà tranne che a corpo 1, non credo che ti possa dare fastidio. 🙂

    Ciao
    Enrico

    in risposta a: Grassetto di default per un solo font #66797
    Up
    0
    Down
    ::

    samiel” post=65788Ma che funzione ha \sbox?

    Costringe LaTeX a caricare il file .fd corrispondente. Costruisco una box che poi lascio là: è innocua e fa quello che serve.

    Ciao
    Enrico

    in risposta a: Corrispondenza tocloft/memoir #66820
    Up
    0
    Down
    ::

    antonio.macrì” post=65787

    La “metatabella” consiste nel definire
    …

    Grazie, alla fine ho fatto così.

    Un paio di domandine:
    [ol]
    [li]I commenti che metti alla fine di alcune righe sono solo per scrupolo, giusto? Quei comandi li uso solamente nel preambolo.[/li]
    [li]Diverse volte Miede ridefinisce le lunghezze:
    `\renewcommand{\cftsecindent}{0em}`
    È concettualmente sbagliato, giusto? Ci metterei:
    `\setlength{\cftsecindent}{\z@} % già che ci sono ottimizzo un po'`
    Altrimenti il registro dimensionale che conteneva il valore di \cftsecindent rimane inutilizzato, vero?
    [/li]
    [/ol]

    Grazie ancora!

    Sì, metto % per abitudine. Ovviamente, se \cftsecindent è un registro dimensionale, è una sciocchezza usare \renewcommand.

    Ciao
    Enrico

    in risposta a: Corrispondenza tocloft/memoir #66818
    Up
    0
    Down
    ::

    antonio.macrì” post=65783Grazie.

    In ogni caso, la strategia migliore è quella di scegliere una delle due sintassi e lavorare con quella; supponiamo tu voglia quella di tocloft:
    `\ifcth@memoir
    \let\cftbeforechapskip\cftbeforechapterskip
    …
    \fi`
    In altre parole definisci una tabella di equivalenze e lavori con i comandi di tocloft. Occupazione di memoria minima e sintassi invariata. Puoi anche ideare facilmente una “metatabella”.

    Ciao
    Enrico

    Credo di non aver capito. Se faccio
    `
    \ifcth@memoir
    \let\cftbeforechapskip\cftbeforechapterskip
    \let\cftsecnumwidth\cftsectionnumwidth
    \let\cftsubsecpresnum\cftsubsectionpresnum
    …
    \fi
    \setlength{\cftbeforechapskip}{.1em}
    \addtolength{\cftsecnumwidth}{\newchnumberwidth}
    \renewcommand{\cftsubsecpresnum}{\scshape\MakeTextLowercase}
    …
    `
    le istruzioni con \setlength e \addtolength funzionano, ma i \renewcommand no (e ce ne sono tanti, sono anzi i più numerosi). Dovrei fare:
    `
    \ifcth@memoir
    \let\cftbeforechapskip\cftbeforechapterskip
    \let\cftsecnumwidth\cftsectionnumwidth
    \let\cftsubsecpresnum\cftsubsectionpresnum
    … % quelli per \setlength, \addtolength e \renewcommand
    \fi
    \setlength{\cftbeforechapskip}{.1em}
    \addtolength{\cftsecnumwidth}{\newchnumberwidth}
    \renewcommand{\cftsubsecpresnum}{\scshape\MakeTextLowercase}
    …
    \ifcth@memoir
    \let\cftsubsectionpresnum\cftsubsecpresnum
    … % solo quelli per \renewcommand (invertiti)
    \fi
    `
    ma mi pare prolisso. 😕

    Che metatabella intendi?

    Già, con i \renewcommand non funziona: infatti per questi devi dire
    `\let\cftsubsecpresnum\cftsubsectionpresnum
    \def\cftsubsectionpresnum{\cftsubsecpresnum}`
    A questo punto anche \renewcommand{\cftsubsecpresnum}{\scshape\MakeTextLowercase} funzionerà.

    La “metatabella” consiste nel definire
    `\def\convertmemoirtotocloft#1#2{%
    \expandafter\let\csname cftbefore#2skip\expandafter\endcsname\csname cftbefore#1skip\endcsname
    …
    \expandafter\let\csname cft#2presnum\expandafter\endcsname\csname cft#1presnum\endcsname
    \expandafter\def\csname cft#1presnum\expandafter\endcsname\expandafter{\csname cft#2presnum\endcsname}
    …
    }`
    da chiamare come
    `\convertmemoirtotocloft{chapter}{chap}`
    Si può lievemente migliorare accorgendosi che la struttura è molto simile:
    `\def\convertmemoirtotocloftlet#1#2#3#4{%
    \expandafter\let\csname cft#1#4#2\expandafter\endcsname\csname cft#1#3#2\endcsname}
    \def\convertmemoirtotocloftdef#1#2#3#4{%
    \convertmemoirtotocloftlet{#1}{#2}{#3}{#4}%
    \expandafter\def\csname cft#1#3#2\expandafter\endcsname\expandafter{\csname cft#1#4#2\endcsname}`
    e il codice di prima diventerebbe
    `\def\convertmemoirtotocloft#1#2{%
    \convertmemoirtotocloftlet{before}{skip}{#1}{#2}
    …
    \convertmemoirtotocloftdef{}{presnum}{#1}{#2}
    …
    }`
    Al posto dei puntini metti tutti i comandi necessari e ti basterà dire
    `\ifcth@memoir
    \convertmemoirtotocloft{chapter}{chap}
    \convertmemoirtotocloft{section}{sec}
    …
    \fi`

    Ciao
    Enrico

    in risposta a: Lingua dei minitoc #66834
    Up
    0
    Down
    ::

    OldClaudio” post=65781Mi fa strano la codifica latin9; sei propio sicuro di volerla usare e che non sia il frutto di un copia e incolla?

    La codifica latin-9 è praticamente a latin-1, ma ha l’euro.

    Ciao
    Enrico

    in risposta a: Grassetto di default per un solo font #66795
    Up
    0
    Down
    ::

    samiel” post=65772Sì, uso T1. E l’avvio del codice è
    `\usepackage[T1]{fontenc}
    \usepackage{textcomp}
    \usepackage[latin1]{inputenc}
    \usepackage[italian]{babel}

    % font
    \usepackage{microtype}
    \usepackage{tgpagella}
    \usepackage{tgadventor}
    \usepackage{tgcursor}
    \DeclareFontShape{T1}{qcr}{m}{n}{<->ssub*qcr/b/n}
    \DeclareFontShape{T1}{qcr}{m}{it}{<->ssub*qcr/b/it}`
    Ma il risultato è:
    `! LaTeX Error: Font family `T1+qcr' unknown.

    See the LaTeX manual or LaTeX Companion for explanation.
    Type H for immediate help.
    …

    l.16 \DeclareFontShape
    {T1}{qcr}{m}{it}{<->ssub*qcr/b/it}`

    M

    Mancava un pezzettino alla mia risposta, adesso dovrebbe funzionare.

    Ciao
    Enrico

    in risposta a: newenvironment, tabularx e newcolumntype #66849
    Up
    0
    Down
    ::

    pcgis” post=65770Buonasera a tutti.

    Forse la domanda è banale, ma non riesco a capire perchè \newcolumntype all’interno di \newenvironment produce un errore:

    `\documentclass[a4paper,10pt]{article}
    \usepackage[italian]{babel}
    \usepackage{array}
    \usepackage{tabularx}

    \newenvironment{myTable1}{%
    \tabularx{\textwidth}{>{\raggedleft}p{0.3\textwidth}|X}}%%
    {\endtabularx}

    \newenvironment{myTable2}{%
    \newcolumntype{V}[1]{>{\raggedleft}p{#1}}
    \tabularx{\textwidth}{>V{0.3\textwidth}|X}}%
    {\endtabularx}

    \begin{document}

    \begin{myTable1}
    colonna1 & colonna2
    \end{myTable1}
    %
    \begin{myTable2} %%errore
    colonna1 & colonna2
    \end{myTable2}

    \end{document}`

    Perchè se uso la definizione di myTable2 ottengo un errore? Dove sbaglio?

    Il problema è che stai definendo un nuovo comando all’interno di una definizione di un nuovo comando (forse non sembra, ma è così). In effetti \newenvironment{xyz}[n]{Inizio}{Fine}` definisce \xyz e \endxyz: la parte “Inizio” è quella che definisce \xyz con n argomenti, mentre la parte fine definisce \endxyz che è sempre un comando senza argomenti. Analogamente, \newcolumntype{V}[n]{testo} definisce un comando interno \NC@find@V con n argomenti.

    Quando si definisce un comando con argomenti \yyy all’interno della definizione di un altro comando \xxx, i parametri per \yyy devono essere indicati raddoppiando i simboli #:
    `\newcommand\xxx{\newcommand\yyy[1]{fa' qualcosa con ##1}}`
    Lo stesso vale nel tuo caso:
    `\newenvironment{myTable2}{%
    \newcolumntype{V}[1]{>{\raggedleft}p{##1}}%
    \tabularx{\textwidth}{V{0.3\textwidth}|X}}%
    {\endtabularx}`
    anche se mi sembra una perdita di tempo:
    `\newenvironment{myTable2}
    {\tabularx{\textwidth}{>{\raggedleft}p{0.3\textwidth}|X}}
    {\endtabularx}`
    fa esattamente la stessa cosa.

    (Nella tua definizione manca un % e c’è un > di troppo.)

    Ciao
    Enrico

    in risposta a: [Risolto] Installazione MathTime Professional 2 – TL2011 #66846
    Up
    0
    Down
    ::


    Questo succede tipicamente quando, per qualche sconosciuto motivo, si è dato un comando updmap (non updmap-sys).

    TeX Live legge il primo file pdftex.map che trova e se ce n’è uno in ~/.texlive2011 prende quello (sul quale updmap-sys non agisce mai).

    Ciao
    Enrico

    in risposta a: revisioni finali: quali strumenti usare? #66806
    Up
    0
    Down
    ::

    ivan” post=65758Vorrà dire che non userò più \hfuzz \hbadness e \vbadness 🙁

    Puoi mettere \hbadness=10000 e \vbadness=10000, se non vuoi messaggi oltre quelli di Overfull, ma stai semplicemente nascondendo le scoasse sotto il tappeto (scoasse = spazzatura, ndr). Una “badness” di 2000 è certamente eccessiva in una \hbox, visto che corrisponde a uno “stretch factor” di 2.71; con Computer Modern a corpo 10 questo significa che lo spazio tra le parole diventa, in punti,

    3.33 + 1.67*2.71 = 7.86

    (3.33pt è il normale spazio tra parole, 1.67pt è la quantità disponibile per l’allargamento, che viene moltiplicata per lo “stretch factor”).

    Con badness=1000, lo spazio tra parole è circa 6.9pt, più accettabile perché è solo poco più del doppio dello spazio “ottimale”.

    Nota TeXnica. Lo “stretch factor” si ottiene dividendo la “badness” per 100 ed estraendo la radice cubica. Se la badness è minore di 100, il valore può anche corrispondere allo shrink factor; TeX non strizza mai uno spazio oltre il massimo disponibile, quindi lo shrink factor non può mai essere maggiore di 1.

    Ciao
    Enrico

    in risposta a: Corrispondenza tocloft/memoir #66815
    Up
    0
    Down
    ::

    antonio.macrì” post=65753Cosa mi consigli sul liberare la memoria? (La richiesta deriva anche da una mia “deformazione professionale” che mi suggerisce il principio dell’information hiding: nascondere (cancellare) i comandi usati internamente, principio che il LaTeX è piuttosto blando.)

    Non mi preoccuperei; la quantità di memoria a disposizione con le distribuzioni moderne mette al sicuro da rischi: non sono una trentina di comandi che danno fastidio.

    In ogni caso, la strategia migliore è quella di scegliere una delle due sintassi e lavorare con quella; supponiamo tu voglia quella di tocloft:
    `\ifcth@memoir
    \let\cftbeforechapskip\cftbeforechapterskip
    …
    \fi`
    In altre parole definisci una tabella di equivalenze e lavori con i comandi di tocloft. Occupazione di memoria minima e sintassi invariata. Puoi anche ideare facilmente una “metatabella”.

    Ciao
    Enrico

    in risposta a: revisioni finali: quali strumenti usare? #66803
    Up
    0
    Down
    ::

    ivan” post=65745Ciao a tutti

    In sede di revisione finale ci si trova spesso a controllare il file .log per eliminare gli overfull e gli underfull box.

    Qual è la strategia migliore da seguire secondo la vostra esperienza.

    1) In alcuni casi, gli overfull box potrebero andarci bene. Per esempio una tabella che sborda ma che rimane entro lo spazio delle note a margine.
    In questo caso esiste un modo per far sì che nel .log, un particolare overfull box non venga segnalato?

    `\makebox[\textwidth][l]{%
    \begin{tabular}{…}
    …
    \end{tabular}}`

    ivan2) Qual è il valore consigliato per i tre parametri (ho indicato quelli che uso io attualmente)
    `\hfuzz=1.5pt
    \hbadness=2000
    \vbadness=2000`
    ?
    Nel secondo caso, è sottointeso, usando microtype.

    `\hfuzz=0.1pt
    \hbadness=1000
    \vbadness=1000`
    Cioè i valori di default. 🙂

    ivan3) C’è un modo per dire a LaTeX di non andare a capo con una sola sillaba?
    Per esempio:

    nel mezzo del cammin di nostra vi-
    ta.

    E se sì ha senso o sono maggiori gli svantaggi?

    `\addto\extrasitalian{\italianhyphenmins{3}{4}}`
    Non vedo il grande vantaggio.

    ivan4) Se si va a capo in un titolo di sezione con \\, nel .log appare questo Warning:
    `Package hyperref Warning: Token not allowed in a PDF string (Unicode):
    (hyperref) removing `\\' on input line 5.
    `
    Il comando di hyperref:
    `\textorpdfstring{codicepertesto}{codiceperpdf}`
    non funziona, nemmeno se preceduto da \protect. Funziona però all’interno di
    \addcontentsline.

    Sicuro? Il comando è \texorpdfstring e \section{Un titolo di sezione\texorpdfstring{\\}{ }molto lungo} funziona certamente.

    ivan5) Per sistemare problemi di riempimento verticale e/o orizzontale si usano spesso gli automatismi:
    `\enlargethispage{}`
    e
    `
    \looseness=

    `

    Non potrebbe essere resa automatica questa scelta? Stavo pensando a un pacchetto (inesistente?) che in base ai valori di \vbadness
    automaticamente allarghi la pagina precedente a quella che ha l’underfull vbox. Naturalmente in tal caso l’allargamento dovrebbe essere segnalato.
    Visto che LaTeX fa molte scelte al posto nostro, perché non permettergli di scegliere, entro certi limiti, quali pagine allargare o restringere di una riga per migliorare il riempimento?

    Automatismi?

    No, non si può. Quando una pagina è uscita non ci si può più fare niente. E la scelta di quali pagine (o capoversi) allungare o accorciare non può essere automatica.

    Ciao
    Enrico

    in risposta a: Grassetto di default per un solo font #66793
    Up
    0
    Down
    ::

    samiel” post=65737Esiste un’opzione come
    `\usepackage[bfseries]{tgcursor}`
    (che ovviamente in tale forma non esiste)
    per impostare il font in questione di default in grassetto?

    No. Supponendo che tu usi la codifica di output T1 puoi scrivere, dopo aver caricato tgcursor
    `\sbox0{\fontsize{1}{1}\ttfamily x} % facciamo leggere il .fd relativo e carichiamo una versione innocua del font
    \DeclareFontShape{T1}{qcr}{m}{n}{<->ssub*qcr/b/n}{}
    \DeclareFontShape{T1}{qcr}{m}{it}{<->ssub*qcr/b/it}{}`
    Ciao
    Enrico

    in risposta a: problema con inputenc, dopo aver suddiviso il codice #66776
    Up
    0
    Down
    ::


    Evidentemente hai registrato i tuoi file secondari con una codifica diversa da UTF-8

    Che editor usi?

    Ciao
    Enrico

    in risposta a: [RISOLTO] allineamento verticale del testo con \multirow #66711
    Up
    0
    Down
    ::

    marcob8986″ post=65644Ciao a tutti,
    sto incontrando un problema nella creazione di una tabella.
    premetto che ho cominciato ad usare LaTeX da poco, ma ci ho scritto una tesina di una 90ina di pagine per un progetto di un esame universitario con ottimi risultati.
    Ora sto imbastendo la mia tesi di laurea, e sono partito per tempo 😀
    Utilizzo TexShop su un Mac, direi aggiornato all’ultima versione in quanto faccio gli aggiornamenti con TexLiveUtility regolarmente.
    veniamo al problema: qui c’è il codice che utilizzo e un immagine del risultato che ottengo per capirci meglio.
    `\begin{table}[htb]\footnotesize % tab. problemi operation
    \caption{Problemi relativi alla gestione operativa di un magazzino}
    \renewcommand{\tabularxcolumn}[1]{m{#1}}
    \begin{tabularx}{\columnwidth}{XXX}
    \toprule
    \multicolumn{2}{c}{\textsc{Problemi di gestione operativa del magazzino}} & \multicolumn{1}{c}{\textsc{Decisioni}} \\ \midrule
    \multicolumn{2}{c}{Ricevimento e spedizione} & %
    \begin{itemize}
    \item assegnamento camion/piazzola
    \item assegnamento ordine/camion
    \item schedulazione partenze camion
    \end{itemize}\\ \midrule
    \multirow{3}{*}{Immagazzinamento} %
    & Assegnamento SKUs ai reparti & {%
    \begin{itemize}
    \item assegnamento SKUs ai diversi reparti
    \item allocazione dello spazio
    \end{itemize} }\\ \cmidrule{2-3}
    & Suddivisione in zone & {%
    \begin{itemize}
    \item assegnamento SKUs alle zone
    \item assegnamento operatori alle zone
    \end{itemize} }\\ \cmidrule{2-3}
    & Assegnamento ubicazioni di magazzino & {%
    \begin{itemize}
    \item SLAP
    \item specifica di classi di prodotti
    \end{itemize} }\\ \midrule
    \bottomrule
    \end{tabularx}
    \label{tab_operation}
    \end{table}`
    Click for large view – Uploaded with Skitch
    come vedete la scritta “immagazzinamento” non è centrata verticalmente tra le righe che “spanna” il comando multirow.

    Io risolvo i problemi di \multirow semplicemente non usandolo. Metti “Ricevimento e spedizione” allineato con la prima riga: vivrai più felice e avrai tabelle migliori. 🙂

    Ciao
    Enrico

    in risposta a: numeri decimali e siunitx #66714
    Up
    0
    Down
    ::

    claudio” post=65657devo scrivere dei numeri decimali ed per questo ho pensato a siunitx
    delegando a lui la formattazione
    `
    \documentclass[10pt,a4paper]{book}
    \usepackage[utf8]{inputenc}
    \usepackage{amsmath}
    \usepackage{amsfonts}
    \usepackage{amssymb}
    \usepackage[italian]{babel}
    \usepackage{siunitx}
    \sisetup{
    output-decimal-marker = {,}
    }
    \begin{document}
    \[\frac{3}{10}=\num{0,3}\]
    \num{10000000.10000001}
    \end{document}
    `
    e questo mi ha portato a sbagliare come mi hanno già fatto notare
    e a introdurre
    `
    \sisetup{
    output-decimal-marker = {,}
    }
    `
    e con questo ho risolto il problema dei decimali finiti
    ma come si formatta un numero decimale periodico con siunitx?
    non sono riuscito a trovare nulla
    tranne che
    `
    \[\dfrac{7}{9}=0,77777777\cdots=0,\overline{7}\]
    `
    che non usa siunitx
    che fare?
    saluti
    claudio

    Quante volte mai dovrai scrivere un numero del genere? Poche.
    `0{,}\overline{7}`
    Ciao
    Enrico

Stai visualizzando 15 risposte – dal 2,656 al 2,670 (di 13,205 totali)

Go to top▲