- Questo topic ha 33 risposte, 3 partecipanti ed è stato aggiornato l'ultima volta 11 anni, 3 mesi fa da
OldClaudio.
-
CreatoreTopic
-
17 Maggio 2015 alle 12:20 #101703::
Da un po di tempo mi sto divertendo con le date e il tempo. Non credo che serva a molto ma mi permette di avere una scusa per programmare in latex (affermazione un po grossa)Comunque mi sono imbattuto in quello che mi sembra un’imprecisione. Premetto che il mio latino è diventato un tardo ricordo di gioventù quindi mi posso sbagliare ma ho trovato una incongruenza mi spiego
in ctan per quanto ne so ci sono due pacchetti che permettono di scrivere le date in latino
babel e datetime2esempio 1
`
\documentclass[10pt,a4paper]{article}
\usepackage[latin]{babel}
\usepackage[utf8]{inputenc}
\begin{document}
\today
\end{document}
`esempio 2
`
\documentclass[latin]{article}
\usepackage{babel}
\usepackage[useregional]{datetime2}
\begin{document}
\today
\end{document}
`che stampano la data di oggi 17 maggio 2015
in questo modoXVII Maii MMXV
che è la data in latino
è vero che i romani hanno avuto più di un calendario
ma oggi non dovrebbe essere:ante diem sextum decimum Kalendas iunias
forse sono pignolo ma …
grazie per il vostro tempo
claudio
-
CreatoreTopic
-
AutoreRisposte
-
-
17 Maggio 2015 alle 12:50 #101704::
Claudio, la tua osservazione è giusta, ma devi sempre ricordare che di lingue laitne ce ne sono tre; una è il latino moderno usato come lingua ufficiale dello Stato della Citta del Vaticano; usa la data gregoriana moderna e la u e la v come in italiano e non usa le legature ae ed oe.
Un latino medievale che usa entrambi i tipi di data, probabilmente con la data giuliana, visto che la gregoriana è del 1582, se non vado errato; usa la u e la v in modo classico e usa le legature. Un latinco classico, ch userebbe solo la data con le kalende, usa la u e la v in modo classico (ovviamente) ma non usa le legature ae ed od, che sono una invenzione medievale.Ora pensa al motore di composizione tex, o pdftex o xetex o luatex, o…; esso riceve dal sistema operativo i numeri del giorno, del mese e dell’anno in forma moderna; camuffare i numeri del giprno e dell’anno in numeri romani potrebbe anche andare bene per il latino moderno; certamante non per la data giuliana e non per la data ab urbe condita con le calende, le idi e tutto il resto.
Un tentativo per creare la data ab urbe condita è stato fatto una ventina di anni fa; se leggi la documentazione di babel-latin dovresti trovare in nota un riferimento a questo fatto. Io non implementai il codice che fu proposto, perché secondo me il giorno e l’anno della fondazione non erano corretti; ma penso che qualunque data si scelga esisterebbe sempre almeno un latinista che affermerebbe che la data giusta è probabimente un’altra.
Comunuqe se vuoi cimentarti con la trasformazione della data gregoriana in data giuliana e questa nella data ab urbe condita saròlieto di aggiungere il tuo contributo al modulo per il latino usando l’algoritmo giusto per le tre versioni.
Non sto scherzando; visto che ci sei provaci!
Claudio (quello old)
-
17 Maggio 2015 alle 13:07 #101705::
ad essere onesto la data l’ha scritta un mio pacchetto …
ma il problema è che mi appoggio a datetime2 che a sua volta si appoggia su babel … credo che venga fuori un cortocircuito. Conoscendo la tua professione questo a te non ti spaventa ma a me si un po…Comunque il problema del calendario romano è rognoso prima era lunare poi no, poi arriva Cesare e lo cambia, perfino Costantino ci ha messo le mani. Per non parlare dei bisestili che non sono sono i bisestili nostri, i nomi dei mesi che si cambiano nel tempo.
Credo che la tua classificazione a tre sia un po semplice.
Ora sono impegnato con le chiusure di fine anno ma penso che ci lavorerò sopra.
ciao
claudio
-
17 Maggio 2015 alle 14:16 #101706::
Be’, sì, certo, prima di Giulio Cesare c’era il caos, quindi è difficile considerare seriamente le date prima del calendario giuliano e questo è il motivo per il quale gli storici sono in disaccordo sulla data della fondazione di Roma, almeno la data convenzionale da cui partire per specificarla ab urbe condita.; ciò nonostante quando si è stabilito di numerare gli anni a partire dalla nascita di Cristo (che poi è risultata sbagliata di circa sei anni), si usava ancora la data ab urbe condita; ma anche dopo c’è stata una bella confusione con l’anno che cominciava il primo di gennaio o il 21 di marzo o in altre date; una cosa seria si è fatta solo con il calendario gregoriano che dovrebbe valere almeno fino al 12000 A.D. poi si vedrà; ma tanto noi non abbiamo necessità di preoccuparcene.:smile:
Se è per quello anche ai giorni nostri ci sono proposte di modifiche del calendario; a me piace specialmente quella in cui i mesi sono aboliti in favore di quattro periodi di 13 settimane ciascuno (diciamo in quattro stagioni di 91 giorni); ogni anno è quindi formato da quattro periodi in cui lo stesso ordinale in ciascuna stagione corrisponde sempre allo stesso giorno della settimana; il giorno in più per arrivare a 365 non ha una nome specifico, è solo soprannumerario; e negli anni bisestili ci sono non uno ma due giorni soprannumerari; non mi risulta che sia anche stata proposta la posizione di questo giorno o di questi due giorni soprannumerari. Ovviamente questo calendario non verrà mai adottato, ma l’idea mi piace; se cerco bene trovo anche il nome di questa proposta.
-
18 Maggio 2015 alle 15:25 #101707::
Ciao OldClaudio
mi sono messo a leggere la documentazione di Babel e
vorrei capire una cosa,Babel ha solo il comando \today per gestire le date?
se voglio per esempio usare babel per scrivere la data 17/03/1962 come faccio?
Detta in soldoni come posso crearmi un insieme di date per fare delle prove?
ciao
claudio
-
18 Maggio 2015 alle 15:55 #101708::
Prova questo codice`\def\data#1/#2/#3 {% Lo spazio prima della graffa è significativo
\day=#1\relax
\month=#2\relax
\year=#3\relax
\today\xspace}`Lo dovresti poter usare così:` la data del \data12/3/2025 corrisponde al dodicesimo giorno
del terzo mese del duemilaquindicesimo anno.`Perché funzioni devi caricare il pacchetto xspace nel preambolo. se devi mettere un segno di interpunzione dopo l’anno, lasciaci comunque uno spazio prima, perché lo spazio viene “mangiato” dalla definizione del comando; \xspace serve per ripristinarlo se il primo carattere dopo lo spazio NON è un segno di interpunzione.
Non cambiare la definizione di \data usando \newcommand, perché quella definizione ha gli argomenti delimitati che non si possono definire con \newcommad e \renewcommand.
-
18 Maggio 2015 alle 20:35 #101709::
OldClaudio” post=101524[…] a me piace specialmente quella in cui i mesi sono aboliti in favore di quattro periodi di 13 settimane ciascuno […] se cerco bene trovo anche il nome di questa proposta.
Credo si chiami INPS: è il calendario che si usa per pagare i contributi. 😆 😆 😆
Sto scherzando, naturalmente. Trovo entusiasmante l’idea dei “due Claudi” per un pacchetto che gestisca la data ab urbe condita e con le indicazioni dei giorni date in idi, none e calende, e non vedo l’ora di ammirare il lavoro finito.
Colgo l’occasione per infilare una domanda del tutto off-topic, che però mi assilla ormai da decenni senza che sia mai riuscito a trovare la risposta. Gli antichi Romani hanno fatto uso, almeno a partire da un certo periodo, della scansione settimanale del tempo, tant’è vero che i nostri nomi lunedì, martedì ecc. sono di origine latina e derivano da nomi di dei pagani. Ma quando, e da quale popolo, è stata fissata l’ “origine” di questa scansione? Cioè, chi un bel giorno ha deciso, e quando, di dire «oggi è domenica» (o, forse meglio, «il primo giorno»), senza che si sia mai più perso il conto da allora?
È da notare che la scansione settimanale ha attraversato indenne la riforma gregoriana del calendario, e che a oggi tutte le nazioni del mondo (dai Paesi occidentali ai Paesi arabi, dal Giappone a Israele) concordano sulla definizione di «sabato». D’altra parte, si può star certi che gli Ebrei non hanno mai “perso il conto” fin dai tempi più antichi: dunque l’ “origine” della scansione settimanale, che noi ancora oggi adottiamo, è stata fissata dal popolo ebraico? E quando? E d’altra parte ancora, gli Ebrei antichi non erano certo l’unico popolo che usava scansioni temporali basate su (il quarto de) la lunazione: queste scansioni antiche saranno state in accordo tra loro? Forse no, e allora la tradizione ebraica ha prevalso per essere passata nel cristianesimo?
E se è così, ripeto, il primo «primo giorno» a quando risale? Su Wikipedia ho letto che «l’osservanza del sabato (il settimo giorno) e la cadenza settimanale sono accertate solo dopo l’esilio da Gerusalemme cui gli ebrei furono costretti dalla conquista babilonese del 586 a.C., ma probabilmente l’uso preesisteva da molto». Ecco, io sono affascinato dall’idea di questo contatore modulo 7 che non ha mai perso uno scatto, e mi piacerebbe sapere da quanti millenni va avanti così.
Perdonatemi, e ciao.
—
Gustavo
-
19 Maggio 2015 alle 14:46 #101710::
[OT]
Le domande che poni sono abbastanza normali, nel senso che i popoli antichi certamante misuravano il tempo sulla rotazioni degli astri, in primis il sole e la luna; non avevano orologi ma misuravano la durata del giorno con i quadranti solari e negli ultimi secooli prima della nuova era, anche con ingegnosi strumenti ad acqua che permettevano di avere l’ora del giorno anche in mancanza di sole. Il giorno era diviso in 12 ore di lunghezza variabile che partivano dall’alba e andavano fino al tramonto; la note era divisa in quattro vigilie. Quella sì che era l’ora solare, non quella che viene chiamata oggi ora solare, invece che ora invernale.La lunazione con i suoi evidenti quarti di 7 giorni ciascuno (circa) hanno certamente ispirato la settimana; la bibbia l’ha poi codificata destinando il giorno di shabat al riposo da dedicare al signore e alla famiglia, come il Creatore il settimo giorno si riposò e si dedicò alla ammirazione del suo creato. Ovviamente tutti, ebrei in testa, sano che quello è un racconto mitico come sono mitici la maggior aprte degli episodi raccontati nel Pentateuco e in molti libri successivi; mitici ma in grado di insegnare Dio stesso, e la sua etica e come il popolo eletto fosse appunto affetto dalle debolezze umane e che… ecc. ecc. Ricerche recenti hanno accertato che i libri della Bibbia risalgono all’ottavo o al nono secolo AC, scritti forse in base ad una tradizione orale, ma che in sostanza tutto quello che vi viene scritto come fatti avvenuti prima dell’epoca dei Re è sostanzialmente mitico e non ha riscontri di altro tipo (scavi, iscrizioni, archeologia, ecc.).
Naturalmente la lunazione ha ispirato i calendari lunari e lunisoloari, da quello ebraico lunisolare, a quello islamico lunare, a quelli orientali per lo più lunisolari; ma la settimana, che non esiste nei calendari orientali tradizionali (almeno così mi pare di capire) è arrivata a noi tramite l’ebraismo; il cristianesimo, sulla base del racconto evangelico, ha stabilito che la permanenza di Cristo nel sepolcro è stata dal venerdì prima del tramonto al giorno dopo lo shabat, quando le pie donne sono salite al sepolcro per finire el operazioni di inumazione, interrotte per lo shabat, e scoprendo che Cristo non era più nel sepolcro; la resurrezione di Cristo è quindi avvenuto il giorno dopo lo shabat (tradotto in latino sabato) e quindi per i cristiani “dies dominica”, il giorno del Signore, sarebbe stato conservato per la festa da dedicare al riposo e alla celebrazione della resurrezione con il rito dell’eucarestia. Il nome domenica quindi è di origine cristiana e vista la diffusione del cristianesimo nella civiltà occidentale non ci si deve stupire che sia diventato una faccenda di carattere universale, che prescinde dalle varie religioni e vi convive accanto come calendario civile.
Mi perdonino i teologi e i filologi se ho riassunto in modo così superficiale cose che vengono dibattute da millenni sia nelle comunità ebraiche, sia in quelle cristiane, sia in quelle islamiche, sia a livello laico fra le varie nazioni moderne. Il calendario civile cinese oggi coincide con quello europeo, ma accanto vi è il calendario tradizionale che permette loro di trarre gli opportuni oroscopi a secondo del giorno in cui cadono le vicende umane nei mesi associati ai nomi di quegli animali che caratterizzano i nomi dei mesi e degi anni ne i cicli di 60 anni in cui si sviluppa il loro calendario.
L’invenzione del calendario solare è nato sostanzialmente nei paesi accanto alla Palestina; dove tra babilonesi (che usavano un sistema di numerazione in cui il 360 aveva un ruolo importante, quasi uguale ai giorni dell’ano solare) ed egizi avevano preferito un calendari in cui le stagioni si ripetessero con regolarità anche se non erano in fase con le lunazioni; Quando Giulio cesare impose il calendario che noi oggi chiamiamo giuliano, impose sostanzialmente il calendario egiziano con i nomi dei mesi che conosciamo ancora oggi. Prima di questa imposizione di Cesare, esistevano si le kalende, le idi le none e compagnia, ma erano stabiliti “dinamicamente” dai pontifices che oltre a costruire e riparare i punti sul Tevere, avevano anche il compito di stabilire che giorno fosse ogni giorno che sorgeva; sembra che per motivi che non avevano niente a che vedere con i cicli della luna o del sole, siano arrivati a far sì che alcuni anni durassero anche 400 giorni.
Comunque non credo che i due Claudi si cimenteranno a ricostruire i calendari precedenti all’epoca repubblicana; troppo complicato. E poi: cui iuvat? Certo ai due Claudi per divertirsi un po’ con l’aritmetica di TeX, ma penso che la cosa non serva nemmeno agli storici.:smile:
-
19 Maggio 2015 alle 17:13 #101711
-
19 Maggio 2015 alle 18:39 #101712::
Come ce lo scambiamo?
Il fatto che tu l’abbia pronto non vuol dire che sia a disposizione.
Nello stesso tempo ci sono dei test da fare per gli anni bisestili, come per la data di introduzione della data gregoriana; forse li hai già fatti, ma se desideri che vadano a finire nel modulo babel per il latino, bisogna che io li abbia, altrimenti non li posso introdurre. In realtà ci sarebbe anche il modulo gloss-latin per polyglossia.Il mio indirizzo di posta elettronica dovresti trovarlo nel file di documentazione del modulo stesso.
-
20 Maggio 2015 alle 4:31 #101713::
questo codice credo che sia un buon test per l’anno bisestile
`
\documentclass[10pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{etoolbox}
\newcounter{countA}
\newtoggle{bisestile}
\togglefalse{bisestile}
\newcommand{\testbisestile}[1]{
\setcounter{countA}{#1}
\ifboolexpr{
(test{ \ifnumcomp{(\value{countA}/4)*4-\value{countA}}{=}{0}}
and not test {\ifnumcomp{(\value{countA}/100)*100-\value{countA}}{=}{0}})
or test {\ifnumcomp{(\value{countA}/400)*400-\value{countA}}{=}{0}}
}{bisestile}{non bisestile}
}\begin{document}
2008 \testbisestile{2008}
2000 \testbisestile{2000}
1900 \testbisestile{1900}
1996 \testbisestile{1996}
2009\testbisestile{2009}
1800 \testbisestile{1800}
\end{document}
`ripensandoci i bisestili giuliani non sono bisestili gregoriani
modifico il test così
`
\documentclass[10pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{etoolbox}
\newcounter{countA}
\newtoggle{bisestile}
\togglefalse{bisestile}
\newcommand{\testbisestile}[1]{
\setcounter{countA}{#1}
\ifboolexpr{
(test{ \ifnumcomp{(\value{countA}/4)*4-\value{countA}}{=}{0}}
and not test {\ifnumcomp{(\value{countA}/100)*100-\value{countA}}{=}{0}})
or test {\ifnumcomp{(\value{countA}/400)*400-\value{countA}}{=}{0}}
}{bisestile}{non bisestile}
}\newcommand{\testbisestiledue}[1]{
\setcounter{countA}{#1}
\ifnumcomp{#1}{>}{1582}{
\ifboolexpr{
(test{ \ifnumcomp{(\value{countA}/4)*4-\value{countA}}{=}{0}}
and not test {\ifnumcomp{(\value{countA}/100)*100-\value{countA}}{=}{0}})
or test {\ifnumcomp{(\value{countA}/400)*400-\value{countA}}{=}{0}}
}{bisestile}{non bisestile}
}
{\ifnumcomp{(\value{countA}/4)*4-\value{countA}}{=}{0}{bisestile}{non bisestile}}
}\begin{document}
2008 \testbisestile{2008}
2000 \testbisestile{2000}
1900 \testbisestile{1900}
1996 \testbisestile{1996}
2009\testbisestile{2009}
1800 \testbisestile{1800}
1582 \testbisestile{1582}
1500 \testbisestile{1500}
2008 \testbisestiledue{2008}
2000 \testbisestiledue{2000}
1900 \testbisestiledue{1900}
1996 \testbisestiledue{1996}
2009\testbisestiledue{2009}
1800 \testbisestiledue{1800}
1582 \testbisestiledue{1582}
1500 \testbisestiledue{1500}
\end{document}
`
notare 1500
ciao
claudio
(credo di aver trovato email)
-
20 Maggio 2015 alle 5:33 #101714::
Direi che \testbisestiledue faccia la giusta distinzione fra gli anni precedenti alla riforma gregoriane e agli anni seguenti.Ora sulla base di questo testi bisognerebbe creare l’algoritmo per la data romana con kalende, none e idi.
Molto più complicato risalire ab rbe condita, perché, nonostante la confusione che era presente priam di Giulio Cesare, anche se si volesse mantenere l’algoritmo delle date giuliane, gli anni vanno numerati a partire da una data da scegliere in modo storicamente “quasi” corretto. Cerco di informarmi; ma supponendo che la data sia il 23 aprile 751 AC, il conteggio degli anni non corrisponde semplicemente all’aumento dell anno civile di 750 o 751 anni, perché dipende dal fatto che il giorno e il mese corrispondano ad un giorno precedente al 23 aprile.
A presto
(Old) ClaudioTi aggiungo queste informazioni:
Il pacchetto pgfcalendar permette di calcolare la data giuliana; non so esattamante quanto possa andare indietro nel tempo, ma dispone di cun comando \pdfcalendartojulian che dovrebbe essere capace di eseguire la trasformazione da solo.
ti allego questa tabella:
[attachment=1319]DataRomana.pdf[/attachment]
dalla quale puoi desumere tutte le differenze nella scrittura delle date specialmente per i mesi con 31 giorni, che, a quanto pare, hanno le none, e quindi le idi, in posti diversi. Non so quanto sia attendibile questa tabella, ma chi l’ha scritta è molto attento ai dettagli.
Attachments:
You must be logged in to view attached files. -
20 Maggio 2015 alle 9:33 #101715::
ieri ti avevo spedito una email su google
allego i file qui
[attachment=1321]babel-romano-latino.zip[/attachment]
ad urbe condita 🙂
a senso i romani non usavano una cronologia ma indicavano gli anno con il nome del console etc.. che era in carica
l’espressione ad urbe condita è tarda …
bo vediamo di lavorarci sopra
ciao
claudio
Attachments:
You must be logged in to view attached files. -
20 Maggio 2015 alle 11:24 #101716::
Ho verificato anche nellla cartella Trash, ma non ho trovato nulla; verifica se per caso hai ricevuto un messaggio di errore nel recapito del messaggio; a me con Thunderbird arrivano sempre messaggi di questo genere se sbaglio nello scrivere l’indirizzo.Comunque h scaricato i, file che hai allegato. Nonostante io ora ce l’abbia, prova ancora con al posta elettronica. Questa faccenda mi lascia piuttosto perplesso.
-
20 Maggio 2015 alle 17:34 #101717
-
20 Maggio 2015 alle 18:54 #101718
-
20 Maggio 2015 alle 19:03 #101719
-
22 Maggio 2015 alle 19:23 #101720::
primo passo per ad urbe condita
il calcolo della data giuliana da data gregoriana`
\documentclass[10pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{etoolbox}
\usepackage{calc}
\newcounter{countA}
\newcounter{countB}
\newcounter{countC}
\newcounter{countD}
\newcounter{countM}
\newcounter{countY}
\newcounter{countd}
\newcounter{countJD}\newcommand{\dagregorianoAgiuliano}[3]{
\setcounter{countY}{#1}
\setcounter{countM}{#2}
\setcounter{countd}{#3}
\ifnum\thecountM=1\setcounter{countY}{\thecountY-1}\setcounter{countM}{\thecountM+12}\fi
\ifnum\thecountM=2\setcounter{countY}{\thecountY-1}\setcounter{countM}{\thecountM+12}\fi\ifboolexpr{
test{ \ifnumcomp{\thecountd}{=}{15}}
and
test{ \ifnumcomp{\thecountM}{=}{10}}
and
(test{ \ifnumcomp{\thecountY}{=}{1582}}}
{\setcounter{countA}{\thecountY/100}\setcounter{countB}{2-\thecountA+\thecountA/4}}{\ifboolexpr{
test{\ifnumcomp{\thecountY}{<}{1582}} or (test{ \ifnumcomp{\thecountY}{=}{1582}} and test{\ifnumcomp{\thecountM}{<}{10}}) or (test{ \ifnumcomp{\thecountY}{=}{1582}} and test{ \ifnumcomp{\thecountD}{=}{10}} and test{\ifnumcomp{#3}{<}{15}}) }{\setcounter{countA}{0}\setcounter{countB}{0}} {\setcounter{countA}{\thecountY/100}\setcounter{countB}{2-\thecountA+\thecountA/4} } } \setcounter{countC}{\thecountY*\real{365.25}} \setcounter{countM}{\thecountM+1} \setcounter{countD}{\thecountM*\real{30.6011}} \setcounter{countJD}{\thecountB+\thecountC+\thecountD+\thecountd+1720995} } \begin{document} \dagregorianoAgiuliano{-10}{1}{1} A\thecountA B\thecountB C\thecountC D\thecountD d\thecountd M\thecountM Y\thecountY JD\thecountJD \end{document} ` come spiegato qui
il problema è l’algoritmo inverso
come trovare la parte frazionaria della divisione fra due contatori?
ciao
claudio
-
22 Maggio 2015 alle 20:31 #101721::
Supponiamo che tu abbia due contatori TeX che si chiamano \NumI e \DenI.
devi definire due lunghezze, diamo \Num e \Den, caricarci dentro il contatore da dividere \moltiplicato per \p@:code]\mum=\NumI\p@[/code] \p@ è una lunghezza predefinita lunga un punto, e nell’altro metti i contatore divisore moltiplicato per \p@; la divisione si fa moltiplicando il numeratore per \p@ dividendolo poi per il denominatore`\dimexpr\Num*\p@/\Den\relax`Il comando \relax non è veramente sempre necessario, ma visto che è un comando eseguibile che corrisponde a un NoOperation, non dà nessun fastidio. dal risultato togli l’unità di misura, per avere il quoziente fratto (altra lunghezza \Quoz)ti basta questo codice: `\edef\@tempA{\strip@pt\Quoz}`Se vuoi solo la parte fratta devi fare un altro calcoletto con un’altra lunghezza \partefratta; naturalmente ha già calcolato al divisione intera nel contatore \Qintero:`\Qinterp =\NumI \divide\Qintero by \DenI` (nota l’aritmetica nativa di TeX, mentre \dimexpr è nativo di eTeX) e poi `\partefratta=\dimexpr\Quoz -\Qintero\p@`.
Trovi spiegato tutto questo sia nella guida tematica Il LaTeX Refernce Manual commentato sia nella documentazione di eTeX: texdoc etex
-
24 Maggio 2015 alle 6:04 #101722::
scusa ma non ho capito il capitolo 3.5 di etex non dice molto
mi spieghi
`
{\makeatletter
\textwidth=120mm \relax
% 0.35145980 mm/pt
\textheight=
\dimexpr \textwidth * \paperheight / \paperwidth \relax
\dimen@=0.3514598\textheight
\strip@pt\dimen@\,mm}
`
questo codice
carichi \textwidth= con 120mm
che moltiplichi e dividi \dimexpr trasforma la divisione da intera a decimale?
\dimen@=0.3514598\textheight che fa?
e sopratutto la linea dopo
che fa?
ciao e grazie
claudio
-
24 Maggio 2015 alle 8:42 #101723::
Non sono sicuro che tu abbia letto quell’esempio nella documentazione di etes nel capitolo 3.5, perché la documentazione di etes non è divisa in capitoliIn ongi caso non cè nessuna divisione intera, ma ci sono delle divisioni e moltiplicazioni per lunghezze; le lunghezze in pt sono dei numeri fratti; in realtà nella pancia del programma di composizione esse sono rappresentate in virgola fissa con sedici cifre binarie fratte, e di fatto sono rappresentate da misure intere in scaled point; non è il caso di preoccuparsi di questi dettagli, ma se vuoi capire bene il funzionamento di quest comandi nativi di etex considera questi fatti;
ogni lunghezza è conservata in registri di 32 bit, di cui i primi due sono per il segno e per altre funzioni, e i restanti trenta sono per rappresentare gli scaled point; quando moltiplichi due lunghezze fra di loro nei registri interni del programma ottieni un prodotto di 64 bit che va conservato in un registro a doppia precisione; questo numero in teoria conterrebbe 32 cifre binarie fratte. Quando dividi per un’altra lunghezza il risultato viene messo in un registro a 32 bit, e perde 16 cifre binarie fratte e resta conforme ad una lunghezza 9salvo casi speciali di overflow) quindi l’operazione di scalamento è fatta con la massima precisione possibile con l’aritmetica a virgola fissa, cioè con i numeri interi di scaled point.LA maoltiplicazione epr quel numero strano è spiegata nella riga commentata; serve per trasformarne il valore espresso in punti in un valore espresso in millimetri per poterlo pois scrivere con l’ultimo statement; se non ci fosse \strip@pt scriverebbe qualcosa come 123.4567pt mm; e chiaro che i pt (due lettere, non unità di misura) vanno tolti.
Leggi la vera documentazione di etex con texdoc etex
-
24 Maggio 2015 alle 10:25 #101724
-
24 Maggio 2015 alle 10:52 #101725::
claudio” post=101609guarda che l’ho letta, parlo di: The ε-T E X manual Version 2, February 1998 a pagina 8 c’è 3.5 Expressions …
si vede che non l’ho capita
ciao
claudioOK, ma quel numero 3.5 non è un capitolo ma un sotto paragrafo. Inoltre in quel sotto paragrafo NON c’è l’esempio che hai riportato e che, invece, potrei aver scritto io da qualche parte, non ricordo dove.
In ogni caso ti ho spiegato che cosa fa; la mia spiegazione non era abbastanza chiara?
Temo di sì perché l’esempio che non hai capito non è dei più adatti a spiegare come usare le lunghezze per fare dei calcoli con numeri fratti. Gli unici numeri fratti che ogni programma del sistema TeX conosce (a parte LuaTeX e LuaLaTeX che li conoscono attraverso il linguaggio di scripting Lua) sono i moltiplicatori delle unità di misura e i numeri fratti che si riescono ad ottenere dai calcoli eseguiti su quantità dimensionali sono quelli che si ottengono sottoponendo il nome di un registro lunghezza all’azione del comando nativo \the che ne estrae il valore binario interpretandolo come scaled point (sp) e trasformandone il valore in punti tipografici (pt).
Per il resto le frasi della documentazione che spiegano l’operazione di scalamento di una grandezza sono le seguenti:
[attachment=1325]etex-expressions.pdf[/attachment]
È importante capire queste parole.
Attachments:
You must be logged in to view attached files. -
25 Maggio 2015 alle 20:19 #101726::
claudio” post=101583primo passo per ad urbe condita […]
come trovare la parte frazionaria della divisione fra due contatori?
[…]Torno a leggere la discussione con qualche giorno di ritardo. Non è che, per caso, quello che ti serve realmente è trovare il resto della divisione tra due contatori?
Supponi di avere tre contatori (definiti con il [tt]\newcount[/tt] del plain TeX) chiamati, diciamo, [tt]\@temp@ctr@a[/tt], [tt]\@temp@ctr@b[/tt] e [tt]\@temp@ctr@r[/tt]: per memorizzare in [tt]\@temp@ctr@r[/tt] il resto della divisone di [tt]\@temp@ctr@a[/tt] per [tt]\@temp@ctr@b[/tt] puoi fare così:
`
\@temp@ctr@r \@temp@ctr@a
\count@ \@temp@ctr@a
\divide \count@ \@temp@ctr@b % must not divide by zero!
\multiply \count@ \@temp@ctr@b
\advance \@temp@ctr@r -\count@
`
Questo codice preserva i valori contenuti in [tt]\@temp@ctr@a[/tt] e [tt]\@temp@ctr@b[/tt]; è possibile risparmiare qualcosina se ciò non è necessario.Una dozzina di anni fa o giù di lì mi scrissi un pacchettino per trovare il giorno della settimana corrispondente a una certa data (per esempio, il 7 novembre 1628, giorno in cui i bravi minacciano Don Abbondio, dando inizio alla vicenda dei Promessi sposi, era un martedì); ovviamente, esso conteneva anche un comando [tt]\IfLeapYear[/tt] per fare una cosa oppure un’altra a seconda che un certo anno fosse o no bisestile. Si assumeva il calendario gregoriano e una data non anteriore al 1 gennaio 1601. Se ti interessa, devo ancora avere il codice da qualche parte.
Ciao.
—
Gustavo
-
9 Giugno 2015 alle 20:05 #101727::
salve riapriamo il post
un altro pezzo del progetto`
\documentclass[italian]{article}
\usepackage{ifpdf,ifxetex}
\ifpdf
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\else
\usepackage{fontspec}
\usepackage{polyglossia}
\setdefaultlanguage{italian}
\fi
\newcounter{countS}
\newcommand{\stamparoman}[1]{\space{\uppercase\expandafter{\romannumeral#1}}}
\newcommand{\stampadate}[1]{
\setcounter{countS}{#1}
\addtocounter{countS}{753}
%\value{countS}ANNO $-$\stamparoman{#1} $-$ POST · CHR · N · VEL $-$\stamparoman{\thecountS}$-$ AB · VRBE CONDITA
\thecountS
}\listfiles
\begin{document}
\stampadate{2015}
\end{document}
`prima o poi unisco tutto e pubblico
buona notte
claudio
-
9 Giugno 2015 alle 20:35 #101728::
@claudio, eccoti alcune osservazioni:
1) puoi usare un unico pacchetto iftex, che definisce i comandi \ifPDFTeX, \ifXeTeX, e \ifLuaTeX. Lo trovo migliore dei due pacchetti ifpdf e ifxetex che usi tu.2) non ho capito bene l’uso dei segni meno matematici invece delle legature [tt]–[/tt] di due trattini di seguito
3) penso che sarebbe meglio usare le sigle ACN (ante Christum natum), PCN (post Christum natum} oppure AD (Annus Domini che, come sigla, non ha importanza se debba essere usato al nominativo, all’accusativo o all’ablativo); AUC (ab urbe condita) oppure AVC (ab vrbe condita).
4) gli anni negativi rispetto all’istante zero, vengono convertiti male per difetto di una unità, \stampadate{1} produce I, e DCCLIV rispettivamente, mentre \stampadate(-1) produce un errore per il numero romano negativo, che non esiste, e DCCLII mentre il valore corretto è DCCLIII.
… sempre che l’anno di fondazione di Roma sia il 753 ACN… 🙂
-
10 Giugno 2015 alle 18:20 #101729::
mi ero scordato il prima di Cristo 🙂`
\documentclass[italian]{article}
\usepackage{ifpdf,ifxetex}
\ifpdf
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\else
\usepackage{fontspec}
\usepackage{polyglossia}
\setdefaultlanguage{italian}
\fi
\newcounter{countS}
\newcounter{countT}
\newcounter{countM}
\newcommand{\stamparoman}[1]{\space{\uppercase\expandafter{\romannumeral#1}}}
\newcommand{\stampadate}[1]{
\setcounter{countS}{#1}
\setcounter{countM}{-1}
\ifnumcomp{#1}{>}{0}{
\addtocounter{countS}{753}
\addtocounter{countS}{753}ANNO — \stamparoman{#1} — PCN –VEL –\stamparoman{\thecountS}–AUC}{\setcounter{countS}{\numexpr\thecountM*\thecountS}
\setcounter{countT}{\thecountS}
\setcounter{countS}{\numexpr 754-\thecountS}
ANNO — \stamparoman{\thecountT} — ACN — VEL –\stamparoman{\thecountS}–AUC}}\listfiles
\begin{document}
\stampadate{-20}\stampadate{-100}
\stampadate{20}
\stampadate{100}
\end{document}
`
per il 753 non so rispondere, non c’ero 🙂
ciao
claudio
-
10 Giugno 2015 alle 19:16 #101730
-
11 Giugno 2015 alle 1:54 #101731
-
13 Giugno 2015 alle 18:49 #101732
-
13 Giugno 2015 alle 19:43 #101733::
Appena posso ci guardo ora sono alle prese con la dichiarazione dei redditi con la modulistica tutta cambiata rispetto al passato….:evil:PS: credo di avere finto con le tasse, che lunedì dovrò pagare. Poi devo aspettare che mi arrivi la seconda parte del PIN per poter trasmettere telematicamente la dichiarazione all’Agenzia delle Entrate. Finora l’ho sempre fatto per posta, ma da quest’anno c’è una multa da oltre 200€ a oltre 2000€ per chi la invia cartacea senza averne diritto.
Così ho aperto il file .zip e vi ho ritrovato quasi tutto quello che via via sei andato facendo. Mi osno un po’ stupito che tu non abbia incorporato il contenuto del file ausiliario baseromano.tex dentro il file .sty; certo importarlo con \input fa lo stesso, ma non c’è bisogno di dargli l’estensione .tex; se gli avessi dato l’estensione .sty, avresti potuto richiamarlo con \RequirePackage{baseromano} che ti controlla di non caricarlo de vlte e ti consentirebbe anche di passargli delle opzioni se fosse costruito con una scelta di opzioni. Ptresti comeunque sempre chiamarlo con \input{baseromano.sty}; il fato di usare un file sty permette di ricordarsi che si possono usare anche i segni @ per formare i nomi delle macro; mentre con l’estensione .tex lo puoi fare ma non ti balza all’occhio che stai scrivendo un file di estensione.
Immettere file di definizioni con \input e l’estensione .tex fa molto il vecchio stile di Plain TeX.
Bene, ora vedo di studiarlo negli ultimi dettagli; se me lo consenti posso inserire il codice nel file di descrizione della lingua latina. Anche se gli apporto qualche piccola modifica sarà ben chiaro che la paternità è tua 🙂
(Old) Claudio
-
14 Giugno 2015 alle 3:05 #101734
-
14 Giugno 2015 alle 5:53 #101735::
A essere pignoli di quale calendario stiamo parlando? Chiamarlo calendario latino forse è improprio
meglio sarebbe chiamarlo romano.
I romani avevano una gestione del tempo un po particolare che cambiò dei secoli
si passò da un anno a 10 mesi a uno di 12
da un mese bisestile ad un giorno bisestile
da un anno bisestile ogni tre a uno a ogni 4
il giorno bisestile non era il 29 febbraio ma il giorno dopo il sesto prima delle calende di marzo
i mesi cambiarono durata
la settimana era di otto giorni e solo dopo (età imperiale ) divenne di sette
il mese di luglio fu chiamato così dopo Giulio Cesare Agosto con Augusto
ciao a tutti
claudio
-
14 Giugno 2015 alle 9:15 #101736::
Incorporato nel file latin.ldf, vi vorrà un nome inglese per distinguere il \today dal “\romatoday” o “\???today” similmente a come succede per il greco. Comunque mi pare corretto chiamala “data romana, piuttosto che “data latina”; in latino si trova già scritta la data fornita da \today, ma si tratta della data moderna, non della data antica; magari \ancienttoday? oppure \classictoday, attivabile solo quando si specifica la variante classiclatin?Ci penserò.
-
-
AutoreRisposte
- Devi essere connesso per rispondere a questo topic.