Risposte nei forum create
-
AutoreRisposte
-
::
lorenzo.pantieri” post=120838
Attualmente icomma mi ha permesso di risolvere il problema su tutte le decine di file e centinaia (migliaia) di numeri con una sola riga di codice. Speravo che LaTeX prevedesse una soluzione simile: una riga da mettere nel preambolo in cui si dice che il separatore decimale è la virgola. Mi sembrerebbe una soluzione logica.
Non sarebbe affatto una soluzione logica, invece.
Come ti ho spiegato, se scrivi $x,y$ LaTeX interpreta la virgola come separatore tra due numeri diversi, non come separatore decimale.
[…]
Il problema è che in Italia, e non solo, il separatore decimale è la virgola. Magari in un futuro ci adegueremo ai simboli anglosassoni…
Concordo che non è una buona idea usare la virgola sia come separatore decimale sia come interpunzione. Infatti io la uso solo come separatore decimale.
Una soluzione semplice al problema sarebbe poter indicare a LaTeX qual è il simbolo che uso come separatore decimale.
lorenzo.pantieri” post=120838
Nel codice di esempio ho usato la virgola con due significati diversi lo ho fatto per mettere in evidenza i due usi diversi della virgola (in realtà il risultato mi sembra abbastanza comprensibile).
Io non ci capirei nulla. Ma forse è un mio limite. Di sicuro, usare la virgola prima come separatore decimale e poi, subito dopo, con un altro significato non è il massimo della chiarezza…
Mi pare che si veda la differenza ma concordo con te che non è il massimo della chiarezza. Anzi confonde molto le idee quando gli alunni scrivono le stesse cose a mano dove gli spazi sono curati ancora meno che sui libri.
lorenzo.pantieri” post=120838
In “produzione” uso sempre la virgola come separatore decimale e il punto e virgola come interpunzione. Il caso tipico (più del 90% dell’uso) è nelle coordinate di un punto: `\(\left(1,5;~3,5 \right)\)`
Non è il massimo, quel codice: innanzitutto toglierei \left e \right.
Se hai moltissimi punti definiti così, è meglio definire un comando ad hoc che regoli la spaziatura.
[…]Certo, per la composizione del libro ho definito molti comandi che hanno due funzioni:
- uniformare lo stile,
- permettere facili modifiche globali.
Quindi ho anche un comando per la coppia di coordinate. Questo comando produce, alla fine il codice:
`\(\left(1,5;~3,5 \right)\)`Questo comando produce anche \left e \right perché quando scrivo una coppia di coordinate, voglio trattare allo stesso modo sia numeri interi o decimali, sia frazioni.
Ma la domanda che ponevo, forse non sono stato chiaro, non riguardava tanto il codice, ma il risultato grafico che si ottiene usando quel codice e il pacchetto “icomma”.
lorenzo.pantieri” post=120838
In generale, ci sono soluzioni “spicce e sporche” che lì per lì funzionano, ma che poi, alla distanza, fanno perdere un sacco di tempo. Soprattutto se si lavora a un’opera che verrà aggiornata nel tempo.Concordo perfettamente!
Ma trovare le soluzioni “ragionate e pulite” non è sempre facile e, in un’opera che va avanti da molti anni e è scritta da molte persone diverse, spesso si sedimentano soluzioni buone su soluzioni infelici.E la ristrutturazione dei 5 volumi di Matematica Dolce è un lavoro molto impegnativo…
Se qualcuno avesse tempo e voglia di collaborare…
Grazie.
Daniele
::lorenzo.pantieri” post=120836
Per me non è una buona idea (anzi, diciamo pure che è una pessima idea), soprattutto se hai molti numeri con la virgola.- Il pacchetto icomma non viene aggiornato da vent’anni, mentre siunitx è aggiornato al 2021.
- Il pacchetto siunitx è molto flessibile. Per esempio, se tu decidessi di passare dalla virgola decimale al punto decimale, con siunitx ti basterebbe cambiare una riga nel preambolo. Niente di tutto ciò con icomma: dovresti mettere mano a tutto il documento, rischiando di commettere errori.
- Nel codice che hai inviato usi la virgola sia come separatore decimale che come separatore tra numeri distinti: in definitiva, il risultato è illeggibile. Separa almeno i numeri con uno spazio \quad o \qquad.
- In modo matematico, le spaziature manuali rese con la tilde sono (quasi) sempre sbagliate: il tuo caso non fa eccezione.
- Il fatto che il pacchetto non sia aggiornato è un problema.
- Attualmente icomma mi ha permesso di risolvere il problema su tutte le decine di file e centinaia (migliaia) di numeri con una sola riga di codice. Speravo che LaTeX prevedesse una soluzione simile: una riga da mettere nel preambolo in cui si dice che il separatore decimale è la virgola. Mi sembrerebbe una soluzione logica.
- Nel codice di esempio ho usato la virgola con due significati diversi lo ho fatto per mettere in evidenza i due usi diversi della virgola (in realtà il risultato mi sembra abbastanza comprensibile).
In “produzione” uso sempre la virgola come separatore decimale e il punto e virgola come interpunzione. Il caso tipico (più del 90% dell’uso) è nelle coordinate di un punto: `\(\left(1,5;~3,5 \right)\)`
Per questo uso, mi sembra che “~” sia preferibile a \quad e ancora di più a \qquad.
La situazione è diversa in un elenco di numeri. - Dei tre:
`
\(A\left(1,5;~3,5\right)\) vs
\(B\left(1,5;\quad 3,5\right)\) vs
\(C\left(1,5;\qquad 3,5\right)\)\(A\left(\dfrac{3}{2};~ -\dfrac{7}{2}\right)\) vs
\(B\left(\dfrac{3}{2};\quad -\dfrac{7}{2}\right)\) vs
\(C\left(\dfrac{3}{2};\qquad -\dfrac{7}{2}\right)\)
`
Il primo è quello che mi sembra migliore come resa grafica.
È vero che una volta riscritti tutti i numeri come vuole siunitx, “\num{123.456}”, poi basta la modifica di una riga per presentare le cose in modo diverso, ma:
- questo comporta l’intervento su decine di file e centinaia (migliaia) di numeri con risultati incerti (potrei dimenticare un numero o saltare un file).
- appesantisce il sorgente che sarebbe pensato anche per essere letto, in braille, da ciechi.
Giusto per capire di cosa sto parlando: questo problema sorge nella composizione di un testo di matematica per le scuole superiori.
È possibile vedere il risultato del nostro lavoro su:da dove si possono scaricare i pdf o tutto il sorgente.
I vari file di configurazione si trovano in:
Matematica Dolce file di configurazione
La configurazione di base l’ho ereditata, poi l’ho modificata per adattarla a nuove esigenze.
Avrebbe bisogno di una semplificazione e riorganizzazione, ma mi sto dedicando, ancora, più ai contenuti che all’aspetto grafico; sia per questioni di tempo che di (in)competenza.Grazie per l’interessamento e per la disponibilità.
Daniele
::
Grazie a Robitex e a Lorenzo per le spiegazioni e la indicazioni.La soluzione che trovo più semplice nel mio caso (centinaia di numeri con la virgola sparsi in decine di file) è:
`\documentclass[a4paper,10pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[italian]{babel}
\usepackage{icomma}\begin{document}
\(123,456,~234,567,~345,678\)
\end{document}
`Spero solo che il pacchetto “icomma” non presenti delle incompatibilità con altri pacchetti o con versioni future di LaTeX.
Grazie ancora e un buon fine settimana.
Daniele
::robitex” post=120826
Puoi leggerti l’articolo su ArsTeXnica /wp-content/uploads/joomla-images/ArsTeXnica/AT011/AT11-beccari.pdf
di Claudio Beccari.
R.Interessante il testo di Claudio.
Da questo mi è sembrato che il pacchetto icomma facesse al caso mio, dato che quando uso la virgola come separatore, la faccio sempre seguire dallo spazio.
Rimane il problema che come separatore, in modalità matematica, devo farla seguire dalla tilde.
Ho visto che il pacchetto è piuttosto vecchio e non aggiornato: ci sono dei problemi noti di incompatibilità?
O in generale ci sono dei motivi per non usarlo?
Grazie
Daniele
::
Grazie per le indicazioni.robitex” post=120826
Io di solito uso le macro del pacchetto SIUNITX e mi sono dimenticato il “problema della virgola”.
Alla prossima.
R.Ho provato questa soluzione che mi sembra la più semplice…
Ho caricato il pacchetto con l’istruzione:
`
\usepackage[decimalsymbol=comma]{siunitx}
`Ma non ho ottenuto né errori né effetti utili.
Perché la virgola vengatrattata per bene devo scrivere:
`
8)\quad \(\num[decimalsymbol=comma]{123,456},
~\num[decimalsymbol=comma]{234,567},
~\num[decimalsymbol=comma]{345,678}\) \qquad siunitx con \\num e tilde
`È pesantissimo. Tu usi questo metodo o, con siunitx, c’è qualche sistema più semplice che mi sfugge?
Grazie ancora.
Daniele
4 Luglio 2020 alle 13:15 in risposta a: Tikz: Numero di elementi in una lista separata da virgole #118299::
Le due funzioni precedenti funzionano nel semplice documento precedente, ma non vanno quanto tento di usarle per risolvere il mio problema:`
\documentclass{article}\usepackage{comment}
\usepackage[utf8]{inputenc}
\usepackage{tikz}\makeatletter
\newcommand{\lengtha}[1]{%
\@tempcnta\z@
\@for\@tempa:=#1\do{\advance\@tempcnta\@ne}
\the\@tempcnta
}
\makeatother\usepackage{xstring}
\newcommand{\lengthb}[1]{%
\StrCount{#1,}{,}%
}\newcommand{\distribuzione}[2]{% Distribuzione di elementi su un asse
\def \dimx{#1}
\def \labpunti{#2}
\def \numpunti{\lengtha{#2}}
% \def \numpunti{\lengthb{#2}}
\begin{tikzpicture}
\node at (0, 2) {\numpunti};
\pgfmathparse{\dimx*2 / (\numpunti+1)} \let\largx\pgfmathresult;
\foreach \li [count = \i] in \labpunti{
\draw (\i*\largx-\dimx, -.2) — (\i*\largx-\dimx, .2)
node [above] {\(\li\)};}
\draw [->] (-\dimx, 0) — (\dimx, 0);
\end{tikzpicture}
}
`Se uso `lengtha` ottengo il seguente messaggio:
`
! Missing \endcsname inserted.
`Se uso `lengthb` ottengo il seguente messaggio:
`
! Undefined control sequence.
\xs_StrCount__ …f \xs_arg_ii {#2}\edef \xs_call
{\noexpand \xs_testopt {\n…
`E a questo punto la mia ignoranza di LaTeX e la cripticità dei messaggi di errore hanno il sopravvento.
Qualche suggerimento?
Grazie per l’attenzione e una buona giornata.
4 Luglio 2020 alle 12:36 in risposta a: Tikz: Numero di elementi in una lista separata da virgole #118298::
Ho trovato questi due modi per calcolare la lunghezza di una lista separata da virgole:`
\makeatletter
\newcommand{\lengtha}[1]{%
\@tempcnta\z@
\@for\@tempa:=#1\do{\advance\@tempcnta\@ne}
\the\@tempcnta
}
\makeatother\usepackage{xstring}
\newcommand{\lengthb}[1]{%
\StrCount{#1,}{,}%
}\begin{document}
Con la funzione \verb|\lengtha|\def \mylist{0,1,54,1,3}
\{\mylist\} has length \lengtha{\mylist}.\def \mylist{,,,}
\{\mylist\} has length \lengtha{\mylist}.\vspace{1em}
Con la funzione \verb|\lengthb|\def \mylist{0,1,54,1,3, 7}
\{\mylist\} has length \lengthb{\mylist}.\def \mylist{,,}
\{\mylist\} has length \lengthb{\mylist}.
\end{document}
`Il primo mi sembra una formula magica il secondo richiede la lettura di una libreria…
Ora provo ad applicarli al mio problema originale.
14 Marzo 2020 alle 9:18 in risposta a: Biblatex: come emettere virgole al posto dei punti nella bibliografia [Risolto] #117334::
Aggiungo un ulteriore passaggio che ho fatto.Impostata in questo modo, la bibliografia separa il cognome del primo autore dal resto con una virgola. Per eliminarla ho ridefinito un comando con la seguente riga di codice:
`\renewcommand{\revsdnamepunct}{\space}`
È stata dura, ma alla fine ho ottenuto quello che veniva richiesto.
Grazie ancora a tutti.
6 Marzo 2020 alle 15:05 in risposta a: Comandi pgf tikz non funzionano più (tkz-euclide) [risolto] #117439::robitex” post=117859
Ciao.
A occhio \tkzMarkAngle non è un comando TikZ ma del pacchetto tkz-euclide.
Sarebbe opportuno che confermassi l’ipotesi con un esempio minimo compilabile.
R.Sì, è codice non scritto da me, dipende dal pacchetto tkz-euclide.
Ecco un esempio minimo:
file figura.pgf:
`
\begin{tikzpicture}[x=10mm,y=10mm, font=\small]
\tkzDefPoints{0/0/A,1.5/1/B, 0/1.2/C}
\tkzDrawLine[add=0 and 0,thin](A,B)
% \tkzDrawLine[end=$r$,thin](A,C) % dà errore,
\tkzDrawLine[thin](A,C) % togliendo “end”, va
% \tkzMarkAngle[fill=LimeGreen, draw=black, size=.4](B,A,C) % dà errore,
\tkzMarkAngle[draw=black, size=.4](B,A,C) % togliendo fill, va
\tkzLabelAngle[pos=.6, font=\scriptsize](B,A,C){$\alpha$}\end{tikzpicture}
`file drawlinhe.tex:
`
\documentclass[]{book}
\usepackage[T1]{fontenc}
\usepackage[utf8x]{inputenc}
\usepackage[italian]{babel}
\usepackage{tikz}
\usepackage{tkz-euclide}\begin{document}
\paragraph{Problema riscontrato ricompilando:}in agosto funzionava ora non funziona più: dove trovare informazioni?
\begin{center}
\input{figura.pgf}
\end{center}
\end{document}
`La documentazione (http://mirrors.ctan.org/macros/latex/contrib/tkz/tkz-euclide/doc/TKZdoc-euclide.pdf) riporta alcuni cambiamenti, comunque mi pare ben fatta.
Grazie, ciao.
25 Febbraio 2020 alle 6:20 in risposta a: Biblatex: come emettere virgole al posto dei punti nella bibliografia [Risolto] #117333::[…]
Hai ragione, avevo dimenticato un *:
`\newcommand{\bibtocsect}[1]{\section*{#1}\addcontentsline{toc}{section}{#1}}`
Così ottieni:
Bibliografia
Bibliografia essenziale
Altri testi citati nella tesiPerfetto! Non avrei mai pensato che un asterisco avrebbe sistemato.
Ora fa quello che cercavo di ottenere.
Grazie.
Daniele
24 Febbraio 2020 alle 16:56 in risposta a: Biblatex: come emettere virgole al posto dei punti nella bibliografia [Risolto] #117331::ivan” post=117748Con questo
`\newcommand{\bibtocsect}[1]{\section{#1}\addcontentsline{toc}{section}{#1}}
\defbibheading{basi}{\bibtocsect{Bibliografia essenziale}}
\defbibheading{approf}{\bibtocsect{Altri testi citati nella tesi}}…
\backmatter
\chapter{Bibliografia}
\bibbycategory
`
ottieni:
Bibliografia
Bibliografia essenziale
Altri testi citati nella tesiCiao
IvanNo: in questo modo nell’indice i titoli di sezione appaiono 2 volte, una volta numerati e una volta no e i numeri proseguono quelli del capitolo precedente il \backmatter.
Comunque sono abbastanza soddisfatto del risultato raggiunto nel messaggio #117746
Grazie per la pazienza.
24 Febbraio 2020 alle 16:43 in risposta a: Biblatex: come emettere virgole al posto dei punti nella bibliografia [Risolto] #117330::OldClaudio” post=117747
E se prima di [tt]\chapter*{\bibname}[/tt] ci mettessi semplicemente [tt]\refstepcpunter{chapter}[/tt]?Nella prima pagina otterresti.
Capitolo 4
Bibliografia
41. Bibliografia essenziale
…4.2 Atri testi…
Questo risultato mi sembra brutto ed è quello che cercavo di evitare.
Se, invece, prima di \chapter{\bibname} (o in alternativa \chapter{Riferimenti bibliografici}) \metti il comando \backmatter, la bibliografia e le sue due sezioni non vengono numerate,la ma sono elencate nell’indice generale senza bisogno di intervenire a mano.
Avevo provato ma:
- vengono numerate
- e con i numeri del capitolo precedente
Mentre se tu volessi ottenere
4 Bibliografia
4.1 Bibliografia essenziale
4.2 Atri testi citati nella tesidevi ricorrere ai grandi mezzi che, essendo un novizio, non sapresti usare .
Il mondo è bello perché ci sono sempre cose da imparare.
Scusa se te lo dico, ma le tue domande riguardo a bibtex sono solo parzialmente giustificabili, visto che la documentazione di biblatex è molto lunga e complessa. Questa del \chapter e \chapter*, invece, fa parte dell’ABC di LaTeX, e, apparentemente, non hai la minima idea di quali siano le differenze. Capisco che probabilmente non ha mai sentito parlare nemmeno di \backmatter, ma nella sezione Documentazione di questo forum ci sono molte guide, generali e tematiche dove, volendo, potresti approfondire e diventare autonomo; LA guida L’Arte di scrivere con LaTeX è molto ben composta, ma dice poco su come fare cose non standard; sì, indica pacchetti, ma raramente o mai mostra due o tre alternative ad un determinato problema di composizione tipografica, visto che in tipografia la soluzione non è mai unica e ogni soluzione ha pregi e difetti. TeX e LaTeX danno gli strumenti, ma formano un’officina di migliaia di strumenti, quindi bisogna diventare esperti per servirsi al meglio di una tale officina, e, importantissimo, bisogna farsi una cultura sull’arte tipografica, che noi tutti, a cominciare da me stesso, non abbiamo o di cui abbiamo solo un’infarinatura superficiale. Quindi coraggio, finisci la tesi, a laureati, e poi quando vorrai, se ti piacerà anche solo come hobby, comporre bene i tui documenti, potrai migliorare la tua conoscenza dell’arte tipografica, arte che non ha nulla a che vedere con Word e gli altri word processor più o meno noti.
Per quanto riguarda \chapter e \chapter* ho sempre usato la versione senza asterisco e nella mia fantasia pensavo che quella con asterisco semplicemente non mettesse il numero prima del titolo. Ho scoperto oggi che invece non inserisce il capitolo nell’indice e ha effetto anche sulle tastatine. Farà parte dell’ABC ma ad esempio nell’Arte di Pantieri non è trattata, studierò la sezione documentazione.
In realtà è da parecchi anni che uso LaTeX (non biblatex), ma ogni volta che mi viene in mente di fare qualcosa di diverso faccio una grande fatica. Io e LaTeX abbiamo approcci diversi ai problemi.
Grazie comunque per la pazienza e per tutti i consigli che mi avete dato.
24 Febbraio 2020 alle 9:47 in risposta a: Biblatex: come emettere virgole al posto dei punti nella bibliografia [Risolto] #117327::
C’è ancora un problema.Io vorrei la bibliografia come un nuovo capitolo ma ma intitolato: “Bibliografia” (o “Riferimenti bibliografici”)
Il seguente codice:
`
\usepackage[autostyle,italian=guillemets]{csquotes}
\usepackage[
% style=philosophy-modern,
style=philosophy-classic,
% style=authoryear-icomp,
% citestyle=square,
sorting=nyt,
backend=biber]{biblatex}
\addbibresource{bibliografia.bib}
\DeclareBibliographyCategory{basi}
\DeclareBibliographyCategory{approf}
\defbibheading{basi}{\section{Bibliografia essenziale}}
\defbibheading{approf}{\section{Altri testi citati nella tesi}}\addtocategory{basi}{
…
}
\addtocategory{approf}{
…
}\begin{document}
\frontmatter
\input{frontespizio}\tableofcontents
\mainmatter
\input{capitolo01}
\input{capitolo02}
\input{capitolo03}
\chapter{\bibname}
`Produce:
“Capitolo 4
Bibliografia
4.1 Bibliografia essenziale
…
4.2 Altri testi citati nella tesi
”Mentre se l’ultima riga diventa:
`
\chapter*{\bibname}
`Il risultato è:
“Bibliografia
3.4 Bibliografia essenziale
3.5 Altri testi citati nella tesi”e coerentemente l’indice riporta le due sezioni come appartenenti al capitolo 3.
Questo tentativo si avvicina a quello che voglio:
`
\renewcommand{\chaptername}{}
\chapter{\bibname}
`Ma penso che ci sia un modo più intelligente per ottenerlo.
Suggerimenti?
Grazie
24 Febbraio 2020 alle 8:33 in risposta a: Biblatex: come emettere virgole al posto dei punti nella bibliografia [Risolto] #11732623 Febbraio 2020 alle 16:43 in risposta a: Biblatex: come emettere virgole al posto dei punti nella bibliografia [Risolto] #117324::
Grazie per le indicazioni.Stavo tentando di suddividere la bibliografia in due sezioni seguendo sempre la guida di Pantieri.
`
\documentclass{book}\usepackage[italian]{babel}
\usepackage[autostyle,italian=guillemets]{csquotes}
\usepackage[style=alphabetic]{biblatex}
\addbibresource{bibliografia.bib}
\DeclareBibliographyCategory{basi}
\DeclareBibliographyCategory{approf}
\addtocategory{basi}{mori:tesi}
\addtocategory{approf}{eco:tesi,mori:poesie}
\defbibheading{basi}{\section*{Bibliografia essenziale}}
\defbibheading{approf}{\section*{Altri testi citati nella tesi}}
% \usepackage{xcolor}
% \usepackage{guit}\newcommand{\bcite}[2][]{[\cite [#1] {#2}]}
\begin{document}
\tableofcontents
\chapter{Primo}
bla bla bla
\chapter{Secondo}
Il riferimento a~\bcite[p.~4]{mori:tesi} appare nella bibliografia essenziale.
Il riferimento a~\bcite{eco:tesi} appare nelle letture di
approfondimento. Si possono includere negli approfondimenti anche
delle opere non esplicitamente citate nel documento.Si possono includere negli approfondimenti anche delle opere non
esplicitamente citate nel documento.\nocite{*}
\chapter*{Bibliografia}
% \printbibliography[heading=basi, category=basi]
% \printbibliography[heading=bibintoc, heading=approf,category=approf]
% % al posto delle due righe precedenti:
\bibbycategory\end{document}
`Ma non riesco a inserirla nell’indice.
C’è un modo per farlo?
Grazie per l’attenzione.
-
AutoreRisposte