Aiuto:Strumenti per la rilettura: differenze tra le versioni

Da Wikisource.
Contenuto cancellato Contenuto aggiunto
Riga 28: Riga 28:


== RigaIntestazione ==
== RigaIntestazione ==
Superato; la funzione è stata rivista e inglobata in postOCR
'''Superato'''; la funzione è stata rivista e inglobata in postOCR


== Tools per la numerazione dei versi ==
Da “Numero riga ogni 3” a “Elimina tutti i <nowiki>{{R}}</nowiki>”: Tools per la numerazione automatica dei versi, trattati a parte.


== converti é -> è ==
<!--
La convenzione ortografica che indica l'accento é come appropriato per varie congiunzioni (perché, poiché...) è recente; i testi meno recenti (anche del XIX secolo) sono ''anteriori a questa convenzione'' e l'ortografia originale va rispettata. Sia l'OCR che trascrizioni usate come fonte però riportano la versione moderna é invece che quella originale è; il tool converte tutte le ricorrenze di é in è. Attenzione ai testi con parti in francese, in cui la differenza fra i due accenti è importante e va conservata.
== RigaIntestazione ==
;Cosa fa:
Facilita l'inserimento del template {{Tl|RigaIntestazione}} nell'header delle pagine Pagina, senza obbligare a visualizzare l'header. Il comportamento della funzione è il seguente:
# se esiste un template RigaIntestazione nell'header '''oppure''' nel box di edit, lo '''sposta''' dall'uno all'altro;
# se non esiste alcun template RigaIntestazione, ne '''aggiunge uno''' in box di edit, eventualmente utilizzando i dati contenuti nella variabile datiPagine;
# se esistono due template RigaIntestazione, sia nell'header che nel boc di edit, crea un alert (errore)


== virgolette ==
;Come funziona:
Il problema delle virgolette diverse dall'apostrofo semplice è complesso, perchè generalmente sono in coppie di caratteri diversi che devono comparire nella giusta sequenza di apertura - chiusura. Inoltre, visono parecci stili diversi di virgolette.
* il '''primo click''' fa comparire il template {{tl|RigaIntestazione}} nella casella di modifica. In questo momento, si può compilare il template con i dati del numero di pagina o del nome del capitolo.
* il '''secondo click''' sposta il template (compilato) nell'header.


Inoltre, i due caratteri sono difficili da ottenere con la tastiera; si possono inserire utilizzando i caratteri speciali o la raccolta di codici nella Edittool (gadget attivato di default). Il tool virgolette consente di inserire le virgolette come normali caratteri "come qui"; alla prima pressione di Virgolette tutte le doppie virgolette di qualsiasi formato vengono convertite nel tipo standard più comune: “questo”; un secondo click le inverte (scambia le aperture con le chiusure) in modo di sistemare le cose anche nel caso anomalo in cui la prima virgoletta del testo è di ''chiusura''. Avviene quando la virgoletta di apertura è nella pagina precedente. Le successive pressioni alternano le due possibilità.
;Approfondimento
Il comportamento della funzione chiamata dal link RigaIntestazione è caratterizzato dalla opzione ''toggle=true''; differisce leggermente dal comportamento della funzione chiamata da postOCR e da aggiusta paragrafi, dove invece è attiva l'opzione ''toggle=false''. La differenza consiste nel fatto che
# con l'opzione ''toggle=true'' l'eventuale template RigaIntestazione presente nell'header viene riportato nel box di modifica del testo; se il template è presente nel box di modifica testo, viene sopostato nell'header;
# con l'opzione ''toggle=false'' l'eventuale template RigaIntestazione presente nell'header '''NON''' viene riportato nel box di modifica del testo; ma se il template è presente nel box di modifica testo, viene sopostato nell'header.


Una ottima alternativa per modificare il tipo di virgolette aperte e chiuse, purchè siano due caratteri diversi, è il tool <code>trova & sostituisci</code>, memorizzando la sostituzione con l'opzione "Ricorda"; la sostituzione verrà eseguita sempre, nel momento della chiamata a postOCR.
Inoltre la funzione normalizza il template alla forma regolare {{tl|RigaIntestazione}} eventuali template scritti con codice alternativo, come <nowiki>{{ri|...}}</nowiki> oppure <nowiki>{{Ri|...}}</nowiki>.


In pratica: il ripetuto richiamo di postOCR e aggiusta paragrafi fa comparire RigaIntestazione (primo click), poi lo sposta nell'header (secondo click), e i click successivi non fanno nulla; al contrario, con RigaIntestazione è sempre possibile spostare da una parte all'altra, alternativamente, il template.

;Consigli:
* Per capire meglio il meccanismo, è opportuno, per qualche tempo, utilizzare tali funzioni con l'header visualizzato.

== datiPagine ==
datiPagine è una variabile che contiene "oggetti", ossia alcuni dati strutturati, reklativi alle opere su cui ci sono lavori in corso.

La variabile contiene alcuni valori precaricati, e viene nella dalla pagina [[Utente:Alex_brollo/variabili_opera.js]]. Questi dati sono disponibili per tutti gli utenti che attivino RegexMenuFramework.

La stuttura della variabile (un "array associativo") è la seguente, utilizzando [[Indice:Le confessioni di un ottuagenario I.djvu]] come esempio attivo:
<pre>datiPagine={
'Le confessioni di un ottuagenario I.djvu':{
'delta':27,
'pari':'{{RigaIntestazione|#pag|{{Sc|le confessioni d’un ottuagenario.}}|}}',
'dispari':'{{RigaIntestazione||{{Sc|capitolo secondo.}}|#pag}}',
'tipo':'prosa',
'regex':"é|è||\\*|'||air |all'|| r |l'||deir |dell'||eh'|ch'"
},
.....
};</pre>
Vedete quindi nell'ordine:
# il '''nome base''' della pagina/dell'Indice;
# il '''delta''' che è lo scarto fra numero pagina djvu e numero pagina cartacea; in questo caso, la pagina djvu 29 corrisponde alla pagina cartacea 2 (29-delta, ossia 29-27);
# il '''codice di RigaIntestazione''' per le pagine '''pari'''; quello per le pagine '''dispari'''. In entrambi, la posizione che deve assumere il numero pagina è marcato con '''#pag'''. I dati vengono facilmente aggiornati al capitolo correntemente "in lavoro".
# il '''tipo''' è il tipo di testo prevalente, assume valori fissi: poesia, prosa o misto. In base al tipo dell'opera possono essere eseguite specifiche routine (ad es. aggiunta automatica di poem; alert "Vuoi numerare i versi?")
# la lista delle sostituzioni '''regex''': si tratta di una lista di coppie di stringhe; la funzione postOCR esegue, oltre alle sostituzioni di default, quelle specificate nella lista. La lista è una serie di coppie di valori; le coppie sono separate da ||, i singoli valori da |. La compilazione è abbastanza delicata quando fra i caratteri vi sono caratteri speciali regex; in questo caso, i caratteri devono essere preceduti da '''due''' caratteri \ (vedi ''seconda'' sostituzione nell'esempio).
Questi dati vengono usati da RigaIntestazione con questo procedimento:
# lo script esamina il titolo della pagina corrente e procede nel caso che si tratti di una pagina nel nsPagina; estrae la base del titolo e il numero di pagina corrente;
# utilizzando il delta, calcola il numero di pagina cartacea e decide se tale numero è pari o dispari;
# nei due casi, utilizza i valori "pari" o "dispari" infilando il numero pagina cartacea al posto del marcatore #pag.

Il sistema funziona correttamente solo nel caso che il delta sia costante in tutta l'opera (pagine mancanti, tavole fuori numerazione, ecc. possono interferire con il delta). A questo si può porre rimedio.... ma per ora basta così. :-)
=== Come aggiungere i dati di un'opera a cui si sta lavorando personalmente ===
Per aggiungere al datiPagine di base i dati di un'opera ''personale'', basta scrivere nel proprio vector.js questo (ovviamente è un esempio.... adattate i dati all'opera che vi interessa!):

<pre>datiPagine['Rivista di Scienza - Vol. I.djvu']={
'delta':10,
'pari':'{{RigaIntestazione|#pag|{{Sc|rivista di scienza}}|}}',
'dispari':'{{RigaIntestazione||{{Sc|}}|#pag}}'
};</pre>

Si tratta di un "semplice" :-P aggiornamento di un array associativo, ossia a chiave; per aggiungere un nuovo elemento basta inserire il contenuto di una nuova chiave (in questo caso, il blocco delta, pari, dispari, sono il contenuto, e la chiave è 'Rivista di Scienza - Vol. I.djvu').

'''Attenzione!''' Se il nome dell'opera o il codice RigaIntestazione contengono caratteri "speciali", e in particolare gli apostrofi, è necessario far precedere a ciascun carattere un "escape", ossia questo carattere: \. Nel caso degli apostrofi, si può utilizzare le doppie virgolette per delimitare una stringa che contiene virgolette singole:
<pre> "Cabala del cavallo Pegaseo con l'aggiunta dell'Asino Cillenico"</pre>
oppure con caratteri di escape:
<pre> 'Cabala del cavallo Pegaseo con l\'aggiunta dell\'Asino Cillenico'</pre>

== Aggiusta paragrafi ==
Aggiunge una riga vuota dopo le righe in cui ''probabilmente'' finisce un paragrafo.
Le righe di fine paragrafo, nei più comuni OCR, possono essere indovinate come quelle in cui:
# la riga termina con un punto, un punto interrogativo, o un punto esclamativo, seguiti da un acapo singolo

Il meccanismo è grossolano, ma indovina spessissimo. Da NON usare, al momento, sui testi poetici (aggiungerebbe una riga vuota a tutti i versi che terminano con uno dei caratteri indicati)

Esegue anche una chiamata alla routine RigaIntestazione, con un'opzione ''toggle=false'' (vedi [[#RigaIntestazione]]).

=== Aggiornamento novembre 2011===
La versione corrente è stata migliorata, e adesso lo script NON agisce sulle parti di testo delimitate dal tag '''<nowiki><poem></nowiki>'''. Operativamente, anche per altri motivi, è opportuno aggiungere il tag poem come primo passo di qualsiasi modifica del testo, in modo da mettere il testo in versi al riparo dalle sgradevoli azioni di aggiustaParagrafi e di postOCR.

== Converti é -> è ==
Funzione semplice ma utile quando la conversione sia l'unica cosa da fare nella pagina. Tuttavia la funzione, che tipicamente è ''specifica per l'opera'' (applicarla in alcune opere sarebbe un errore: es. testi moderni, testi curati dal Carducci) può essere totalmente automatizzata registrando la sostituzione nella lista associata a datiPagine.

== Aggiungi tag poem ==
<del>Racchiude semplicemente l'intero testo della pagina dentro tag poem. Il suo scopo è permettere di utilizzare, subito dopo, postOCR evitando che venga attivata la funzione di eliminazione degli acapo singoli. La sua applicazione sarà automatizzata registrando in datiPagine la variabile tipo=poem; dopodichè, la stessa funzione postOCR, applicherà il tag poem alle nuove le pagine per default.</del>

=== Aggiornamento novembre 2011 ===
Il tag è stato rimosso; la sua funzione è integrata in postOCR, che aggiunge una coppia di tag poem sull'intero testo in tutti i casi in cui "sa" che si tratta di poesia, '''prima''' di procedere a ogni altra elaborazione.

Vedi aggiornamento di postOCR.

== Elimina riga 1 ==
E' frequentissimo che i tesi da OCR contengano, nella prima riga o nelle due prime righe, dei "pattumi" (in genere provenienti dall'intestazione della pagina, mal interpretata). Elimina riga 1 elimina la riga 1, con un singolo click. Provare per credere, molto efficace.

== spostamento note ==
;Cosa fa:
Strumento per facilitare la rilettura di pagine con molte note. Alterna due tipi di visualizzazione:
# visualizzazione ''normale'': le note sono al loro posto, all'interno di tag '''<nowiki><ref>....</ref></nowiki>''' nel contesto del testo. Se sono numerose e lunghe, risulta difficilissimo rileggere la pagina.
# visualizzazione ''a fondo pagina'': al posto delle note viene inserito un "codice marcatore" e il testo delle note, tag ref compresi, viene ''spostato in fondo pagina'', là dove stanno nella pagina stampata a fronte. L'accorgimento rende molto, molto più facile la rilettura. Finita la rilettura, un nuovo click sulla stessa funzione rimette le cose a posto.

;Consigli:
'''Avvertimento 1''': nella prima correzione dellla pagina, occorre inserire nel testo, nel punto di richiamo nota, questo codice: '''<nowiki><sup>nota</sup></nowiki>'''. Se lo strumento risulterà gradito, sarà creato un tastino per inserire il codice con un solo click. Le note a fondo pagina (là dove si trovano nel testo da OCR) vanno '''corrette sul posto''' e '''delimitate con il solito tag ref'''. Poi, un click su spostamento note, ed è fatta. :-) Ma attenzione: è necessario che il ''numero dei marcatori'', e il ''numero delle note'' corrispondano esattamente. E' l'errore più comune e il suo effetto è molto spiacevole. Per evitarlo è statointrodotto un controllo: in caso di diseguaglianza fra i due numeri, lo script emette una protesta e si interrompe.

'''Avvertimento 2''': Attenzione! NON provate a "mescolare le due modalità", ossia: ad aggiungere nuovi marcatori '''<nowiki><sup>nota</sup></nowiki>''' a una pagina in cui le note sono al loro posto, all'interno del testo, ''oppure'' ad aggiungere tag ref all'interno del testo, nella visualizzazione con le note a fine pagina. Per correggere eventuali errori, utilizzate la visualizzazione "normale", con le note al loro posto, e aggiungete, con la metodica tradizionale, le eventuali note mancanti con il tag ref all'interno del testo; oppure, cambiate visualizzazione e aggiungete il marcatore '''<nowiki><sup>nota</sup></nowiki>''' dove manca, e in fondo alla pagina, il testo della nota mancante, racchiusa fra tag ref e nella posizione corretta rispetto alle altre. Mescolare le due procedure comporta un ''completo rimescolamento delle note.''

== Numero riga ogni....==
Queste funzioni vengono utilizzate per la numerazione dei '''versi'''. Aggiungono un template {{tl|R}} ogni 3, 4, 5... righe, oppure all'ultima riga di ogni strofa. Le righe da numerare devono essere '''comprese all'interno di tag <nowiki><poem></poem></nowiki>'''.

Per effettuare la numerazione:
* posizionare il cursore all'interno del tag poem di cui si desidera numerare le righe
* cliccare la funzione desiderata nel menu a sinistra
* comparirà una finestrella di popup, dove va inserito il numero del primo verso della pagina (1 se la poesia inizia nella pagina corrente).

Se la pagina ''contiene più di una poesia, ovvero più di un tag <nowiki><poem></poem></nowiki>'', la numerazione va effettuata separatamente per ognuno di essi, posizionando di volta in volta il cursore all'interno dei diversi poem.

Lo script ha la caratteristica di memorizzare il numero dell'ultimo verso della pagina, e di renderlo disponibile nella pagina successiva; questo meccanismo funziona però soltanto quando si scorrono le pagine in serie, utilizzando il link-freccia "pagina successiva". In questo caso, nel popup di conferma comparirà un numero che è la "continuazione" della numerazione presente nella pagina precedente.

Occorre porre attenzione al caso in cui singoli versi sono spezzati in due parti, evenienza comune nei testi in versi che comprendono dialoghi: in questo caso bisogna verificare attentamemte il risultato ed eventualmente correggerlo, spostando nella giusta collocazione i template R apposti dalla funzione.

L'intera funzione è scritta da [[Utente:Candalua|Candalua]], a cui vanno rivolti eventuali quesiti e suggerimenti.
Lo script è attualmente (febbraio 2011) in pieno sviluppo, quindi il comportamento delle funzioni potrà essere soggetto a modifiche.
== Inserimento <nowiki>{{testo}}</nowiki> ==
Il gadget trasforma l'output di DynamicPageList in un elenco "fisico" di {{tl|testo}}.

DynamicPageList non modifica il codice della pagina; il suo output è reso dinamicamente nella versione html in visualizzazione. Questo comportamento ha il vantaggio che la lista è sempre aggiornata, ma ha lo svantaggio che l'output si limita al mero elenco di link alle pagine selezionate; non è possibile utilizzare direttamente, su tale elenco, alcun template nè fare alcuna modifica.

Sfruttando i dati disponibili in modalità Anteprima, in cui coesistono i dati restituiti dal server come html e il box di edit del codice wiki sorgente, il gadget "cattura" dall'html la lista prodotta da DynamicPageList, aggiunge a ciascun elemento il codice template testo, e inserisce l'elenco nel box di edit.

Per attivarlo, occorre quindi entrare in modifica in una pagina che comprenda codice DynamicPageList, visualizzare l'anteprima e a questo punto attivare il link '''<nowiki>Inserimento {{testo}}</nowiki>'''.

Il gadget è sperimentale e non va utilizzato se non in casi particolari.

== spostamento note ==
{{Aiuto:Strumenti_per_la_rilettura/spostamento note}}

== AutoreCitato ==
Il gadget effettua due sostituzioni nel testo in modifica:
# converte tutti i template {{tl|Ac}} nella forma normale {{tl|AutoreCitato}}
# nel caso di template a un solo parametro, tipo <nowiki>{{AutoreCitato|Dante}}</nowiki>, verifica se il parametro è compreso nella lista incorporata nello script [[MediaWiki:Gadget-normalizza-AutoreCitato.js]] e se esiste in lista aggiunge il parametro che punta al nome completo dell'autore. La lista comprende oltre 400 autori comunemente citati. Sono stati recentemente aggiunti gli autori comunemente citati in [[Zibaldone]].

Il gadget velocizza moltissimo l'inserimento del template e la sua normalizzazione (in genere è sufficiente selezionare il nome dell'autore, premere il pulsante di edit Ac o l'edit tool <nowiki>{{AutoreCitato|}}</nowiki>, e premere alla fine dell'edit della pagina sul link AutoreCitato sotto Strumenti di rilettura). Oltre a velocizzare l'inserimento, la trasformazione del template da uno a due parametri riduce moltissimo il carico server.
-->
== Domande? ==
== Domande? ==
Se hai domande, dubbi, proposte o necessiti di chiarimenti sui ''regex Menu Framework'' <span class="plainlinks">[http://it.wikisource.org/w/index.php?title=Discussioni_aiuto:Strumenti_per_la_rilettura&action=edit&section=new premi qui] per lasciare un messaggio nella pagina di discussione oppure apri una discussione nel [[Wikisource:Bar|bar principale]].</span>
Se hai domande, dubbi, proposte o necessiti di chiarimenti sui ''regex Menu Framework'' <span class="plainlinks">[http://it.wikisource.org/w/index.php?title=Discussioni_aiuto:Strumenti_per_la_rilettura&action=edit&section=new premi qui] per lasciare un messaggio nella pagina di discussione oppure apri una discussione nel [[Wikisource:Bar|bar principale]].</span>

Versione delle 23:52, 16 gen 2015

Aiuto: Guida agli Strumenti per la rilettura

Categoria: Guida al RegexMenuFrameworkManuale   Caratteristiche di Wikisource   Guida ai gadgets 
Gli strumenti per la rilettura sono alcune semplici funzionalità aggiunte che aiutano a svolgere azioni ripetitive, facilitando la formattazione e la rilettura di un testo.

Come attivarlo

Per attivare gli strumenti di rilettura, bisogna anzitutto aprire la pagina Preferenze e andare alla sezione Accessori. Alla voce Strumenti di modifica si trova l'opzione Strumenti di rilettura: cliccando sulla casella di spunta, verranno attivate alcune funzioni ausiliarie durante la fase di rilettura.

In pratica, durante la modifica di una singola pagina, apparirà nella colonna laterale sinistra di Wikisource, sotto ai collegamenti normalmente presenti, una nuova sezione intitolata Strumenti di rilettura in cui sono raccolti alcuni collegamenti aggiuntivi. Ciò che apparirà sarà simile all'immagine sulla destra.

Ecco come appaiono gli strumenti di rilettura (Gennaio 2015).

Per utilizzare gli strumenti di rilettura è sufficiente premere i collegamenti elencati oppure, dove presenti, utilizzare le scorciatoie da tastiera (Alt+5, Alt+6, ...).

Funzioni attivate

  1. trova & sostituisci
  2. elimina riga 1 Alt+5 (in parte deprecato)
  3. aggiusta paragrafi Alt+6
  4. postOCR Alt+7
  5. unisci linee Alt+8
  6. RigaIntestazione Alt+9 (deprecato)
  7. Numero riga ogni 3
  8. Numero riga ogni 4
  9. Numero riga ogni 5
  10. Num. riga ogni fine strofa
  11. Elimina tutti i {{R}}
  12. converti é -> è (può essere ottenuto con Trova e sostituisci)
  13. virgolette
  14. spostamento note
  15. iniziale maiuscola (per le opere in versi)


Trova e sostituisci

Lo strumento Trova e sostituisci presenta alcune analogie con l'omonimo strumento integrato negli strumenti di default e rintracciabile alla sezione Avanzate del toolbox, sulla destra. Nonostante il nome, questo strumento non possiede una funzione "trova", ed esegue solamente sostituzioni globali e dirette.

Quindi, se serve sostituire con cautela esaminando una a una le sostituzioni, è opportuno usare lo strumento standard, anziché lo script.

Tuttavia il nostro Trova e sostituisci, scritto da Candalua, ha il vantaggio di avere un codice aperto e quindi migliorabile; e nel tempo in effetti sono state aggiunte interessanti caratteristiche.

  1. Se si selezione un testo, e poi si attiva Trova e sostituisci, la selezione viene automaticamente caricata sia nel campo Cerca che nel campo Sostituisci. Basta modificare (per quello che serve) il campo Sostituisci e dare OK.
  2. Eseguita la sostituzione, il tool non si chiude; possono essere predisposte altre sostituzioni e possono essere lanciate, una dopo l'altra, con notevole velocità.
  3. Possiede un'opzione Ricorda. Se si attiva questa opzione, la sostituzione viene memorizzata in una variabile permanente, e verrà lanciata automaticamente su qualsiasi pagina aperta successivamente, nel momento in cui si lancia postOCR.
  4. Può eseguire sostituzioni regex; l'argomento è molto complesso, ma chi conosce la sintassi regex di javascript o chi intende provare troverà questa opzione molto interessante. Il codice da inserire nel primo campo è quello che si inserirebbe nel delimitatore regex / / e non quello che si inserirebbe in una stringa da passare a RegExp. Il tool dà all'espressione regex un parametro g (sostituzioni multiple) di default.

Approfondimento: "Ricorda"

Le sostituzioni memorizzate vengono impaccate in un oggetto in formato JSON memorizzato in localStorage.memoRegex. L'opzione Ricorda memorizza la sostituzione aggiungendola a quelle già presenti nella variabile. Il gadget memoRegex aggiunge due pulsanti,salva regex e carica regex. Il primo permette di permette di scaricare l'intera variabile in formato testo, in qualsiasi pagina; il secondo consente di caricare in memoria un set precedentemente memorizzato con salva regex, semplicemente selezionandolo e premendo il pulsante, aggiungendo tutte le sostituzioni a quelle precedentemente memorizzate.

Questo meccanismo è pensato per creare delle serie di sostituzioni specifiche per un'opera, o per un tipo di opere; salvando le sostituzioni in una pagina stabilita (di solito la pagina Discussioni indice: dell'opera) il set di sostituzioni può essere caricato e arricchito da più utenti, ed è inoltre disponibile per lo stesso utente nel momento in cui si lavora con un altro browser o con un altro pc (localStorage è, infatti, "privato", nel senso che è memorizzato in uno spazio specifico del pc, inaccessibile agli altri browser, e visibile solo dal sito da cui è stato memorizzato).

Un approfondimento ed esempi pratici qui: Aiuto:MemoRegex

Esempi

Emulazione dello strumento é -> è

Per inglobare l'azione di converti é -> è in trova e sostituisci, è sufficiente inserire nel campo Cerca il carattere é, in Sostituisci il carattere è, attivare l'opzione Ricorda e premere Ok. Alle successive attivazioni di postOCR, la sostituzione verrà effettuata in automatico. È importante notare che in certi casi é va conservato e non sostituito!

Creazione di un dizionario per la sostituzione f -> s

Il carattere ſ, o s lunga, presente in alcuni testi non recenti, è prevalentemente interpretato dal software OCR come f. Essendo nell'italiano scritto più frequente la s rispetto alla f, una discreta strategia è quella di convertire tutti i caratteri f in s per poi correggere gli eventuali errori. Tuttavia, un metodo più accurato potrebbe essere il seguente: memorizzare le sostituzioni per le parole più comuni e meno ambigue, andando a costituire progressivamente un dizionario di sostituzioni.

Allineamento a destra delle celle contenenti numeri

Un interessante esempio di applicazione di trova e sostituisci congiuntamente alle espressioni regolari. Poniamo il caso in cui la riga della tabella in cui vogliamo allineare le cifre a destra sia la seguente:

|Milano||1924||Torino||1932

È possibile notare che le celle in cui va inserito il codice di allineamento align=right| sono riconoscibili per la presenza di un doppio carattere |, seguito da una cifra numerica. Impostando le espressioni regolari \|\|(\d) in Cerca e ||align=right|$1 in Sostituisci, il lavoro viene svolto agilmente, anche in presenza di molte righe e colonne. :-)

Elimina riga 1

Superato; la funzione è svolta in molti casi da postOCR, nei rimanenti la prima riga può essere cancellata a mano. Verrà rimosso.

PostOCR

Lo strumento postOCR, richiamabile da tastiera con la combinazione Alt+7, ingloba diverse operazioni di correzione del testo ed ha un duplice scopo: rimuovere gran parte dei difetti tipicamente presenti in un testo ottenuto da software OCR - denominati scannos - e inserire automaticamente del codice di formattazione. La versione attuale dello script preserva le parti già formattate - tabelle, link, template, ... - e ciò consente di eseguirlo più volte senza causare modifiche indesiderate alla struttura della pagina; ad esempio, grazie a postOCR è possibile velocizzare la procedura di inserimento degli apostrofi tipografici 1 ponendo in fase iniziale degli apostrofi dattilografici - più facilmente inseribili tramite tastiera - e lanciando poi un'istanza dello strumento.

La quantità di operazioni effettuate da postOCR fa di questo strumento un'importante risorsa durante lo svolgimento dell'attività che costituisce il "cuore pulsante" di Wikisource: la correzione del testo e l'inserimento di template ricorrenti in nsPagina. E lo è nonostante alcune delle sue funzioni siano eseguite automaticamente durante il caricamento del testo fornito dal software OCR in una nuova pagina, poiché esso incorpora alcune procedure che possono essere riutilizzate durante la fase di modifica - e che, se conosciute, consentono di svolgere il lavoro più efficacemente.

Approfondimento: come funziona?

Prima di iniziare ad usare postOCR e per comprenderne appieno l'utilità, occorre avere le idee ben chiare riguardo le operazioni - ripetitive e laboriose - necessarie per trasformare il testo prodotto da un software OCR, anche di elevata qualità, in un lavoro che soddisfi ai requisiti di correttezza e buona formattazione di Wikisource.

Un elenco (incompleto) delle azioni da svolgere per correggere il testo è il seguente:

  1. Rimuovere porzioni di testo non facenti parte del corpo della pagina, come intestazione di pagina, piè di pagina e residui di pagine precedenti o successive.
  2. Verificare che quanto riportato, punteggiatura compresa corrisponda fedelmente all'originale a fronte.
    1. Correggere gli errori di scansione generici;
    2. Correggere gli errori di scansione specifici per l'opera su cui si sta lavorando;
  3. Ricomporre le parole spezzare a fine riga, trascurando inizialmente gli "a capo".
  4. Sistemare le spaziature in corrispondenza dei segni di interpunzione.
  5. Convertire gli apostrofi dattilografici in apostrofi tipografici (ove previsto).
  6. Marcare le aree in versi con i tag <poem>...</poem>.
  7. Nei testi in prosa, esternamente alle aree in versi:
    1. Identificare i paragrafi aggiungendo una riga vuota tra la fine di un paragrafo e l'inizio del successivo;
    2. Ricomporre ogni paragrafo rimuovendo gli "a capo" presenti tra i suoi periodi.

All'interno del namespace Pagina vanno poi eseguite le seguenti operazioni:

  1. Aggiungere in testa alla pagina, nella sezione header, l'intestazione. Ciò dev'essere fatto utilizzando il template {{RigaIntestazione}}, opportunamente compilato: in genere, si devono inserire il numero di pagina ed un riferimento all'opera o al capitolo.
  2. Sistemare le parole spezzate a inizio o fine pagina, usando il template {{Pt}} ("parola tronca" 2).
  3. Verificare se sono presenti citazioni ad autori o opere ed eventualmente aggiungere i riferimenti mediante i template {{AutoreCitato}} e {{TestoCitato}}.
  4. Sistemare le note a piè di pagina usando i tag <ref>...</ref>
  5. Aggiungere, se presente, il piè di pagina nella sezione footer, utilizzando {{PieDiPagina}}.

Eseguendo postOCR, vengono automatizzate una buona parte delle azioni contenute nella prima lista e l'inserimento dell'intestazione di pagina. La procedura può essere poi completata - dopo aver marcato le aree in versi! - con l'utilizzo degli strumenti aggiusta paragrafi e unisci linee. Per la correzione di errori "opera-specifici", postOCR agisce in cooperazione con trova e sostituisci; questa procedura è tuttavia complessa, data la necessità di caricare in memoria e salvare in una pagina le liste di sostituzioni "opera-specifiche" che sono state "ricordate", e verrà trattata a parte.

L'automazione dell'inserimento dell'intestazione di pagina si basa sull'analisi - lettura e caricamento in memoria - del testo completo presente due facciate prima rispetto a quella corrente, alla ricerca della presenza del template {{RigaIntestazione}}. Le intestazioni di pagina sono infatti simili rispettivamente per il recto ed il verso di una pagina di libro 3, tranne che per il numero di pagina; da libro a libro, l'intestazione di pagina può differire in base al capitolo. Ciò che fa postOCR è leggere la riga di intestazione ottenuta, identificare il numero di pagina, adeguarlo per la pagina attualmente in fase di modifica, e inserire in header il risultato ottenuto; nel caso di un cambio radicale di intestazione da una pagina all'altra, è necessaria una correzione manuale. Lo script non inserisce nessuna riga di intestazione se si verifica una condizione tra:

  1. L'analisi non restituisce alcuna riga di intestazione - quindi, nella facciata ispezionata non si trovava alcun template {{RigaIntestazione}}.
  2. Nella pagina che si sta modificando è già presente {{RigaIntestazione}}.

Inoltre, prima di inserire un nuovo template {{RigaIntestazione}}, postOCR verifica - in caso non vi sia ancora alcuna riga di intestazione - la corrispondenza della prima riga del corpo pagina con la riga di intestazione calcolata: se la somiglianza è sufficientemente alta, esso rimuove automaticamente tale riga.

Aggiusta paragrafi

Combinazione da tastiera Alt+6

L'output prodotto da un software OCR non sempre presenta una corretta separazione dei paragrafi originali: alcune volte, infatti, essi vengono giustamente strutturati, altre volte invece il testo fornito è compattato e privo di righe vuote, corrispondenti in sintassi wiki ad un inizio di paragrafo. Lo strumento aggiusta paragrafi serve al rilettore per snellire le operazioni di suddivisione della pagina. Lo script agisce inserendo una riga vuota dopo ogni segno di interpunzione forte - punto fermo, punto esclamativo, punto interrogativo, ... - che in buona parte dei testi indica la fine di un paragrafo; la sua efficacia è alta su testi con periodi molto lunghi, mentre in presenza di frasi molto brevi tende ad aggiungere righe vuote in eccesso. Queste andranno rimosse manualmente.

Prima di avviare aggiusta paragrafi, è essenziale delimitare le eventuali parti in versi con i marcatori <poem>...</poem>, in modo da prevenire l'inserimento di righe vuote di troppo all'interno di queste sezioni.

Unisci linee

Combinazione da tastiera Alt+8

Unisci linee è uno strumento specifico per i testi in prosa e per gli scritti in cui sono presenti sia prosa che poesia, opportunamente delimitata da marcatori <poem>...</poem>. La sua efficacia è massima quando combinato con gli strumenti postOCR e aggiusta paragrafi. Perché?

Grazie a postOCR, le parole tronche a fine riga vengono ricomposte, ma permangono gli "a capo" a fine riga, spesso non necessari. D'altro canto, aggiusta paragrafi aggiunge delle righe vuote ma mantiene intatti i ritorni a capo interni ai paragrafi. Qui entra in gioco unisci linee: gli "a capo" interni ad un paragrafo vengono rimpiazzati da una spaziatura semplice ed il testo viene di fatto compattato. Il vantaggio di avere i periodi compatti e non separati su più righe è quello di poter utilizzare strumenti che agiscono su un singolo periodo, come la formattazione in corsivo, senza doversi preoccupare del fatto che al primo ritorno a capo la sua azione termina.

Una buona prassi, su una nuova pagina contenente il testo OCR appena generato, è quella di lanciare la sequenza postOCR -> aggiusta paragrafi -> unisci linee, ottenendo con il minimo sforzo una formattazione pressoché completa; un'alternativa ancora più comoda è digitare da tastiera Alt+7, poi Alt+6 ed infine Alt+8.

RigaIntestazione

Superato; la funzione è stata rivista e inglobata in postOCR

Tools per la numerazione dei versi

Da “Numero riga ogni 3” a “Elimina tutti i {{R}}”: Tools per la numerazione automatica dei versi, trattati a parte.

converti é -> è

La convenzione ortografica che indica l'accento é come appropriato per varie congiunzioni (perché, poiché...) è recente; i testi meno recenti (anche del XIX secolo) sono anteriori a questa convenzione e l'ortografia originale va rispettata. Sia l'OCR che trascrizioni usate come fonte però riportano la versione moderna é invece che quella originale è; il tool converte tutte le ricorrenze di é in è. Attenzione ai testi con parti in francese, in cui la differenza fra i due accenti è importante e va conservata.

virgolette

Il problema delle virgolette diverse dall'apostrofo semplice è complesso, perchè generalmente sono in coppie di caratteri diversi che devono comparire nella giusta sequenza di apertura - chiusura. Inoltre, visono parecci stili diversi di virgolette.

Inoltre, i due caratteri sono difficili da ottenere con la tastiera; si possono inserire utilizzando i caratteri speciali o la raccolta di codici nella Edittool (gadget attivato di default). Il tool virgolette consente di inserire le virgolette come normali caratteri "come qui"; alla prima pressione di Virgolette tutte le doppie virgolette di qualsiasi formato vengono convertite nel tipo standard più comune: “questo”; un secondo click le inverte (scambia le aperture con le chiusure) in modo di sistemare le cose anche nel caso anomalo in cui la prima virgoletta del testo è di chiusura. Avviene quando la virgoletta di apertura è nella pagina precedente. Le successive pressioni alternano le due possibilità.

Una ottima alternativa per modificare il tipo di virgolette aperte e chiuse, purchè siano due caratteri diversi, è il tool trova & sostituisci, memorizzando la sostituzione con l'opzione "Ricorda"; la sostituzione verrà eseguita sempre, nel momento della chiamata a postOCR.

Domande?

Se hai domande, dubbi, proposte o necessiti di chiarimenti sui regex Menu Framework premi qui per lasciare un messaggio nella pagina di discussione oppure apri una discussione nel bar principale.

Note

  1. La convenzione sul trattamento degli apostrofi in sede di trascrizione prevederebbe un utilizzo prevalente dell'apostrofo dattilografico, per la maggior facilità di inserimento. Utilizzando postOCR, si può parzialmente rimediare a quest'impedimento.
  2. In realtà Pt è acronimo di "Pagina-Testo", perchè il contenuto de primo parametro si visualizza in Pagina, il contenuto del secondo in Testo; ma a fini mnemonici "parola tronca" va benissimo :-)
  3. recto e verso di una pagina indicano la facciata destra e sinistra, a seconda della tipologia di scrittura di una lingua.