Risposte nei forum create
-
AutoreRisposte
-
::
Ciao, Angelico:1. cosa scrivi nel preambolo del file .tex?
2. Compili con pdflatex?Io adopero plain TeX e non LaTeX. Il file .tex nel formato plain TeX non prevede qualcosa che si chiami ‘preambolo’.
Compilo con TeX, cioè dicendo$ tex filename
. Tuttavia i vari passi descritti nel precedente messaggio sono del tutto indipendenti (credo, almeno, ma non vedo come potrebbe non essere così) dal fatto che si adoperi plain TeX oppure LaTeX, ovvero anche pdftex o pdflatex. Infatti, tutta quella procedura serve semplicemente per mettere Emacs in grado di leggere e scrivere i caratteri cinesi. La compilazione del file sorgente avviene dopo, e qui entra poi in gioco il tipo di applicazione usata. Io, come ti ho detto, ho scaricato ChiTeX, che vale sia per plain TeX e sia per LaTeX. Poi ci sono altre routine per scrivere cinese: per esempio, quei pacchetti CJK, che funzionano credo solo con LaTeX (e forse anche con pdflatex) e non con plain TeX. Insomma, ChiTeX (il programma che io ho scaricato) e i pacchetti CJK (quelli che tu hai scaricato) sono due sistemi diversi per scrivere cinese, ma nella fase di configurazione di Emacs descritta nel mio precedente messaggio questa differenza non dovrebbe ancora emergere.
Quindi non so dirti cosa mettere nel preambolo del file da compilare con LaTeX. Però con ChiTeX e anche con CJK questo non dovrebbe essere difficile da appurare.Ciao, mi farai sapere quando proverai a mettere in pratica il tutto.
Rodolfo
::
Ciao, Angelico:😀 non è stato facilissimo, ma alla fine grazie all’aiuto di altre persone
sono riuscito a risolvere se non al cento per cento in gran parte, credo,
il problema di utilizzare (La)TeX per scrivere gli ideogrammi cinesi.
Sul mio PC ho Mandrake Linux 9.1. Innanzitutto io ho installato ChiTeX.
Mi pare che tu abbia già installato i pacchetti CJK, quindi non so se ChiTeX ti interessa.
Nel caso mi farai sapere.1) Innanzitutto il problema di scrivere i caratteri cinesi nel file sorgente.
Ti dico come ho fatto io: ho controllato se Emacs era in grado di visualizzarli.
Da dentro Emacs, ho impartito il comando:M-x view-hello-file
e sulla riga che incomincia con la parola ‘Chinese’ ero in grado di leggere i caratteri cinesi. (Se tu non sarai altrettanto fortunato fammelo sapere, ma non so se sarò in grado di aiutarti.) Poi ho impartito il comando
C-u M-x toggle-input-method RET TAB
e ho controllato che tra i vari metodi di input ci fosse quello chiamato ‘chinese-py’.
2) Poi il problema di *leggere* i caratteri cinesi in Emacs.
Ho verificato che nel mio sistema fosse presente un font chiamato ‘fangsong ti’ nediante il comando$ xfontsel
e l’ho trovato. Anche qui, se non dovessi altrettanto fortunato dimmelo ma non so se sarò in grado di aiutarti.
Verificati i punti 1) e 2), ho aggiunto al mio file .emacs le seguenti righe:
(create-fontset-from-fontset-spec “-isas-fangsong
ti-medium-r-normal–16-160-72-72-c-160-gb2312.1980-0” t)(set-language-environment “Chinese-GB”)
(set-selection-coding-system ‘cn-gb-2312)
(set-clipboard-coding-system ‘cn-gb-2312)
(set-keyboard-coding-system ‘cn-gb-2312)
(setq locale-coding-system ‘cn-gb-2312)
(set-terminal-coding-system ‘chinese-iso-8bit)
(setq default-input-method ‘chinese-py-punct)Quindi ho chiuso Emacs e l’ho riaperto. Ora dovresti essere in grado di leggere i caratteri cinesi con Emacs, e anche di scriverli mediante il metodo ‘chinese-py’. Questo è usato per scrivere il ‘Cinese semplificato’, largamente usato nella Cina popolare. Invece il metodo ‘chinese-py-b5’ è usato per scrivere il ‘Cinese tradizionale’, usato solo ad Hong Kong e a Taiwan.
Per scrivere ‘Ciao’, batti semplicemente:‘n’ ‘i’ ‘1’ ‘h’ ‘a’ ‘o’ ‘1’
. Per passare immediatamente dal metodo di input cinese a quello normale e viceversa
batti semplicemente ‘C-\’.3) Resta il problema di spedire e-mail in grado di supportare i caratteri cinesi.
Per questo c’è bisogno di usare Gnus per gestire la posta elettronica.
Gnus dovrebbe essere già installato asseme ad Emacs. La versione 21 di Emacs contiene la versione 5.9 di Gnus, che è abbastanza recente. Io però non ho ancora imparato ad usare Gnus, sto cercando di impararlo, e però innanzitutto devo prima risolvere il problema del collegamento a Internet con Linux (a proposito, non è che per caso potresti aiutarmi in tal senso?)Fammi sapere se qualcosa non ti è chiaro e se la cosa ti riesce.
Rodolfo
::
La caratteristica che cercavo non rientra a quanto pare nelle possibilità né di xdvi né di HyperTeX,
almeno nella sua semplice applicazione hyperbasics.tex, quella che adopero io.
Quindi sarei dovuto riuscire a convincere qualcuno degli autori
(Stefan Urlich per xdvik o Tamnmoy Bhattacharya per hyperbasics.tex)
ad apportare le opportune modifiche alle rispettive applicazioni,
cosa tutt’altro che facile. 🙄💡 Ho trovato invece una soluzione non so se raffinata
o invece piuttosto ‘casareccia’ e arrangiata. Comunque funziona.
Forse la spiegazione che ora riporto non potrà essere molto utile agli utenti di LaTeX
(io uso plain TeX), ma chissà.Per creare i riferimenti incrociati (cross references) io adopero il pacchetto eplain.tex,
coi suoi due comandi: \definexref{}{}{} per l’etichetta
(quella che in LaTeX se non sbaglio corrisponde al comando \label)
e \ref{} o \refn{} per il riferimento.
Avevo già provveduto a modificare leggermente il file eplain.tex per avere la possibilità di creare riferimenti incrociati anche tra due diversi file
(e senza bisogno di specificare i loro nomi, naturalmente!):
per evitare di essere troppo prolisso qui non spiego come,
ma se a qualcuno interessa basta inviare un messaggio su questo topic.
Chiamiamo myeplain.tex questa versione leggermente modificata di eplain.tex.
Quindi ho fatto così.Nel file1.tex ho scritto:
`\input myeplain
\input hyperbasics
\newtoks\filename
\filename={file1}\hyperdef\mysymbol{label1}{}{}\definexref{label1}{\the\filename.dvi}{}
\vfill\eject\end`
, e nel file2.tex
`\input myeplain
\input hyperbasics
\definexref{}{}{} %non so perché ma è necessario inserire questa riga,
%altrimenti ci sono guai\hyperref{\refn{label1}}{label1}{}{Voila!}
\vfill\eject\end`
In questo modo ottengo l’hyperlink dal file2.dvi nel file1.dvi senza far riferimento al file1.dvi.
L’unico incomodo è quello di dover riassegnare la variabile \filename
se il file1 dovesse cambiare nome, poco male.Ciao,
Rodolfo
::
😀 Grazie!
Vedendoti così sicuro mi sono messo a fare ulteriori prove,
prima con LaTeX e kdvi e poi di nuovo con TeX e xdvi,
e ho scoperto che il mio errore era che quando includevo il file secondario nel file principale
scrivevo il path completo. Io facevo così:
`\Input{/home/rodolfo/…/file1.tex}`
mentre avrei dovuto fare così:
`\Input{file1}`
In realtà, il path completo volendo si può anche usare, ma allora nel file .emacs invece che
`xdvi-jump-to-line`
bisogna scrivere
`xdvi-jump-to-line-fullpath`
Anche questa è una bella scoperta, che però mi ha fatto impazzire un po’ di giorni.
Resta ancora una questione col file xdvi-search.el.
Quello in mio posesso è una versione dell’anno scorso, leggermente modificata da Andrea
per poter far partire la ricerca in avanti direttamente da Emacs.
Se al suo posto cerco di usare l’xdvi-search.el contenuto nell’ultima distribuzione di xdvik
(o una delle ultime), la 22.84.1, quella che ho appena installato, la ricerca inversa non funziona più.
Spero che presto risolveremo anche questa faccenda.
Nel frattempo, per evitare ad altri di impazzire un po’ di giorni,
aggiorno per l’ennesima volta il resoconto, che ormai è il frutto di un lavoro collettivo.😯 Ricerca inversa e in avanti per plain TeX e LaTeX,
con xdvi ed Emacs,
in Mandrake Linux 9.1.1. Sul tuo PC installa emacs e auctex mediante il comando `urpmi’ dalla console di root.
2. Usa emacs per modificare il file .emacs: digita
`emacs ~/.emacs`
dalla Shell di Linux.
3. Vai in fondo al file (potrebbe verosimilmente essere vuoto: nessun problema) e aggiungi le righe
`(add-to-list 'load-path (expand-file-name “~/lib/emacs”))
(require 'xdvi-search)
(add-hook 'LaTeX-mode-hook (lambda () (local-set-key “\C-x\C-j” 'xdvi-jump-to-line-fullpath)))
(add-hook 'TeX-mode-hook (lambda () (local-set-key “\C-x\C-j” 'xdvi-jump-to-line-fullpath)))
(server-start)`
lasciando vuota l’ultima riga del file, poi salva il file e esci da emacs.
4. Dalla Shell di Linux impartisci i comandi
`mkdir -p ~/lib/emacs (invio)`
e copia, nella directory ~/lib/emacs che hai appena creata, il file xdvi-search_andrea.el che potrò spedirti io stesso dietro tua richiesta, ovvero si potrebbe mettere tra i downloads di Guit.
5. Crea un link simbolico col file xdvi-search_andrea.el: impartisci il comando
`ln -s xdvi-search_andrea.el xdvi-search.el`
Il comando ln -s crea un collegamento tra file, così che a uno stesso file possano corrispondere nomi diversi.
6. Nel caso tu sia interessato ad impostare le opzioni -hl, -sidemargin e -topmargin di xdvi, vai alla riga 209 del file xdvi-search_andrea.el, che è
`” -editor 'emacsclient +\%l \%f' “`
e modificala in (per esempio)
`” -editor 'emacsclient +\%l \%f' -hl brown -sidemargin 5 -topmargin 3 “`
7. Rilancia emacs in modo che legga il file xdvi-search_andrea.el, poi richiudilo.
8. Apri il tuo file sorgente, diciamolo myfile.tex, impartendo, sempre dalla Shell di Linux, il comando
`emacs ~/…/myfile.tex (invio)`
(i puntini sospensivi qui stanno a indicare la porzione del path che viene dopo /home/tizio/) e inserisci all’inizio del file il comando
`\input /usr/share/texmf/tex/latex/srcltx/srctex.sty`
se stai usando plain TeX, ovvero il comando
`\usepackage[active]{srcltx} `
se stai usando LaTeX.
9. Se myfile.tex è un file `principale’ che include altri file sorgente secondari’,
9a. nel caso tu stia usando plain TeX, al posto di
`\input` devi dire
`\Input{}`
, con la I maiuscola e le parentesi graffe;
9b. per sicurezza, procura di mettere tutti i file (sia quello principale sia quelli secondari, e sia anche quello di output, cio\`e il file .dvi) in una stessa directory,
ma può anche darsi che ciò non sia necessario se in ogni \Input{} scrivi il path completo;
9c. sia che tu stia usando plain TeX sia che tu stia usando LaTeX, aggiungi in fondo a ogni file ‘secondario’ le righe
`%%% Local Variables:
%%% TeX-master: “~/…/myfile.tex”
%%% End:`
9d. Salva tutti i file, chiudili e poi riaprili.
10. Esegui la ricerca in avanti: in un punto qualsiasi del file sorgente batti
Ctrl-x Ctrl-j
e voilà: la ricerca in avanti.
11. Ora la ricerca inversa: in un punto qualsiasi del file .dvi clicca Ctrl-mouse1 e voilà: la ricerca inversa.
::
Io veramente prima d’ora non avevo ancora sperimentato le due ricerche nel caso di un progetto multifile,
cioè nel caso di un file principale, chiamiamolo ‘masterfile.tex’, che includa altri file secondari, diciamoli file1.tex, file2.tex eccetera.
🙁 Ebbene, sperimentandole per la prima volta mi sono accorto che non funzionano.
O meglio, la ricerca inversa va ancora bene; ma il tentativo di far partire quella in avanti,
diciamo da file1.tex,
produce da parte di Emacs il messaggio:File file1.dvi does not exist; you have to run latex first!
Eppure ho seguito alla lettera tutti i passi descritti nell’ultimo messaggio del 10 luglio.
Qui ci vorrebbe Andrea, che però sembra sparito!
C’è qualcuno che ha già sperimentato la cosa, con cui potermi confrontare?Rodolfo
::
Alla fine sono riuscito ad installare xdvik 22.84.1 non senza difficoltà.
Ho dovuto prima installare gcc sul mio PC, poi il pacchetto XFree86-devel,
e poi anche creare un file di nome libXpm.so nella directory /usr/X11R6/lib/
mediante un link sinbolico col file libXpm.so.4 già presente nella stessa directory.
A questo punto ho impartito i comanditar xvfz xdvik-22.84.1.tar.gz
cd xdvik-22.84.1
./configure && makee nella directory $HOME/xdvik-22.84.1/texk/xdvik/ è finalmente apparso il file eseguibile xdvi-xaw.bin,
che piazzato in una delle directory presenti nella PATH di sistema mi ha consentito di lanciare l’applicazione.In realtà è stato ancora più complicato di così, e mi ha dato una mano Stefan Urlich.
Grazie comunque a Enrico e ad Emiliano.
Ora ho ottenuto quello che dicevo all’inizio del topic, e cioè un hyperlink tra due file .dvi differenti:
nel file1.tex scrivo
\hyperdef\mysymbol{label}{}{}
e nel file2.tex
\hyperref{file1.dvi}{label}{}{Voila!},
quindi apro file1.dvi e file2.dvi e cliccando sulla parola ‘Voila!’ nel file2.dvi schizzo immediatamente nel file1.dvi, al punto esatto.Benissimo.
Ora però (e forse chiedo troppo!) vorrei che ciò avvenisse *senza* esplicito riferimento
(all’interno del comando \hyperref) al file1.dvi di destinazione. Cioè, vorrei che il tutto funzionasse scrivendo semplicemente
\hyperref{}{label}{}{Voila!} invece che
\hyperref{file1.dvi}{label}{}{Voila!}.
Quest’ultimo comando, insomma, e cioè \hyperref, o un altro comando appositamente definito al suo posto,
dovrebbe essere in grado da solo di trovare il file1.dvi nell’ambito dell’intera directory, basandosi sulla sola ‘label’.
Ritengo questa caratteristica, qualora sia realizzata, molto importante e utile, anzi indispensabile.
Infatti, in questo modo si potrebbe creare un ipertesto vasto e articolato, composto di diversi file separati,
le cui varie parti e sottoparti potrebbero liberamente essere spostate qua e là, tagliate e incollate a piacere,
insomma l’ipertesto continuamente modificato nella sua struttura;
cosa impossibile se c’è l’obbligo, quindi il vincolo di specificare il file di destinazione in ogni hyperlink tra file diversi.Non so se sono stato abbastanza chiaro!
Con LaTeX è possibile fare questo?
Qualcuno ha qualche idea in proposito?
(O forse qualcuno può indicarmi una qualche mailing list che si occupa specificamente di questioni legate ad hyperref? Io non sono riuscito a trovarne.)Ciao,
Rodolfo
::
Ciao a tutti.Mediante il comando ‘urpmi’ ho installato gcc, presente sui CD della Mandrake,
quindi ho impartito i comanditar zxf xdvik-22.78.tar.gz
cd xdvik
./configure
makee poi, in qualità di root, il comando
make install
come più o meno, credo, Enrico suggeriva, e apparentemente tutto è andato liscio, senza messaggi di errore.
Ma poi quando apro un file .dvi la versione è sempre quella vecchia, la 22.40.
Quindi l’installazione non ha avuto luogo! 😥🙄 Qualche altro suggerimento?
Rodolfo
::
Ai comanditar zxf xdvik-22.78.tar.gz
cd xdvik
./configureottengo la risposta
creating cache ./config.cache
checking whether make sets ${MAKE}… yes
checking for gcc… no
checking for cc… no
configure: error: no acceptable cc found in $PATH(Il comando
echo $PATH
ottiene invece la risposta
/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/usr/games:/home/rodolfo/bin)
🙁 Cosa devo fare?
Rodolfo
-
AutoreRisposte