Risposte nei forum create
-
AutoreRisposte
-
::
DMW\negreg9\n
[quote][quote]Ora avviene il miracolo: si può fare tutto senza alcun calcolo!`\newcommand{\bigcupdot}{%
\mathop{%
\vphantom{\bigcup}%
\mathpalette\setbigcupdot\cdot}\displaylimits}
\newcommand{\setbigcupdot}[2]{\ooalign{\hfil$#1\bigcup$\hfil\cr\hfil$#2$\hfil\crcr}}`Purtroppo quei comandi non so nemmeno cosa fanno. Se me lo spieghi di sicuro ci capisco qualcosa.
Voglio chiederti un’altra cosa collegata a questo topic, ho usato il pacchetto exscale e relsize per mettere una sommatoria un po’ più grandicella, però noto che il simbolo è spostato un po’ in alto rispetto alla linea della frazione. Mi portresti dire,se esistono, i comandi, simili a kern o mkern, che spostano i simboli in verticale?
Risposta all’ultima domanda: no, bisogna farlo a manina. Forse però non usi correttamente i comandi relativi; bisognerebbe vedere un esempio.
Veniamo a \bigcupdot: il primo comando serve a dire che il simbolo che costruiamo è un operatore, del tipo della sommatoria, per mettere a posto le spaziature.
Poi dico che il simbolo deve avere altezza e profondità (rispettivamente quanto va sopra e sotto la linea di base) almeno come \bigcup; altrimenti bisognerebbe fare un paio di giochetti in più dopo.
A questo punto chiamo la macro miracolosa: \mathpalette\setbigcup\cdot. \mathpalette vuole due argomenti, e viene espanso come`\mathchoice{#1\displaystyle{#2}}{#1\textstyle{#2}}
{#1\scriptstyle{#2}}{#1\scriptscriptstyle{#2}}`A sua volta, \mathchoice è una primitiva di TeX che sceglie l’argomento numero n (n=1,2,3,4) se la formula da comporre è in \displaystyle (1), \textstyle (2), eccetera.Supponiamo di essere in \displaystyle, per gli altri è analogo: TeX “vede” la sequenza \setbigcupdot\displaystyle{\cdot}.
Ma \setbigcupdot è una macro con due argomenti! Quindi il tutto è espanso come`\ooalign{\hfil$\displaystyle\bigcup$\hfil\cr\hfil$\cdot$\hfil\crcr}`Che fa \ooalign? Be’, in soldoni costruisce un array di una sola colonna, ma le varie celle sono tutte sovrapposte. Con gli \hfil prima e dopo posso centrare il contenuto di ciascuna cella, che è esattamente ciò che desideravo. Qui non si può usare \\ per finire le righe, ma occorre il comando primitivo che è \cr; il \crcr è una finezza stilistica 😀
A questo punto occorrerebbe spiegare com’è definito \ooalign, ma direi che per oggi può bastare.8)
Ciao
Enrico
::Ora avviene il miracolo: si può fare tutto senza alcun calcolo!`\newcommand{\bigcupdot}{%
\mathop{%
\vphantom{\bigcup}%
\mathpalette\setbigcupdot\cdot}\displaylimits}
\newcommand{\setbigcupdot}[2]{\ooalign{\hfil$#1\bigcup$\hfil\cr\hfil$#2$\hfil\crcr}}`
Ammira 😆 \mathpalette e \ooalign: sono orgoglioso di me stesso 😀Finalmente, perché ci hai messo tanto?:D Stavo aspettando e pensavo: “perché Enrico non si da una mossa e mi toglie dai casini?” 😀
Trentacinque minuti ti sembrano tanti?:D
Analisi del problema, modifica della prima approssimazione con il ritorno indietro, idea luminosa 💡 di usare \ooalign e \mathpaletteAvevi mai sentito nominare questi comandi? 8)
Ciao
Enrico
::Purtroppo il puntino non mi viene al centro, ma tutto spostato a sx. Ho fatto anch’io personalmente alcuni tentativi (cambiando il valore dopo \mkern) ma non c’e’ verso di farlo stare al centro: o sta troppo a dx o troppo a sx (non e’ una considerazione politica… :D). Per curiosita’, cos’e’ mkern? e cambiando la posizione giocando sui “mu”, essa resta indipendente dalla dimensione del carattere?
Hai ragione sul “mu”: è un’unità di misura che dipende dai caratteri e quindi puoi usare la stessa definizione in tutti i corpi (10, 11 o 12 punti)
Per fare le cose a modino, ci vuole un po’ più di fatica 😀
`\newcommand{\setbigcupdot}[1]{%
{\bigcup}\mkern -#1mu\hbox to0pt{\hss$\cdot$\hss}\mkern#1mu}
\newcommand{\bigcupdot}{%
\mathop{\mathchoice{\setbigcupdot{10}}{\setbigcupdot{7.5}}{}{}}%
\displaylimits}`
I valori 10 e 7.5 li ho calcolati “a vista”. Si potrebbe fare di meglio, accontentati 😀E non usare quel simbolo come pedice o esponente; se proprio dovessi, calcolati il valore corretto mettendolo nella prima coppia di graffe vuote.
Come funziona? Il primo comando definisce il simbolo, ma lascia spazio per un parametro che ci verrà utile dopo.
(1) Un \bigcup come simbolo ordinario (è tra graffe)
(2) Si “torna indietro” di un po’
(3) Un \cdot in modo che non occupi alcuno spazio
(4) Si va avanti di quanto si era tornati indietroIl secondo comando costruisce effettivamente il simbolo, in modo diverso se siamo in \displaystyle, \textstyle, \scriptstyle o \scriptscriptstyle (non lo costruisco negli ultimi due stili) scegliendo il parametro opportunamente. Dico che è un operatore (\mathop) e che in \displaystyle deve avere i limiti sopra e sotto (\displaylimits)
Ora avviene il miracolo: si può fare tutto senza alcun calcolo!`\newcommand{\bigcupdot}{%
\mathop{%
\vphantom{\bigcup}%
\mathpalette\setbigcupdot\cdot}\displaylimits}
\newcommand{\setbigcupdot}[2]{\ooalign{\hfil$#1\bigcup$\hfil\cr\hfil$#2$\hfil\crcr}}`
Ammira 😆 \mathpalette e \ooalign: sono orgoglioso di me stesso 😀Ciao
Enrico
::un problemino banale a cui non riesco a trovare risposta: in un’articolo ho una lista che mi rimaneva unita fino a che era l’ultimo elemento. Ho aggiunto poche righe ed a quel punto l’ultimo elemento della lista è stato buttato sull’altra pagina, con un effetto per niente bello. Esiste un modo semplice per tenere unita la lista?
Sei andato a comperare il vino alla solita azienda agricola; le solite tre damigiane da 54 litri (un mesetto di autonomia :D). Imbottigli il vino e allinei le bottiglie sulla scaffalatura in cantina, riempiendola a puntino. Qualche giorno dopo ripassi davanti all’azienda agricola e scopri che offrono a un prezzo conveniente il loro famoso Pinot grigio. Ne prendi una damigianetta da 20 litri. Sugli scaffali però le bottiglie non ci stanno, quindi le metti da un’altra parte.
Lo stesso con la tua lista; se non ci sta non ci sta. Come fare? Se tutto ciò che ti serve è una riga in più, puoi usare \enlargethispage{\baselineskip}. Se no puoi provare a rimaneggiare il testo: è un’ottima occasione per esercitare l’arte della sintesi, eliminando parole inutili.
Ah! “un articolo”, senza apostrofo. E, già che ci sono, sulla tua pagina web campeggia in bella evidenza un “pò” che stona alquanto, non trovi?
Ciao
Enrico
::non c’e’ un modo per non dovergli plassare lo schema con i parametri, e metterglielo direttamente dentro la definizione dell’ambiente? ho provato a metterglieli come default ma prova ad interpretarli lo stesso…
Era il mio sospetto: che tutte le tabelle avessero lo stesso trattamento. Non hai pensato allora a definirti \OpLine fuori dall’ambiente? Ma, sinceramente, ritengo di gran lunga superiore il metodo che ti ho proposto; non vedo molta differenza fra scrivere
`\Opline{uno}{due}{tre}`e`uno & due & tre \\`
Comunque il modo c’è:`\newenvironment{pippo}{
\newcommand{\pluto}[2]{Grazie a ##1, ##2}
}{}
\begin{pippo}
\pluto{te}{Enrico}
\end{pippo}`Perché qui ci voglia ## e nell’altro caso un solo # è per questioni TeXniche.Ciao
Enrico
::No.non sono variabili.
Se io voglio scrivere”Utilizzo due filtri,G_x e G_y per calcolare……..voglio che le variabili siano solo g_x e G_y,non anche”voglio che…”
Capisci?
Tuttto il testo che segue mi viene messo come apice basso..e non riesco a capire come correggere.
grazieE ottieni anche un messaggio di errore, vero? 😀
Le formule matematiche vanno scritte “protette” dall’esterno con $…$: dunque $G_{x}$. Prova e stupisci. Poi prenditi una guida e leggila. Trovi un riferimento a un buon manuale introduttivo su questa stessa pagina, in alto.
Ciao
Enrico
::salve a tutti ^_^ anche io, come molti altri, mi sono finalmente avvicinato a questo meraviglioso strumento, e da bravo programmatore mi ci sto trovando molto bene ^_^
ma veniamo al problema:
io sto scrivendo un documento che contiene molte tabelle e grafici tutti molto simili, volevo quindi crearmi un nuovo ambiente per non star sempre a riscrivere le solite 10 righe per ogni tipo di tabella che di solito scrivo cosi:`\begin{table}[!ht]
\newcommand{\opLine}[4]{(#1) & \{#2\} & \{#3\} & #4\\}
\centering
\begin{tabular}{ l l l l }
\hline
\multicolumn{4}{c}{\textbf{titoloTabella}} \\
\hline
\hline
\opLine{robba}{robba}{altrarobba}{ancorarobba}
…..
\opLine{robba}{robba}{altrarobba}{ancorarobba}
\hline
\end{tabular}
\end{table}`mentre mi piacerebbe scrivere cosi:`\begin{tabellaMia}
\opLine{robba}{robba}{altrarobba}{ancorarobba}
…..
\opLine{robba}{robba}{altrarobba}{ancorarobba}
\end{tabellaMia}`per fare cio mi sono creato un nuovo ambiente fatto cosi:`\newenvironment{tabellaRollfoward}
{
\begin{table}[!ht]
\centering
\begin{tabular}{ l l l }
\hline
\multicolumn{3}{c}{\textbf{titolotabella}} \\
\hline
\hline
}
{
\hline
\end{tabular}
\end{table}
}`e questo compila e funziona perfettamente, ma non mi mette a disposizione il comando opLine che mi fa fatica ridefinirmi tutte le volte localmente, se provo ad inserire la riga:`\newcommand{\opLine}[3]{(#1) & \{#2\} & #3\\}`al suo posto mi da un errore nei parametri, probabilmente riconosce i vari #n come parametri dell’ambiente, che non ha, e quindi implode, mentre in realta sono parametri della opLine. c’e’ un modo per dirgli che sono parametri della opLine e non dell’ambiente? e’ possibile creare un comando che funziona soltanto in un particolare ambiente?`
\newenvironment{tabellaRollfoward}[3]
{
\begin{table}[!ht]
\newcommand{\OpLine}[#2]{#3}
\centering
\begin{tabular}{ l l l }
\hline
\multicolumn{3}{c}{\textbf{#1}} \\
\hline
\hline
}
{
\hline
\end{tabular}
\end{table}
}`Puoi usarlo così:`\begin{tabellaRollfoward}{Titolo tabella}{3}{$#1$ & $#2$ & #3\\}
\OpLine{a}{b}{c}
\end{tabellaRollfoward}`Il parametro numero uno è il titolo della tabella, il numero due è il numero di argomenti, il tre è ciò che devi fare ai vari elementi. In realtà, se tutto ciò che vuoi è di trattare alcune colonne come composte in modo matematico, c’è molto meglio a disposizione: il pacchetto array.`\usepackage{array}
\newcolumntype{L}{>{$}l<{$}}` In questo modo`\begin{tabular}{LLl}`produce una tabella con le prime due colonne in modo matematico e allineate a sinistra. Ciao Enrico::Ciao a tutti!
Sto scrivendo la tesi in latex e spesso mi capita di dover mettere 2 immagini con la stessa figura usando \subfigure, come qui sotto`\begin{figure}[htbp]
\centering%
\subfigure{%
\label{fig:S8261-Package}%
\includegraphics[width=3cm]{immagini/S8261-Package.eps}%
}%
\qquad%
\subfigure{%
\label{fig:S8261-SchemaABlocchi}%
\includegraphics[width=10cm]{immagini/S8261-SchemaABlocchi2.eps}%
}%
\caption[Protezione per batterie al litio]{S-8261: \textit{pinout} e schema a blocchi}%
\label{fig:S-8261}
\end{figure}`purtoppo però le 2 subfigure vengono allineate verticalmente in basso. C’è un modo per allinearle al centro?Il pacchetto subfigure fa di proposito quell’allineamento, in modo da allineare correttamente le sottodidascalie. Se vuoi proprio allineare le figure al centro, racchiudi ciascun \includegraphics in una minipage:`\subfigure{%
\label{fig:S8261-Package}%
\begin{minipage}{3cm}\noindent
\includegraphics[width=3cm]{immagini/S8261-Package.eps}%
\end{minipage}%
}%`Se però non metti alcuna sottodidascalia (argomento opzionale a \subfigure), che te ne fai delle \label alle sottofigure? E se le metti, te le trovi non allineate. Quindi… 😀Ciao
Enrico
::Salve a tutti,
Per sostenere alcuni esami nella mia università spesso ci troviamo a dover consegnare delle relazioni di progetto per dei casi di studio. Per queste relazioni, la prassi è di consegnarle con un frontespizio semi standard che tutti realizzano con word openoffice etc…
Io vorrei realizzarlo con latex e seguendo le indicazioni di alcune guide e di alcuni post trovati qui sono riuscito ad ottenere pressochè quello che voglio, almeno a livello di posizione dei blocchi di testo. `\begin{titlepage}\begin{center}
%% Intestazione %%%%%%%%%%%%%%%
\huge
Nome Università \\
% ci starebbe bene una linea spessa 2pt
\vspace{0.5cm}
\LARGE
Corso di Laurea \\
\vspace{0.5cm}
Esame \\
\textit{Docente: Prof. Mario Rossi} \\
\vspace{3cm}
%% Titolo %%%%%%%%%%%%%%%%%%%%%
\Huge
Titolo relazione caso di studio \\
\vspace{0.5cm}
\large
sottotitolo
\end{center}
\vspace{9cm}
%% Autori %%%%%%%%%%%%%%%%%%%%%%
\large
Nome e cognome studente 1 \textit{mat.~xxxxxx}\\
Nome e cognome studente 2 \textit{mat.~xxxxxx}
\end{titlepage}`Mi rendo conto che e venuta fuori un po’ “roba da chiodi…”
A me il frontespizio sembra un po’ sbilanciato a sinistra (cioè lascia molto spazio a destra), la posizione del testo va benissimo così ma credo che si possa migliorare, a partire da una riga sotto il nome dell’università che non saprei come inserire.
Se possibile vorrei suggerimenti per migliorare questo frontespizio, e credo che si possa migliorare parecchio
La documentclass che uso è `\documentclass[a4paper,11pt,twoside]{report}`Prova a modificarti questo
`\documentclass[a4paper,titlepage]{report}\begin{document}
\begin{titlepage}
\centering{\LARGE\bfseries Universit\`a degli Studi di Milano\par}
\vspace{1ex}
\hrule height 2pt % ma 2 pt è troppo!
\vspace{1ex}
FACOLT\`A DI SCIENZE MATEMATICHE FISICHE E NATURALI\\
Corso di Laurea in Fisica\\\vspace{4cm}
{\huge \bfseries Quantum transport \\ in carbon nanotubes\par}\vspace{6cm}
\begin{tabular*}{\textwidth}{@{}l@{\extracolsep{\fill}}l@{}}
Tesi di Laurea di: & Relatore:\\
\textbf{Nome Cognome} & \textbf{Nome Cognome}\\
\textbf{Matricola: 1213456} & Correlatore:\\
& \textbf{Nome Cognome}
\end{tabular*}\vspace{\fill}
\hrule
\vspace{1ex}
\textbf{Sessione III}\textbf{Anno Accademico 2004-2005}
\end{titlepage}`Ciao
Enrico
::grazie! 😀
Vorrei intervenire non per contraddire Lapo, ma per consigliare un modo migliore di ottenere il risultato voluto.
`\usepackage{array}`nel preambolo e poi`\[
\begin{array}{|*{2}{>{\displaystyle\rule[-4ex]{0pt}{9ex}}l|}}
\hline
\dd x x^\alpha=\alpha x^{\alpha-1} & \int x^\alpha\dx=\frac{x^{\alpha+1}}{\alpha+1}+c \\ \hline
\dd x e^x=e^x & \int e^x\dx=e^x+c \\ \hline
\dd x \sin x=\cos x & \int\sin x\dx=-\cos x+c \\ \hline
\dd x \cos x=-\sin x & \int\cos x\dx=\sin x+c \\
\hline
\end{array}
\]`Il risultato è certamente migliore di quello che ottieni nell’altro modo. Ma, a questo punto, perché non provi a eliminare quelle linee (verticali e orizzontali) che non servono a nulla? In particolare le linee verticali, la linea orizzontale iniziale e quella finale.Ciao
Enrico
::scusa ancora, ho visto che tu ci hai messo un vspace … volendo fare il raffinato ho pensato di usare il vfill … ma non ottengo il risultato voluto.`\begin{figure}[p]
\centering
\includegraphics[width=0.9\textwidth]{Potenza250.pdf}
\caption{250 \potenza vs 125 \potenza}
\label{fig:250mw}\null
\vfill
\captionof{table}{250 \potenza — eigenvalue evolution}
\label{tab:250mw}
\begin{tabular}{r|cc|cc}
:
:
\end{tabular}
\null
\end{figure}`ho anche provato senza i null e con il primo null subito dopo begin{table} ma non sono soddisfatto cioe` non funziona.No, non può funzionare; l’ambiente figure crea una “scatola” della grandezza richiesta e non c’è modo di dirgli (se non a mano) di riempire più spazio. Il \vfill dice solo di riempire di bianco tutto lo spazio disponibile, ma non ne crea di per sé.
Il \null è un trucchetto che andrebbe abolito, soprattutto nei manuali di introduzione. La costruzione \null\vfill serve per inserire uno spazio che si possa espandere all’inizio di una pagina. Infatti TeX, quando emette una pagina, scarta tutti gli spazi che trova all’inizio della successiva; il \null non è uno spazio, quindi non viene scartato.
In quei casi è meglio usare \vspace*{\fill} che è equivalente e non viene scartato. Ma, se te la senti di usare primitive di TeX, una soluzione c’è:`\begin{figure}[p]
\vbox to\textheight{
\vspace*{\fill}
\includegraphics{…}
\caption{…}
\vspace{\fill}
\begin{tabular}{…}
…
\end{tabular}
\captionof{table}{…}
\vspace*{\fill}
}
\end{figure}`Sostituisci \fill con \stretch{} se vuoi un maggiore controllo. Ciao
Enrico
::`\begin{tabular}{|>{\centering\hspace{0pt}}m{1cm}
|>{\centering\hspace{0pt}}m{1cm}
|>{\centering\hspace{0pt}}m{1cm}|}
\hline
mare & sole & luna \\
\hline
\end{tabular}`Così sarebbe perfetto però a me da un errore di \noalign e non so perché e non so che significa.
…Il problema, che è esposto chiaramente nella documentazione di array, è che \centering ridefinisce \\ (per ottimi motivi). Hai due alternative. La prima è di scrivere`>{\centering\arraybackslash\hspace{0pt}}m{1cm}`La seconda è di usare \tabularnewline per terminare la cella. Userai la prima se non devi dare “a capo” espliciti nelle celle, dovrai servirti della seconda (leggermente più scomoda) altrimenti.
Naturalmente, se devi usare molti allineamenti di quel tipo, ti conviene definirti un nuovo specificatore di colonne:`\newcolumntype{M}[1]{>{\centering\hspace{0pt}}m{#1}}`in modo da specificare la tabella di prima con`\begin{tabular}{|*{3}{M{1cm}|}}
\hline
mare & sole & luna \tabularnewline
\hline
\end{tabular}`Ciao
Enrico
::Ciao a tutti! 🙂
Sto scrivendo la mia tesi di dottorato in inglese, usando LaTeX.
Alla fine di un paragrafo vorrei inserire il riferimento bibliografico ad un paio di libri, specificando pure i capitoli di uno dei due libri. Tenendo conto che LaTeX mi da’ [1, 2], quello che mi e’ venuto naturale ottenere come risultato e’: [1, 2, ch. 2, 6] aggiungendo l’opzione [ch. 2, 6] al relativo comando \cite.
Capite anche voi che l’interpretazione e’ piuttosto ambigua, in quanto c’e’ solo un tipo di separatore, cioe’ la virgola. Si potrebbe intendere indifferentemente item 1 e 2 (capitoli 2 e 6 del secondo item), cosi’ come item 1, 2 (capitolo 2) e 6. 😕
Inoltre, non avrei la minima idea di come fare se volessi specificare i cap anche per il riferimento 1! 😕 😕
Qual e’ il modo migliore per risolvere il problema?
Io proporrei [1; 2, ch. 2, 6] (ma in questo caso potrebbe essere non cosi’ semplice ottenere il “;”, visto che vorrei mantenere la virgola tra gli item della bibliografia quando non viene specificato alcun capitolo) o piu’ chiaro ancora ed immediato da capire [1], [2, ch. 2, 6].
Oppure c’e’ qualche altro modo piu’ appropriato?
Gia’ che ci sono, spaziatura e “ch” sono corretti (nessuna s del plurale in “ch”?) ?Grazie
MatteoSee [1] and [2], in particular Chapters 2~and~6 of the latter.
Le notazioni che proponi sono troppo ambigue. In genere, meglio evitare le abbreviazioni.
Ciao
Enrico
::Ciao a tutti,
sto scrivendo la tesi di laurea.
Leggendo qua e la nel forum ho trovato una idea che ho pensato di applicare e il risultato mi piace: nella mia tesi ho delle tabelle con i risultati delle mie simulazioni numeriche e dei grafici degli gli stessi risultati (trovo il confronto visivo utile, almeno nel mio caso), l’idea e` inserire sia l’immagine che la tabella nello stesso ambiente flottante, che posiziono facilmente con il parametro opzionale [p], il risultato visivo mi piace inquanto la pagina a4 risulta di dimensioni corrette per ospitare il grafico e i valori numerici.
Ma ho un problema e un dubbio. Il dubbio deriva dal fatto che la procedura che sto utilizzando e` parecchio macchinosa e quindi sto cominciando a pensare che ci sia un modo piu` smart di realizzarla.
…
non c’e` una procedura piu` furba o meno scema di quella che sto seguendo per raggiungere il medesimo risultato??C’è 😀 usando il pacchetto caption. Pagina 39 della Breve guida ai pacchetti di uso più comune
`\begin{figure}[p]
\centering
\includegraphics[…]{…}
\caption[Argomento per la lof]{Didascalia per la figura}\label{…}
\vspace{…}
\begin{tabular}{…}
\captionof{table}[Argomento per la lot]{Didascalia per la tabella}\label{…}
\end{figure}`Aggiungi spaziature a piacere.Ciao
Enrico
::Ma perché mai farlo?
Immagina di dover scrivere un guida o un qualcosa sulla tipografia e vuoi spiegare cosa sono le legature, e vuoi fare un esempio senza e con. Anch’io m’ero posto il problema di farlo in LaTeX senza importare figure.
Ciao,
g
P.S.: il mio Word le legature le fa automaticamente…
Se devi mostrare l’effetto di non usare la legatura,`\mbox{af{}f{}litto}` fa esattamente ciò che vuoi. Se vuoi disabilitare una legatura in un posto particolare, Knuth fa l’esempio in inglese di “shelfful”, puoi usare`shelf\/ful`La differenza fra le due è che nella prima non si aggiunge la correzione che “stacca” le due lettere.
Quanto a M$ Word, be’: non è solo merito suo, ma dei font OpenType. Ma ci sono voluti alcuni anni perché se ne rendessero conto. Ogni volta che vedo la testata della rivista “il fisco” ho una fitta al cuore. Chi l’ha vista sa di che cosa parlo: l’occhiello della f che va a scontrarsi con il puntino della i.
Ciao
Enrico
-
AutoreRisposte