Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Problemi con MiKTex e Circuits Macros

Linguaggi e sistemi

Moderatori: Foto UtenteMassimoB, Foto UtentePaolino, Foto Utentefairyvilje

0
voti

[1] Problemi con MiKTex e Circuits Macros

Messaggioda Foto Utentebanjoman » 30 apr 2014, 12:40

Dopo aver letto in un altro post che Foto UtenteDirtyDeeds usa Circuits_Macros per generare immagini di alta qualità per disegnare circuiti elettrici, ho deciso di provarlo.

Tribolando un po' (uso Windows XP), mi sono installato Circuits_Macros, una versione di m4.exe funzionate prelevata dal pacchetto UnxUtils e dpic.

Ho scritto un piccolo file di prova .m4 (copiato da qui).

Passato con m4 e dpic, tutto ok.

I file .tex ottenuto lo includo in un mio articolo, giusto per provare se funziona tutto.
Inizialmente TexWorks mi dà un errore, perché non avevo incluso il pacchetto pstricks.
Includo il pacchetto.

Mi appare un messaggio che deve scaricare e installare un altro package (non ricordo quale). Gli do' l'ok, inizia il download, che per due volte non va a buon fine. Cerco lumi su internet. A quanto sembra possono esservi problemi di timeout su alcuni siti, così decido di eseguire il download, anziché da una random repository, dal sito ftp di uniroma.it.
Finalmente riesce ad effettuare il download completo, dopo 5 minuti buoni (mi chiede di scaricare ancora un altro pacchetto, ma stavolta va tutto a buon fine).
Finalmente provo a ricompilare il mio documento, e stavolta appare il messaggio di errore:

Codice: Seleziona tutto
("C:\Documents and Settings\mmazza\My Documents\Articoli EY\Analisi_grafica_cir
cuiti\picture.tex"
! Undefined control sequence.
<recently read> \c@lor@to@ps
                             
l.8 \pscircle(0,0){0.03125}
                           
?


e qui mi sono definitivamente arenato. Non so più cosa fare.

Avete qualche idea?

Io uso TexWorks come editor e pdflatex per generare il documento finale. Tenete presente che sono ancora alle prime armi con MikTex.. :(

Max
Se funziona quasi bene, è tutto sbagliato. A.Savatteri/M.Mazza
Avatar utente
Foto Utentebanjoman
7.928 5 8 12
Master EY
Master EY
 
Messaggi: 1180
Iscritto il: 19 set 2013, 19:27

1
voti

[2] Re: Problemi con MiKTex e Circuits Macros

Messaggioda Foto UtenteDirtyDeeds » 30 apr 2014, 15:01

Usando pdflatex non conviene generare il file per pstricks: pdflatex non supporta il postcript (in modo diretto) mentre lo fa latex (però consiglio pdflatex). Usando pdflatex conviene generare l'uscita per tikz con l'opzione -g. Per esempio, io compilo così:

Codice: Seleziona tutto
m4 mycirc.m4 | dpic -g > mycirc.tex


Dopo di che nel file tex ci sarà qualcosa del tipo:

Codice: Seleziona tutto
\documentclass[...]{...}
\usepackage{tikz}

...

\begin{document}

...

\begin{figure}
\centering
\input{mycirc}
\caption{...}
\label{fig:mycirc}
\end{figure}

...

\end{document}
It's a sin to write sin instead of \sin (Anonimo).
...'cos you know that cos ain't \cos, right?
You won't get a sexy tan if you write tan in lieu of \tan.
Take a log for a fireplace, but don't take log for \logarithm.
Avatar utente
Foto UtenteDirtyDeeds
55,8k 7 11 13
G.Master EY
G.Master EY
 
Messaggi: 7013
Iscritto il: 13 apr 2010, 16:13
Località: Somewhere in nowhere

0
voti

[3] Re: Problemi con MiKTex e Circuits Macros

Messaggioda Foto Utentebanjoman » 2 mag 2014, 1:39

Provato...

Ho incluso il pacchetto tikz, ora ottengo questo:

Codice: Seleziona tutto
("C:\Documents and Settings\mmazza\My Documents\Articoli EY\Analisi_grafica_cir
cuiti\picture.tex"
! Undefined control sequence.
l.8 \psset
          {linewidth=0.8pt}%
?


Il preambolo del mio documento è questo:

Codice: Seleziona tutto
\documentclass[a4paper]{article}
%\usepackage{cmbright}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[italian]{babel}
\usepackage{graphicx}
\usepackage{booktabs}
\usepackage{caption}
\usepackage{siunitx}
\usepackage{wrapfig}
\usepackage{tikz}

\begin{document}

\author{Massimo Mazza}
\title{Analisi grafica di circuiti elettronici}
\maketitle

......

\begin{figure}
\input{picture}
\end{figure}

.......




:(
Se funziona quasi bene, è tutto sbagliato. A.Savatteri/M.Mazza
Avatar utente
Foto Utentebanjoman
7.928 5 8 12
Master EY
Master EY
 
Messaggi: 1180
Iscritto il: 19 set 2013, 19:27

1
voti

[4] Re: Problemi con MiKTex e Circuits Macros

Messaggioda Foto UtenteDirtyDeeds » 2 mag 2014, 8:06

banjoman ha scritto:Ho incluso il pacchetto tikz, ora ottengo questo:


Nel file .m4 devi sostituire la riga

Codice: Seleziona tutto
include(pstricks.m4)


con

Codice: Seleziona tutto
include(pgf.m4)


Poi compili con l'opzione -g:

Codice: Seleziona tutto
m4 picture.m4 | dpic -g > picture.tex


Prova per esempio con questo:

Codice: Seleziona tutto
include(pgf.m4)
include(libcct.m4)

\small
.PS
      cct_init
     
      elen = 1.0*elen_
      define(`dimen_',1.0*dimen_)

I:    gap(up_ 1.5*elen,,A); llabel(,V_\textup{i},)
      resistor(right_ 1.5*elen); llabel(,R,); rlabel(,\SI{15}{\kilo\ohm},)
      {
        line right_ 0.75*elen
O:      reversed(`gap',down_ to (Here,I.start),,A); llabel(,V_\textup{o},)
      }
      capacitor(down_ to (Here,I.start)); llabel(,C,); rlabel(,\SI{270}{\pico\farad},)
      dot
      ground(,,S)
      line from I.start to O.end
.PE


Se poi vuoi provare se tutto funziona ecco un esempio più complesso che fa anche uso del package boxdims:

Codice: Seleziona tutto
include(pgf.m4)
include(libgen.m4)
include(libcct.m4)

\boxdimfile{fig.dim}
\small
.PS                           
    cct_init
    sinclude(fig.dim)
    s_init(txt)
     
    define(`dimen_',1*dimen_)
    elen = 1.4*dimen_
   
    ground(,,S)
    source(up_ 0.75*elen,V); llabel(,V_{\textup{C}},)
    line right_ 0.5*elen
    {
      line up_ 0.5*elen
      source(right_ 0.75*elen,V); llabel(,V_{\textup{D}}/2,)
      resistor(right_ elen); llabel(,\displaystyle R_{\textup{E}}+\frac{\Delta R_{\textup{E}}}{2},)
      line right_ 0.25*elen
      source(right_ 0.75*elen,V); llabel(,V_{\textup{OS}},)
V2:   Here   
      s_box(`$V_\textup{IP}$') at Here + (0,2pt__) above   
      }
    {
      line down_ 0.5*elen
      reversed(`source', right_ 0.75*elen,V); rlabel(,V_{\textup{D}}/2,)
      resistor(right_ elen); rlabel(,\displaystyle R_{\textup{E}}-\frac{\Delta R_{\textup{E}}}{2},)
      line right_ elen
V1:   Here
      s_box(`$V_\textup{IN}$') at Here - (0,2pt__) below
      }
      gap(from V1 to V2,,A); { s_box(`$V_{\textup{ID}}$') at 1/2<V1,V2> rjust }
      line right_ 0.25*elen
      {
        source(down_ to (Here,V1),I); llabel(,\displaystyle\frac{I_{\textup{OS}}}{2},)
      }
      line right_ 0.7*elen; dot
      {
        source(up_ 0.75*elen,I); llabel(,I_{\textup{B}},)
        ground(,,S,90)
        }
      {
        resistor(right_ 1.5*elen); llabel(,2R_{\textup{IC}}+\Delta R_{\textup{IC}},)
        line to (Here,V1)
        {
          line from last line.c right_ 0.2*elen
          ground(,,S)
          }
        resistor(left_ 1.5*elen); llabel(,2R_{\textup{IC}}-\Delta R_{\textup{IC}},)
        {
          source(down_ 0.75*elen,I); rlabel(,I_{\textup{B}},)
          ground(,,S)
          }
        }
      resistor(down_ to (Here,V1)); llabel(,R_{\textup{ID}}\pa(-4R_{\textup{IC}}),); dot
      line to V1
     
      thinlines_
OL:   line up_ 4.5*elen with .c at 1/2<V1,V2>-(0.75*elen,0)
      Point_(-20)
      line to rvec_(elen,0)
      line dashed to rvec_(0.5*elen,0)
      move to OL.start
      Point_(20)
      line to rvec_(elen,0)
      line dashed to rvec_(0.5*elen,0)
.PE


Un codice .tex che lo include è il seguente:

Codice: Seleziona tutto
\documentclass{article}
\usepackage{amsmath}
\usepackage{boxdims}
\usepackage{tikz}

\newcommand{\pa}{\ensuremath{\mathbin{||}}}

\begin{document}
\input{fig}
\end{document}


La compilazione va fatta in due passate: prima compili la figura con m4 e PIC, poi compili il latex, e poi ricompili figura e latex. Il package boxdims è contenuto in Circuit macros.
It's a sin to write sin instead of \sin (Anonimo).
...'cos you know that cos ain't \cos, right?
You won't get a sexy tan if you write tan in lieu of \tan.
Take a log for a fireplace, but don't take log for \logarithm.
Avatar utente
Foto UtenteDirtyDeeds
55,8k 7 11 13
G.Master EY
G.Master EY
 
Messaggi: 7013
Iscritto il: 13 apr 2010, 16:13
Località: Somewhere in nowhere

0
voti

[5] Re: Problemi con MiKTex e Circuits Macros

Messaggioda Foto Utentebanjoman » 2 mag 2014, 12:22

DirtyDeeds ha scritto:
Nel file .m4 devi sostituire la riga

Codice: Seleziona tutto
include(pstricks.m4)


con

Codice: Seleziona tutto
include(pgf.m4)



Aaaaaargh, mi ero dimenticato di cambiare l'include! #-o

Ora funziona tutto, grazie! :ok:

Mi rimane ancora solo un problemino: non riesco a far sì che m4 smetta di brontolare che non trova le librerie.
Ho settato la variabile d'ambiente così:
Codice: Seleziona tutto
set M4PATH="d:\Program Files\miktex 2.9\circuit_macros"

(sono in ambiente Windows XP) ma m4 non la vede proprio.
Per compilare devo usare l'opzione -I così:
Codice: Seleziona tutto
m4 -I "d:\Program Files\miktex 2.9\circuit_macros" picture.m4 >picture.PIC

che alla lunga diventa noiso.....

Hai qualche idea?
Se funziona quasi bene, è tutto sbagliato. A.Savatteri/M.Mazza
Avatar utente
Foto Utentebanjoman
7.928 5 8 12
Master EY
Master EY
 
Messaggi: 1180
Iscritto il: 19 set 2013, 19:27

1
voti

[6] Re: Problemi con MiKTex e Circuits Macros

Messaggioda Foto UtenteDirtyDeeds » 2 mag 2014, 12:44

banjoman ha scritto:Ho settato la variabile d'ambiente così:


Prima una nota: quando aggiungi package che non fanno parte della distribuzione standard non aggiungerli nella cartella di MikTeX. Prepara nel tuo profilo locale una cartella (tipicamente chiamata texmf) in cui mettere tutti i package non standard ed eventualmente quelli personali. Il motivo è che se a un certo punti volessi aggiornare MikTeX, magari reinstallandolo perché passi a una nuova versione, perderesti i package aggiunti. Una volta creata la cartella, ricordati di aggiungerla alle roots nelle MiKTeX Options (come administrator). Quando prepari la cartella, cerca di rispettare le regole della TeX Directory Structure.

Poi, potrebbe essere che il problema da te riscontrato sia dovuto alla presenza di spazi nella variabile M4PATH, meglio usare un percorso senza spazi, soprattutto su un sistema vecchio come XP. Io per esempio ho:

Codice: Seleziona tutto
C:\users\xxx\texmf\tex\latex\circuit_macros


e funziona correttamente.
It's a sin to write sin instead of \sin (Anonimo).
...'cos you know that cos ain't \cos, right?
You won't get a sexy tan if you write tan in lieu of \tan.
Take a log for a fireplace, but don't take log for \logarithm.
Avatar utente
Foto UtenteDirtyDeeds
55,8k 7 11 13
G.Master EY
G.Master EY
 
Messaggi: 7013
Iscritto il: 13 apr 2010, 16:13
Località: Somewhere in nowhere

0
voti

[7] Re: Problemi con MiKTex e Circuits Macros

Messaggioda Foto Utentebanjoman » 2 mag 2014, 17:55

Tutto appost... creato cartella texmf e conseguenti, senza usare spazi nei nomi di cartelle (come odio Win per questo), aggiornato m4path e le roots di miktex.
Ora funziona tutto alla perfezione. :ok:

Non mi resta che divertirmi a imparare bene circuit_macros. Presumo sia come TeX: una volta imparati bene i comandi e la sintassi, si creano le figure "a mente". Il risultato si vede dopo la compilazione.

Nei miei articoli dovrò inserire anche molti grafici. Attualmente me li disegno a manina (su carta e poi scannerizzando) oppure usando gnuplot. Ho intravisto che tu suggerivi asymptote. Non è che il tutto rischia di diventare eccessivamente complicato da imparare tutto in una volta (latex, circuit_macros e magari asymptote...) ? Forse è meglio se faccio un passo alla volta, neh? :?

P.S. i miei articoli vertono sull'elettronica applicata, quindi ricchi di formule, circuiti e grafici.
Se funziona quasi bene, è tutto sbagliato. A.Savatteri/M.Mazza
Avatar utente
Foto Utentebanjoman
7.928 5 8 12
Master EY
Master EY
 
Messaggi: 1180
Iscritto il: 19 set 2013, 19:27

0
voti

[8] Re: Problemi con MiKTex e Circuits Macros

Messaggioda Foto UtenteDirtyDeeds » 2 mag 2014, 18:52

banjoman ha scritto:Presumo sia come TeX: una volta imparati bene i comandi e la sintassi, si creano le figure "a mente".


Diciamo che a mano a mano che uno si costruisce una libreria di disegni, si fa presto a fare nuovi disegni.

banjoman ha scritto:Non è che il tutto rischia di diventare eccessivamente complicato da imparare tutto in una volta (latex, circuit_macros e magari asymptote...) ?


Beh, in effetti, studiare tutto in una botta può essere un po' overwhelming. Tieni però presente che il linguaggio PIC su cui si basa Circuit Macros può anche essere utilizzato per fare grafici di funzione (qui il manuale in postscript, notare l'autore ;-) ). Se guardi il manuale di Circuit Macros vedrai che ci sono anche delle macro adatte a fare grafici 3D.

Io devo dire che non mi sbatto molto nell'imparare a utilizzarli bene: parto da un codice già fatto e modifico.
It's a sin to write sin instead of \sin (Anonimo).
...'cos you know that cos ain't \cos, right?
You won't get a sexy tan if you write tan in lieu of \tan.
Take a log for a fireplace, but don't take log for \logarithm.
Avatar utente
Foto UtenteDirtyDeeds
55,8k 7 11 13
G.Master EY
G.Master EY
 
Messaggi: 7013
Iscritto il: 13 apr 2010, 16:13
Località: Somewhere in nowhere

2
voti

[9] Re: Problemi con MiKTex e Circuits Macros

Messaggioda Foto UtenteDarwinNE » 2 mag 2014, 23:05

Lungi dal voler distogliere l'attenzione dall'argomento principale, mi chiedevo se, Foto Utentebanjoman, sei a conoscenza del fatto che i disegni fatti con FidoCadJ si possono includere facilmente in documenti LaTeX (sempre utilizzando PGF/TikZ). Ne avevo parlato brevemente qui:

viewtopic.php?f=16&t=25685&p=199571#p199571

Il messaggio è un pochino obsoleto, perché con le ultime versioni è possibile cambiare la dimensione del disegno senza editare il file prodotto.

Ne parlo perché è la ragione principale per cui io uso FidoCadJ e perché personalmente ho un modo di ragionare abbastanza "visuale" e non riesco a lavorare bene su un circuito manipolando codice.

Chiudo l'OT :-)
Follow FidoCadJ development on Twitter: https://twitter.com/davbucci
Avatar utente
Foto UtenteDarwinNE
26,9k 6 11 13
G.Master EY
G.Master EY
 
Messaggi: 3796
Iscritto il: 18 apr 2010, 9:32
Località: Grenoble - France

0
voti

[10] Re: Problemi con MiKTex e Circuits Macros

Messaggioda Foto UtenteDirtyDeeds » 3 mag 2014, 1:08

Direi che non è affatto OT. Nella carrellata che avevo fatto qui non ti avevo dimenticato ;-)

Già che ci sono, per completezza, segnalo anche pst-circ e circuitikz: nessuno dei due però mi ha mai entusiasmato. Devo ammettere, però, che non mi hanno mai neanche entusiasmato le sintassi di pstricks e tikz: preferisco lavorare con un linguaggio grafico ad hoc e poi usare un convertitore.
It's a sin to write sin instead of \sin (Anonimo).
...'cos you know that cos ain't \cos, right?
You won't get a sexy tan if you write tan in lieu of \tan.
Take a log for a fireplace, but don't take log for \logarithm.
Avatar utente
Foto UtenteDirtyDeeds
55,8k 7 11 13
G.Master EY
G.Master EY
 
Messaggi: 7013
Iscritto il: 13 apr 2010, 16:13
Località: Somewhere in nowhere

Prossimo

Torna a PC e informatica

Chi c’è in linea

Visitano il forum: Nessuno e 7 ospiti