Risposte nei forum create
-
AutoreRisposte
-
::
Riprendo il topic perché ho una curiosità:
Si può generalizzare la funzione precedente che qui riporto `\newcommand{\bigcupdot}{%
\mathop{%
\vphantom{\bigcup}%
\mathpalette\setbigcupdot\cdot}\displaylimits}
\newcommand{\setbigcupdot}[2]{\ooalign{\hfil$#1\bigcup$\hfil\cr\hfil$#2$\hfil\crcr}}`
in modo da poter scvivere una istruzione tipo
`
\fusione{\bigcup}{\cdot}`Non funziona certo con tutti i simboli, ma `\newcommand{\fusione}[2]{%
\def\fusioneinn##1##2{\ooalign{\hfil$##1#1$\hfil\cr\hfil$##2$\hfil\crcr}}%
\mathop{%
\vphantom{#1}%
\mathpalette\fusioneinn\cdot}\displaylimits}`dovrebbe fare al caso tuo.Ciao
Enrico
26 Aprile 2006 alle 16:11 in risposta a: Maiuscoletto dentro (o fuori?) dall’ambiente matematico #8795::Ciao a tutti,
dovrei scrivere un documento contentente lo pseudocodice di alcuni algoritmi (per la stesura dei quali uso il pacchetto algorithmic) in cui il nome delle procedure e della costante speciale “Nil” vengono scritti in maiuscoletto. Fino ad ora ho sempre scritto così, e non ho mai avuto problemi
`$left[x] \leftarrow$ \textsc{Nil}`
di recente, però, ho scoperto l’esistenza del documento Orrori in LaTeX: come maltrattare LaTeX e rendere infelice un copy editor e mi sono detto… gulp! Ma sto facendo le cose per bene?Il problema qui è che ho pensato solo all’aspetto visivo e non alla semantica: il valore “Nil” viene assegnato ad un puntatore, e quindi anche questo dovrebbe andare a finire “dentro” alla formula. Purtroppo, però, per rispettare questa osservazione, il codice mi verrebbe un pelino più orrendo:
`$left[x] \leftarrow \text{\textsc{Nil}}$`
In definitiva, quale sarebbe il modo corretto di scrivere questa cosa? Il maiuscoletto va dentro o fuori alla formula? E se va dentro, c’è un modo più corretto di scriverla?Ho visto anche dell’esistenza del comando \mathsc, ma non ho ancora capito come si usa (non mi va né in modalità normale, né matematica), se ha bisogno di un pacchetto e se è giusto usarlo…
Ma hai provato a scrivere `$\textit{left}[x]\leftarrow\textsc{Nil}$` che funziona benissimo?
Ciao
Enrico
::Ciao a tutti. In questo messaggio cerco di fare un riassunto di tutto il discorso, mettendo in evidenza solo i punti essenziali.
…
`
% Il comando \section viene riformattato in modo da essere scritto molto piu`
% in piccolo, come \paragraph. In piu` viene chiamata l'istruzione \clearpage
% che fornisce a chi deve svolgere l'esercizio lo spazio bianco in cui poterlo
% risolvere (a mano, dopo averlo stampato) dal momento che inserisce il testo
% dell'esercizio [la \section] successivo[a] appena alla pagina seguente; in
% questo modo, per ogni facciata c'e` un solo esercizio (a meno di consegne
% troppo lunghe).\renewcommand{\section}{\@startsection
{section}% Il nome.
{1}% Il livello.
{\z@}% L'indentazione.
{3.25ex \@plus1ex \@minus.2ex}% Lo spazio prima.
{-1em}% Lo spazio dopo.
{\normalfont\normalsize\bfseries\clearpage}} % Lo stile.\endinput`
Chi è interessato può provare a compilare per vedere la differenza con i due pacchetti.
L’ultimo dubbio che mi è venuto: se sintatticamente è corretto chiamare \clearpage dentro a \section codì direttamente oppure se si può fare di meglio; comunque, questa sarebbe solo una chicca.Nessuna obiezione sostanziale eccetto che forse, invece di una sezione per esercizio, andrebbe meglio un ambiente, che potrebbe chiamare \clearpage alla fine (se si vuole lasciare spazio) oppure niente se si vogliono stampare tutti gli esercizi uno in fila all’altro.
Il prossimo passo è di fornire opzioni a stampa.sty in modo da scegliere tra le varie possibilità.
Ciao
Enrico
::Ciao ev.
[quote]Direi che il problema è risolto quasi del tutto; purtroppo ci sono ancora dei \clearpage (almeno credo che siano questi, dando una sbirciata in book.cls) di troppo.
Ridefinisci \chapter come ti ho suggerito e ricompila.
Ti chiedo scusa, non ho specificato che la presenza dei \clearpage di troppo si avverte nella soluzione proposta da egreg9, non nella tua. Il fatto è che la sua soluzione mi era parsa più semplice, comprensibile e ad alto livello e, per queste ragioni, alla fine avrei preferito usare una versione (leggermente modificata) della sua, senza nulla togliere alla tua, che risolve il mio problema alla perfezione.
Quindi, oltre alla prima distinzione che ho fatto (separare i problemi per \chapter e per \part), ne introduco qui un’altra: “soluzione egreg9” e “soluzione ev”. Per tutto questo mio messaggio mi concentrerò solo sulla “soluzione ev”, il cui corretto funzionamento si vede nel seguente esempio minimale:
`\documentclass{book}\makeatletter
\def\chapter{\@ifstar\@gobble\@capitolo@farlocco}%
\newcommand*{\@capitolo@farlocco}[2][]{\relax}%
\makeatother\begin{document}
\tableofcontents
\chapter[Titolo corto]{Titolo luuuuuuuungo}
Uno, uno, uno\dots
\chapter*{Titolo senza numero}
Due, due, due\dots
\end{document}`
Per dimostrare (solo a me stesso) di avere imparato qualcosa da tutti e due, modifico il tuo codice eliminando il \relax nella tua definizione
`\makeatletter
\def\chapter{\@ifstar\@gobble\@capitolo@farlocco}%
\newcommand*{\@capitolo@farlocco}[2][]{}%
\makeatother`
dal momento che mi viene detto che non sempre è corretto usarlo. Pare che non vi siano effetti collaterali.mi potrebbe servire “azzerare” anche \part
Idem come sopra, ma te lo lascio come esercizio
Volentieri. Tenendo presente che non so cosa facciano ne’ \@ifstar (anche se immagino che abbia a che fare con la variante non numerata di un qualsiasi comando) ne’ \@gobble, e che non capisco perché nel nuovo comando che definisci compaia il carattere chiocciola (ma su questo non occorre rispondermi perché aprirò di sicuro un post dedicato all’argomento in futuro), andando ad intuito scriverei:
`\makeatletter
\def\part{\@ifstar\@gobble\@parte@farlocca}%
\newcommand*{\@parte@farlocca}[2][]{}%
\makeatother`
Se però applico questo codice ad un esempio minimale
`\documentclass{book}\makeatletter
\def\part{\@ifstar\@gobble\@parte@farlocca}%
\newcommand*{\@parte@farlocca}[2][]{}%
\makeatother\begin{document}
\tableofcontents
\part[Parte corta]{Parte luuuuuuuunga}
Uno, uno, uno\dots
\part*{Parte senza numero}
Due, due, due\dots
\end{document}`
mi accorgo che purtroppo, come già notato con la soluzione egreg9, compare il titolo dell’indice, cosa che non vorrei. Per il resto, tutto a posto.sempre che non salti la mosca al naso anche a te al solo leggere la parola esercizio.
Al contrario, l’esercizio a me piace molto e ritengo che faccia bene, basta che si riesca ad arrivare a qualcosa di “costruttivo” 😉
Nel frattempo ho appena ordinato The LaTeX Companion, sperando che mi faccia luce in merito ai comandi misteriosi di cui sopra. Ora devo scappare, ma cercherò comunque più tardi in rete il loro significato.
P.S. se possibile, mi farebbe piacere cercare di sollevare da quei problemi anche la soluzione egreg9. Se invece (per chi ha un modello mentale perfetto di LaTeX) quella soluzione non era corretta o all’altezza (cosa di cui dubito, visto il personaggio 😉 come non detto.
P.P.S. ev scusami ancora se ti ho fatto sentire “in secondo piano”. Non era mia intenzione.
Ciao a tutti![/quote]Basta guardare il codice di book.cls e modificarlo alla buona.
`\makeatletter
\def\not@a@section{\@ifstar\@gobble\@gobbleopt}
% \def\not@a@section{\secdef\@gobbleopt\@gobble} %alternativa
\let\part\not@a@section
\let\chapter\not@a@section
\let\section\not@a@section
\newcommand\@gobbleopt[2][]{}
\makeatother`\@ifstar controlla se il comando è seguito dall’asterisco; se lo è, esegue \@gobble, altrimenti \@gobbleopt. Il primo mangia il suo argomento; il secondo mangia l’argomento obbligatorio e anche quello opzionale. Ovviamente vorrai aggiungere a \not@a@section qualche comando di spaziatura.Non dovresti avere alcun problema di indice.
Ciao
Enrico
::ho usato il seguente codice: `\subsection{Calcolo di $\tilde{P}$}`ma quando vado a compilare tutto il codice per creare il documento pdf mi compare il seguente messaggio di errore: `l.116 …lo di $\mathaccent “707E\relax {P}$}{129}`e fa riferimento al relativo file .toc.
Disattivando la compilazione dell’indice tutto il processo va a buon fine.
…Capita, qualche volta, con i cosiddetti comandi fragili; \tilde è uno di questi. La tua analisi del problema è corretta, la soluzione semplice: `\subsection{Calcolo di $\protect\tilde{P}$}`Negli argomenti dei comandi di sezione i comandi fragili vanno protetti.
Ciao
Enrico
::Non sono grande esperto di minitoc; ma hai provato a ricompilare?
ciao Enrico, evidentemente IO non sono un grande esperto di LaTeX 😳
…si’ bastava ricompilare…non due volte ma tre, anche se non ho capito perche’.I dati per compilare gli indici sono raccolti durante una compilazione e scritti su file ausiliari (quelli che ti trovi di mezzo sempre e non sai che ci stanno a fare; di solito c’è un .aux, con minitoc ce ne sono altri). Alla compilazione successiva vengono letti, ma può succedere che il nuovo indice cambi la numerazione delle pagine e così occorre una nuova compilazione. Il fatto che l’indice messo alla fine venga corretto è chiaro adesso, no?
Ciao
Enrico
::Da piccolo mi hanno insegnato ad essere educato con le altre persone, ma se non lo avessero fatto, scusa, ma mi verrebbe da chiederti se ci sei o ci fai..
Ho scritto 4 messaggi per avere un aiuto e come risposte ho ricevuto:
-Sì, è possibile. Ma temo che qui non avrai risposta finché non dimostrerai di aver capito quello che ti diciamo.
-Devi motivare molto meglio le tue obiezioni
-C’è un pacchetto apposta che aiuta a farlo (ma non ti dico quale)
-Almeno, dimostra di leggere ciò che ti scriviamoHo motivato, ho dimostrato di leggere, di avere pazienza e di sopportare l’arroganza e la supponenza delle tue risposte..
Tieni pure per te la tua conoscenza e per coloro che ritieni degni dei tuoi insegnamenti, o almeno per coloro che “dimostrano di leggere e capire” e, a tuo inappellabile giudizio, “motivano” a sufficienza..Non hai motivato proprio per niente. Non mi pare di avere dato risposte arroganti. Non dimostri di leggere ciò che ti scrivo. Nella mia prima risposta ti ho scritto che devi usare \chapter e non \part. Nella tua penultima continui a dire che non vuoi l’intera struttura \part — \subsection. Chi è che ci fa? O almeno che non legge?
Ti ho motivato per benino il motivo per il quale si sceglie di numerare le sezioni per capitolo. E ti ho chiaramente detto che, se vuoi \part, allora il titolo della parte non è rilevante per aiutare il lettore a orientarsi nel documento.
`\makeatletter
\def\@part[#1]#2{%
\ifnum \c@secnumdepth >\m@ne
\refstepcounter{part}%
\addcontentsline{toc}{part}{\thepart\hspace{1em}#1}%
\else
\addcontentsline{toc}{part}{#1}%
\fi
{\parindent \z@ \raggedright
\interlinepenalty \@M
\normalfont
\ifnum \c@secnumdepth >\m@ne
\Large\bfseries \partname\nobreakspace\thepart
\par\nobreak
\fi
\huge \bfseries #2%
\markboth{#2}{\rightmark}\par}%
\nobreak
\vskip 3ex
\@afterheading}\def\ps@headings{%
\let\@oddfoot\@empty\let\@evenfoot\@empty
\def\@evenhead{\thepage\hfil\slshape\leftmark}%
\def\@oddhead{{\slshape\rightmark}\hfil\thepage}%
\let\@mkboth\markboth
\def\sectionmark##1{%
\markright {\MakeUppercase{%
\ifnum \c@secnumdepth >\z@
\thesection\quad
\fi
##1}}{}}%
\def\subsectionmark##1{}}
\pagestyle{headings}
\makeatother`Contento? 😈Adesso però mettilo tu al posto giusto e mettici le opportune modifiche, visto che sai come deve venire fuori il tuo documento.
Quanto al fatto di “tenere per me la mia conoscenza”, ti faccio notare che questo è il mio messaggio numero 493 in questi forum. I tuoi sono 5 e tutti che dimostrano “conoscenze superiori di tipografia”. Facciamo un referendum sul forum per vedere a chi danno dell’arrogante?
Ciao
Enrico
::problema con l’indice:
il numero delle pagine mostrato dall’indice e’ sfalsato rispetto alla posizione reale nel testo
(in genere l’indice segna da una a tre pagine di scarto, in difetto).
Quali sono le cause possibili di questo problema?Non sono grande esperto di minitoc; ma hai provato a ricompilare?
Ciao
Enrico
::Scusate se (di nuovo) insisto..
Non pretendo di saperne più di voi su Latex e sicuramente vi capiterà (visto l’alto numero di messaggi con cui intervenite su questo forum) di avere a che fare con molte persone che pretendono Latex faccia per loro cose assurde.. e sicuramente io sono uno di loro.. ma per favore non tentate di convincermi che la struttura del mio documento non ha senso.
Il fatto è che la struttura completa da \part a \subparagraph semplicemente non fa al caso mio..
…Ma chi ti dice che devi usare \part? Almeno, dimostra di leggere ciò che ti scriviamo.
\part è una struttura superiore al capitolo (o alle sezioni nel caso di article).
Quello che ti serve è \chapter, \section, \subsection.
Ciao
Enrico
::Salve a tutti,
come indicato nel titolo, vorrei capire come si può ridefinire un comando con parametri in modo che non faccia niente (comando nullo).La ragione per cui vorrei fare questa cosa è un po’ lunghetta da spiegare; non ne parlo per non distogliere l’attenzione dal problema principale, comunque, se necessario, posso discuterne più avanti.
…
Il comando che vorrei ridefinire è \chapter, cioè vorrei che \chapter non facesse nulla.
…
Nel titolo ho scritto comando con parametri perché in presenza di un comando senza parametri saprei già come fare: immaginiamo che in LaTeX esista il comando \ciao, così definito:`\newcommand{\ciao}{Ciao a tutti!}`Poiché in TeX l’istruzione \relax rappresenta un’istruzione nulla, basterebbe ridefinire \ciao nel seguente modo:`\renewcommand{\ciao}{\relax}`e il problema sarebbe risolto. Purtroppo, \chapter ha un parametro obbligatorio, che è il titolo del capitolo. Questa soluzione non funziona, perché con questo codice: `\renewcommand{\chapter}{\relax}`il titolo del capitolo verrebbe comunque stampato. Come fare quindi per ovviare anche a questo problema?Il problema di \ciao si risolve meglio con `\renewcommand{\ciao}{}` che è molto più semplice; dare \relax non sempre è la soluzione corretta. Per \chapter la situazione è più complicata; ma se nel tuo documento \chapter compare sempre e solo con l’argomento obbligatorio, puoi scrivere`\renewcommand{\chapter}[1]{}` Se compare anche con l’argomento opzionale, puoi scrivere`\renewcommand{\chapter}[2][]{}`Se però usi qualche volta \chapter*, devi fare qualcosa di più complicato: `\makeatletter
\renewcommand{\@schapter}[1]{}
\renewcommand{\@chapter}[2][]{}
\makeatletter`(e nessuna delle ridefinizioni precedenti).Ah! Prima che tu lo domandi, non funziona allo stesso modo per \section.
Ciao
Enrico
::Scusate se insisto..
La struttura della classe “article” è tale che mi permette di scrivere:
`
\part{prima parte}
\section{prima sezione}
…
\section{seconda sezione}
…\part{seconda parte}
\section{terza sezione}
…
\section{quarta sezione}
…
`
Il codice generato è tale che, su una pagina ci sarà “Parte I” e subito sotto “1. Prima sezione” ecc..
All’inizio della seconda parte ci sarà: “Parte II” e sotto “3. Terza sezione”.
In pratica la numerazione delle sezioni non si resetta ad ogni cambio di “parte”.
Usando la classe report i titoli delle parti occupano una pagina a se stante e poi sono obbligato ad utilizzare la struttura completa, cioè parte/capitolo/sezione/ecc.. e questo non è quello che voglio fare..
Inoltre mi pare che, cambiando classe ed utilizzando “book” o “report” il problema rimanga, infatti -e correggetemi se sbaglio- con \leftmark viene inserito il nome del capitolo e con \rightmark il nome della sezione.
A questo punto -se quanto scrivo è vero- la domanda iniziale rimane: è possibile inserire il nome della parte?Sì, è possibile. Ma temo che qui non avrai risposta finché non dimostrerai di aver capito quello che ti diciamo.
Vuoi usare \part perché così le sezioni non si azzerano? Significa che il titolo della parte è irrilevante. A che serve averlo nella testatina se non aiuta il lettore a trovare ciò che vuole?
Il sistema di assegnare numeri alle varie parti del testo serve proprio di aiuto al lettore per orientarsi nel documento. Ora, se il tuo ipotetico lettore si trova alla parte terza, e cerca la sezione sei, dovrà andare in cerca sulle pagine destre. Se invece lo aiuti e gli dici che quello che cerca è nella seconda sezione del secondo capitolo (per esempio), gli sarà possibile consultare le testatine sia delle pagine pari che di quelle dispari.
Ripeto dal messaggio precedente: se senti quella necessità, usa report o book e \chapter invece di \part. Riazzerare il numero delle sezioni è una cosa giusta. Non sottovalutare i problemi di leggibilità: se tutti i testi tecnici fanno così, ci sarà bene un motivo; devi motivare molto meglio le tue obiezioni. 8)
Puoi provare con la classe amsbook, che è molto meno “dispendiosa”.
Ah! Dimenticavo! Si può anche evitare di azzerare la numerazione delle sezioni a ogni capitolo. C’è un pacchetto apposta che aiuta a farlo (ma non ti dico quale :D)
Ciao
Enrico
::Come ho scritto non sono esperto di Latex, ma il preambolo del mio documento riporta
`\documentclass[twoside,10pt,italian]{article}`
ed ho utilizzato più volte il comando \part{}.
Giuro che funziona.. 🙂Infatti, funziona. Ma se senti proprio il bisogno di mettere nella testatina il titolo della parte, allora usa report o book, invece di article (e \chapter invece di \part).
Ciao
Enrico
::Uso il pacchetto ‘url’ per fare in modo che gli indirizzi web si spezzino correttamente a fine riga. Ma come faccio a cambiare lo stile dell’URL? Ad esempio il font, la dimensione, il colore dell’URL?
Senza fare prove, suppongo che `\renewcommand{\UrlFont}{\color{blue}\small\ttfamily}`possa bastare.
Ciao
Enrico
::ciao!!
avrei la necessità di aumentare lo spazio tra una section e l’altra….
io ho trovato il comando : \vspace*{1.0cm} da inserire tra le section a cui voglio applicare ciò.
C’è un modo per impostare cìò all’inizio di tutto perchè questo accadda automaticamente tra tutte le section, x es, del mio articolo?Perché un centimetro? Il modo c’è, naturalmente.`\makeatletter
\renewcommand\section{\@startsection {section}{1}{\z@}%
{-10.5ex \@plus -1ex \@minus -.2ex}%
{2.3ex \@plus.2ex}%
{\normalfont\Large\bfseries}}
\makeatother`Esercizio: capire quello che c’è scritto 😀Prova a fare le misure; non è esattamente un centimetro, ma ci si avvicina molto
(a corpo 10). Meglio usare misure tipografiche come “ex” che dipendono dal corpo usato.Ciao
Enrico
-
AutoreRisposte