La riga di comando Dia non funziona

4

Ho un problema con l'utilizzo di Dia dalla riga di comando su OSX 10.7.4. Ho scaricato e installato OS X dmg da link l'ho usato per creare grafica per un foglio e assolutamente lo adoro.

Sto usando un makefile per chiamare pdflatex, bibtex e R in modo che possa creare tutto da zero, se necessario, ma non può far funzionare la linea di comando di Dia.

Voglio usare la riga di comando con -e e -t per esportare la grafica in una directory specifica in modo che pdflatex possa inserirli nel pdf. (Http://dia-installer.de/doc/en/re01.html)

Il problema che sto incontrando è che ogni volta che lo chiamo dal terminale, viene visualizzata la GUI. Anche se do un passaggio a /Applications/Dia.app/Content/Resources/bin/ e uso il comando "./dia -v". Mi dà un sacco di errori su "Metodo di input" e poi mostra la GUI.

Ho guardato le FAQ di Dia e ha molte informazioni per la riga di comando di Windows, ma nulla per OS X.

Spero che qualcuno qui si sia imbattuto in questo e sappia come farlo funzionare.

    
posta Bit Monkey 18.07.2012 - 17:45
fonte

4 risposte

2

Sul Mac, dia (in particolare /Applications/Dia.app/Content/Resources/bin/dia ) è solo un wrapper di script di shell per il binario dia-bin compilato. Imposta un numero di variabili ambientali e quindi termina eseguendo Dia come interfaccia grafica:

exec "$CWD/dia-bin" --integrated

Puoi creare una copia (ad esempio cp -p dia dia-cmd ) e modificare l'ultima riga in dia-cmd per diventare:

"$CWD/dia-bin" $@

e quindi puoi usarlo come dia-cmd all'interno del terminale.

Nota: ho trovato che, per la mia localizzazione (en_US.UTF-8), almeno, l'esecuzione di dia-cmd nel terminale era troppo fastidiosa per cercare di determinare l'impostazione internazionale corretta, vomitando ignorabile avvertenze:

Warning: AppleCollationOrder setting not found, using AppleLocale.
Setting Language: en.UTF8

(process:33043): Gdk-WARNING **: locale not supported by C library

(process:33043): Gtk-WARNING **: Locale not supported by C library.
    Using the fallback 'C' locale.

Puoi eliminarlo commentando anche quelle righe in dia-cmd e forzando manualmente le impostazioni internazionali corrette:

## LANGSTR='defaults read .GlobalPreferences AppleCollationOrder 2>/dev/null'
## if [ "x$LANGSTR" == "x" ]
## then
##    echo "Warning: AppleCollationOrder setting not found, using AppleLocale." 1>&2
##    LANGSTR='defaults read .GlobalPreferences AppleLocale 2>/dev/null | \
##            sed 's/_.*//''
## fi

# NOTE: Have to add ".UTF-8" to the LANG since omitting causes Dia
#       to crash on startup in locale_from_utf8().
## export LANG="$LANGSTR.UTF8"
 export LANG="en_US.UTF-8"
## echo "Setting Language: $LANG" 1>&2

Voila:

MYMACHINE:~ lars$ /Applications/Dia.app/Contents/Resources/bin/dia-cmd -v
Dia version 0.97.2, compiled 18:51:13 Mar 17 2012
    
risposta data 19.07.2012 - 08:06
fonte
2

In base alla risposta accettata , ho creato dia-cli e una scorciatoia, dia :

cd /Applications/Dia.app/Contents/Resources/bin
cp -p dia dia-cli

cd /usr/local/bin
touch dia
sudo chmod +x dia

Contenuti di /Applications/Dia.app/Contents/Resources/bin/dia-cli :

...
"$CWD/dia-bin" $@

Contenuto di / usr / local / bin / dia :

PATH=$PATH:/Applications/Dia.app/Contents/Resources/bin
/Applications/Dia.app/Contents/Resources/bin/dia-cli "$@"
    
risposta data 13.07.2013 - 22:30
fonte
0

Se sei in grado di utilizzare la linea di comando, potresti anche essere interessato a compilare Dia te stesso su Mac OS X utilizzando MacPorts. Tale installazione non includerà lo script wrapper che ha causato i problemi sopra citati. Installa semplicemente MacPorts dal link ed esegui sudo port install dia

    
risposta data 31.08.2012 - 17:19
fonte
-1

e se continui a riscontrare problemi, controlla questo link del blog Dia Diagramma Mac OSX Yosemite Fix

    
risposta data 10.07.2016 - 03:07
fonte

Leggi altre domande sui tag