- Questo topic ha 5 risposte, 4 partecipanti ed è stato aggiornato l'ultima volta 10 anni, 10 mesi fa da
OldClaudio.
-
CreatoreTopic
-
23 Ottobre 2015 alle 6:44 #103813::
Salve a tutti,
sto cercando di scrivere un articolo scientifico disposto su due colonne; vorrei tuttavia che titolo e abstract occupassero l’intera larghezza del foglio, ho impostato dunque in questo modo il sorgente:\documentclass[a4paper,twocolumn]{article}
[…]\begin{document}
\begin{onecolumn}
\noindent \large{\textbf{bla bla bla….}}\noindent \emph{bla bla bla…}
\end{onecolumn}\section{Introduzione}
bla bla bla…I problemi sono due: l’abstract (scritto in corsivo tramite comando \emph) lo scrive in \large sebbene abbia chiuso la graffa in precedenza….ma soprattutto dall’introduzione in poi continua a scrivere su una colonna!! 😕
Any suggestion?
-
CreatoreTopic
-
AutoreRisposte
-
-
23 Ottobre 2015 alle 6:51 #103814::
De Leo” post=103832Salve a tutti,
sto cercando di scrivere un articolo scientifico disposto su due colonne; vorrei tuttavia che titolo e abstract occupassero l’intera larghezza del foglio, ho impostato dunque in questo modo il sorgente:\documentclass[a4paper,twocolumn]{article}
[…]\begin{document}
\begin{onecolumn}
\noindent \large{\textbf{bla bla bla….}}\noindent \emph{bla bla bla…}
\end{onecolumn}\section{Introduzione}
bla bla bla…I problemi sono due: l’abstract (scritto in corsivo tramite comando \emph) lo scrive in \large sebbene abbia chiuso la graffa in precedenza….ma soprattutto dall’introduzione in poi continua a scrivere su una colonna!! 😕
Any suggestion?
Ciao.
\large è una direttiva non una macro con argomento. Il tuo codice viene interpretato così:
1 Imposto la dimensione del font a large
2 Apri un gruppo
3 Stampa in bold “bla bla bla…”Fai questo test:
`\documentclass{article}
\begin{document}normal font\large large font \normalsize normal font
\end{document}`
Non hai una classe documento già pronta da usare per il tuo articolo?
R.
-
23 Ottobre 2015 alle 7:13 #103815
-
23 Ottobre 2015 alle 7:29 #103816::
per le colonne su stackexchange ho trovato
`
\twocolumn[
\begin{@twocolumnfalse}
\maketitle
\begin{abstract}
…
\end{abstract}
\end{@twocolumnfalse}
]
`
-
23 Ottobre 2015 alle 9:25 #103817::
De Leo” post=103834No, sto provando a “costruirmi” una traccia che poi spero di poter riciclare 🙂
Comunque grazie mille, la questione della dimensione caratteri l’ho risolta…ora vedo come fare per l’incolonnamento!
Puoi ispirarti al codice scritto per le classi documento dei template disponibili su latextemplate.com e sharelatex.com.
Puoi chiedere qui di aiutarti a scrivere il codice (presenta una base).Ma se stai costruendo una traccia allora stai costruendo una classe documento!
Sotto la forma di classe il tuo codice è immediatamente disponibile (metti il .cls nel tuo albero locale o personale), e gli articoli sono molto più “puliti”.
Eventualmente sarà poi molto semplice condividere la classe magari con la licenza libera LaTeX.
R.
-
23 Ottobre 2015 alle 10:32 #103818::
@De_Leo, per fare delle cose non previste dalle classi, bisogna conoscere alcune cose di base. L’ABC di LaTeX è contenuto nella guida tematica Il LaTeX Reference Manual commentato liberamente scaricabile dalla sezione Documentazione di questo forum.Ma certe cose sono delicate e bisogna capirle fino in fondo, in particolare bisogna conoscere la differenza fra dichiarazione e comando. Nella guida tematica suddetta la cosa dovrebbe essere spiegata bene; in particolare le dichiarazioni e i comandi relativi ai font sono ben sottolineate.
Non altrettanto bene, forse, sono sottolineate le differenze fra le dichiarazioni e comandi globali rispetto a quelli locali. La definizione è semplice: quello locali sono delimitati da un gruppo, esplicito o implicito; i comandi per i gruppi espliciti sono \begingroup e \endgroup, \bgroup e \egroup, { e }. I comandi impliciti sono quelli impostati dagli ambienti, quindi da [tt] \begin {…} e \end {…}[/tt]. Ma i comandi e le dichiarazioni globali se ne infischiano dei gruppi e quindi usare gruppi espliciti o ambienti non serve a niente.
Ecco perché quando scrivi [tt]\large\textbf{bla bal}[/tt] il carattere nero agisce solo su bla bla, mentre la dichiarazione \large agisce da quel punto in poi, quindi non solo su bla bla, ma su tutto quel che viene dopo. Se tu scrivessi [tt]\textbf{\large bla bla}[/tt], \large agirebbe solo sull’argomento bla bla, e non manifesterebbe i uoi effetti sul resto del testo.
\onecolumn e \twocolumn sono invece dichiarazioni globali; l’ambiente onecolumn non esiste e non potrebbe esistere proprio per la globalità della dichiarazione \onecolumn; infatti che cosa fa [tt]\begin{onecolumn}[/tt]? Imposta un po’ di cose per la diagnostica degli ambienti di LaTeX, ma essenzialmente comincia un gruppo implicito dichiarando \begingroup, poi esegue il comando \onecolumn; di lì in poi si compone su una colonna. OK; ma poi viene \end{onecolumn} che esegue un po’ di verifiche per segnalare se eventualmente si stia chiudendo l’ambiente sbagliato, poi esegue \endonecolumn, poi chiude il gruppo con la dichiarazione \endgroup. Ma, che succede? non esistendo l’ambente onecolumn, non esiste nemmeno il comando \endonecolumn, che viene quindi trattato come \relax (cioè: “rilassati, non fare niente”); quindi la composizione continua imperterrita su una colonna.
Ne tuo caso, anche sapendo queste cose, non servirebbe a niente dare il comando \twocolumn dopo la chiusura dell’ambiente, perché questo comando, prima di passare alla composizione a due colonne eseguirebbe un comando implicito \clearpage, che non sta per niente bene all’inizio dell’articolo, dopo il titolo e l’abstract.
Vedi come sono complesse le cose?
Invece il comando che ti suggerisce @IlFuria.AWT funziona. Perché? L’ambiente @twocolumnfalse non esiste, ma quando \begin entra in funzione, fa le stesse cose preliminari, poi esegue il comando locale \@twocolumnfalse che imposta a falso lo switch \if@twocolumn; ecco quindi che iniziando a comporre l’abstract o quel che vuoi, lo compone ad una colonna, cioè a piena pagina. Quando \end entra in funzione esegue \relax al posto di \end@twocolumnfalse, visto che l’ambiente non esiste, ma dopo chiude il gruppo con \endgroup, per cui l’impostazione a falso dello switch, viene dimenticata dentro il gruppo e uscendo dal gruppo lo switch torna ad essere vero, come lo era prima di entrare in questo finto ambiente.
Complicato? forse sì all’inizio, ma quando si sono capite queste cose, il tutto diventa di una chiarezza lampante. Capite queste cose e diverse altre dello stesso genere, diventa poi facile scrivere delle classi e, se sono davvero utili, vale poi la pena di caricarle su CTAN con l’opportuna documentazione per condividerle con altri, nello spirito di condivisione degli utenti del sistema TeX.
Scusa se sono stato un po’ lunghetto, ma credo che convenga consumare qualche parola in più per le spiegazioni, che non limitarsi a dire “fai cosi che funziona”. Non dico che questo secondo approccio talvolta non sia necessario, ma secondo me più si spiega, più si dà la possibilità di capire, e quindi di aiutare gli altri a diventare più o meno autosufficienti. Dopo 30 anni che uso LaTeX dovrei io stesso essere autosufficiente, ma qualche volta ho scritto anch’io per aiuto.
“Nessuno nasce imparato!”
-
-
AutoreRisposte
- Devi essere connesso per rispondere a questo topic.