Arquivo da categoria: Programação e ferramentas

Conversão em lote, vol. 2


Um comando alternativo ao postado anteriormente em https://incertezaemprincipio.wordpress.com/2012/11/24/conversao-eps-jpg-ou-vice-versa-em-lote/:

 mogrify -format jpg *.eps

Com o imagemagick instalado, o comando exemplo acima converte todos os arquivos em .eps numa pasta para o formato jpg. Claro, funciona com diversos outros formatos de imagem também.

Até a próxima!

Algumas dicas não triviais para plots no Maple


Eu aconselho qualquer um que esteja começando a precisar usar software de manipulação algébrica a não usar o Maple. Apesar de ter uma linguagem bastante simples e uma excelente interface (não gosto muito da IDE do Mathematica), o CAS canadense possui uns bugs muito irritantes, que um dia ainda escreverei sobre. Mas, como já tenho muita coisa escrita no Maple, ficaria difícil mudar para outro software no momento, ainda mais no fim do doutorado.

Uma coisa chata de se fazer no Maple (e que é trivial em outros sistemas, como por exemplo no Mathematica), é ajustar o tamanho dos eixos de um gráfico através de um comando, coisa fundamental para padronizar plots para publicação. O padrão fornecido é o ajuste via “clicar na figura e arrastar”, algo totalmente não prático.

Outro procedimento que, na minha opinião, deveria ser mais prático é o de exportação de figuras no tamanho/resolução escolhido pelo usuário. Por default, você pode clicar com o botão direito do mouse sobre um plot, e escolher a opção “exportar” no popup que se abre. No entanto, não é fornecida nenhuma opção ao usuário além do formato desejado para a figura. Nada de escolher resolução/qualidade/tamanho etc.

Depois de algum tempo pesquisando, consegui finalmente encontrar a solução para meus problemas aqui: http://www.mapleprimes.com/questions/125945-Plot-Size-On-Export-With-Maple-15

A idéia é criar uma função, chamada no Maple de “Procedure”, para especificar as opções desejadas para exportar seu plot:

MakeWidePlot := proc(p::evaln)
     local name, place, opts:
         name := cat("c:/temp/",convert(p,string),".ps"):
         opts := `landscape,width=1024,height=768,noborder`:
     plotsetup('ps', 'plotoutput'=cat(name), 'plotoptions'=opts):
     print( plots:-display( eval(p), 'axesfont' = [ TIMES, 10 ],
                            'labelfont' = [ TIMES, ROMAN, 10] ) ):
     plotsetup(default):
   end proc:

MakeWidePlot(P);

No pedaço de código acima, “P” é o plot definido anteriormente no qual será aplicado as especificações acima, como altura, largura, modo paisagem ou retrato etc. Por exemplo, “P” pode ser:

P:=plot(x^2,x=-1..1);

Também funciona no ambiente “display”, por exemplo,

P:=display({plot1,plot2…},opts);

Isso mata dois coelhos com uma cajadada só: o problema do tamanho da figura exportada, e o ajuste do tamanho dos eixos.

Até a próxima!

Conversão eps->jpg (ou vice-versa) em lote


1. install imagemagick (sudo apt-get install imagemagick)
2. for i in *.jpg; do convert $i $i.eps; done

Créditos: http://weizhongece.blogspot.com.br/2008/10/batch-convert-jpg-to-eps-on-ubuntu.html

 

Link interessante: Preventing Mathematica from eating up all your memory


Para ler: Walking Randomly http://www.walkingrandomly.com/?p=4655

Problemas com SSH?


Se a mensagem “connect to host localhost port 22: Connection refused” tem teimado em aparecer no seu terminal do Ubuntu (ou de outra distribuição baseada em Debian) quando você tenta acessar um computador remoto via SSH, sugiro 2 passos: o primeiro é reinstalar o SSH no computador remoto. Se não resolver o problema, recomendo seguir as instruções desse ótimo post no fórum oficial do Ubuntu:

http://ubuntuforums.org/showthread.php?t=1702992

Até a próxima!

Compressão de arquivos .pdf no ubuntu (post it)


No terminal, use o seguinte comando, trocando “input” e “output” pelo nome do seu arquivo de entrada e saída, respectivamente.

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=output.pdf input.pdf

Maple 13 no Ubuntu 12.04


Desde que instalei a nova versão do Ubuntu, a 12.04, venho notando que a mesma não é tão “precisa” quanto o nome diz (Precise Pangolin é o codename dessa versão…). Tenho tido problemas com alguns comandos específicos no Maple 13, como o “asympt” e o “series”.  Resultados inesperados estão sendo produzidos na versão 64 bits dessa distribuição. Na versão 32 bits e no windows 7  64 bits tudo parece normal, entretanto.

Resolvi então tentar obter alguma idéia do que estaria ocorrendo no fórum de discussão do Maple, o Maple Primes. Eis então que recebo uma resposta bem desanimadora:

“Unfortunately Maple 13 is not supported and there is no workaround to get it to work in Ubuntu 12.04.  Since Ubuntu 12 was just released, no other versions of Maple are officially supported for it at this time.

That said, Maple 16 does run just fine in Ubuntu 12 and Maple 15 will run provided that it is patched: See this related post for Fedora (Red Hat): http://www.mapleprimes.com/questions/130220-Maple-15-X86-64-LINUX-Fedora-16-Log2”

Ou seja, oficialmente a versão 13 do Maple não é suportada  ( e nem há um esforço para que isso seja revertido) pela versão 12.04 do Ubuntu. A comunidade do Fedora também está relatando alguns bugs que estão ocorrendo na mais nova versão dessa distro.

Para acompanhar os posts relacionados, clique no link http://www.mapleprimes.com/questions/133593-Maple-13-And-Ubuntu-1204#comment133602

Até a próxima!

Comandos básicos do PDFTK (Post it!)


Abaixo segue um lembrete com alguns comandos muito úteis para lidar com arquivos pdf (juntar 2 ou mais arquivos num só, extrair páginas, girar páginas etc) usando o excelente Pdftk (Pdf tool kit). Foram retirados da página http://www.pdflabs.com/docs/pdftk-cli-examples/

Merge Two or More PDFs into a New Document

pdftk 1.pdf 2.pdf 3.pdf cat output 123.pdf

or (Using Handles):

pdftk A=1.pdf B=2.pdf cat A B output 12.pdf

or (Using Wildcards):

pdftk *.pdf cat output combined.pdf

Split Select Pages from Multiple PDFs into a New Document

pdftk A=one.pdf B=two.pdf cat A1-7 B1-5 A8 output combined.pdf

Rotate the First Page of a PDF to 90 Degrees Clockwise

pdftk in.pdf cat 1E 2-end output out.pdf

Rotate an Entire PDF Document’s Pages to 180 Degrees

pdftk in.pdf cat 1-endS output out.pdf

Encrypt a PDF using 128-Bit Strength (the Default) and Withhold All Permissions (the Default)

pdftk mydoc.pdf output mydoc.128.pdf owner_pw foopass

Same as Above, Except a Password is Required to Open the PDF

pdftk mydoc.pdf output mydoc.128.pdf owner_pw foo user_pw baz

Same as Above, Except Printing is Allowed (after the PDF is Open)

pdftk mydoc.pdf output mydoc.128.pdf owner_pw foo user_pw baz allow printing

Decrypt a PDF

pdftk secured.pdf input_pw foopass output unsecured.pdf

Join Two Files, One of Which is Encrypted (the Output is Not Encrypted)

pdftk A=secured.pdf mydoc.pdf input_pw A=foopass cat output combined.pdf

Uncompress PDF Page Streams for Editing the PDF Code in a Text Editor

pdftk mydoc.pdf output mydoc.clear.pdf uncompress

Repair a PDF’s Corrupted XREF Table and Stream Lengths (If Possible)

pdftk broken.pdf output fixed.pdf

Burst a Single PDF Document into Single Pages and Report its Data to doc_data.txt

pdftk mydoc.pdf burst

Report on PDF Document Metadata, Bookmarks and Page Labels

pdftk mydoc.pdf dump_data output report.txt

Article Author: Sid Steward

 

 

Até a próxima!

 

Instalação do Mathematica CDF player no Linux


No terminal, execute os comandos abaixo no diretório onde está localizado o arquivo .sh baixado e siga as instruções na tela:

$chmod +x CDFPlayer_8.0.1_LINUX.sh 
$sudo ./CDFPlayer_8.0.1_LINUX.sh 

Comandos no Xmgrace (post it)


O Grace é um programa para elaboração de gráficos técnicos, ou seja, com qualidade respeitável 😉 Ele é bastante versátil. Além de fazer o básico, que é abrir um arquivo .dat e plotar os pontos no plano cartesiano (plots 3d “ainda” não são possíveis), ele conta com diversas outras funções, como data fitting, transformada de Fourier etc.

Na minha opinião, os grandes pontos fracos desse programa são a arcaica interface e a edição de legendas/texto. Os comandos para escrever equações matemáticas e símbolos são bastante antiquados. Seria ótimo se implementassem algum tipo de compatibilidade com LaTeX…

Este post é justamente para colecionar dicas achadas por aí, para eu não ter que fazer uma varredura no Google quando esquecer ou quiser aprender algum comando ou procedimento específico.

Um tutorial bem abrangente, mas um pouco superficial: http://plasma-gate.weizmann.ac.il/Grace/doc/Tutorial.html#ss2.5

Tutorial mais detalhado, contendo lista de funções etc: http://mintaka.sdsu.edu/reu/grace.tutorial.html

Notas sobre o Grace: http://www.physics.ohio-state.edu/~driver/xmgrace_notes.html

Esse site acima contém uma boa tabela de comandos de texto. Abaixo a reproduzo para futuras referências:

Typesetting

Grace permits quite complex typesetting on a per string basis. Any
string displayed (titles, legends, tick marks,...) may contain special
control codes to display subscripts, change fonts within the string
etc.

Example:

F\sX\N(\xe\f{}) = sin(\xe\f{})\#{b7}e\S-X\N\#{b7}cos(\xe\f{}) 

Control code Description
\f{x} switch to font named "x", e.g. \f{Times}
\f{n} switch to font number n
\f{}  return to original font
\R{x} switch to color named "x"
\R{n} switch to color number n
\R{}  return to original color
\#{x} treat "x" (must be of even length) as list of hexadecimal char
codes
\t{xx xy yx yy}apply transformation matrix
\t{}  reset transformation matrix
\z{x} zoom x times
\z{}  return to original zoom
\r{x} rotate by x degrees
\l{x} slant by factor x
\v{x} shift vertically by x
\v{}  return to unshifted baseline
\V{x} shift baseline by x
\V{}  reset baseline
\h{x} horizontal shift by x
\n new line
\u begin underline
\U stop underline
\o begin overline
\O stop overline
\Fk enable kerning
\FK disable kerning
\Fl enable ligatures
\FL disable ligatures
\m{n} mark current position as n
\M{n} return to saved position n
\dl LtoR substring direction
\dr RtoL substring direction
\dL LtoR text advancing
\dR RtoL text advancing
\x  switch to Symbol font (same as \f{Symbol})
\+  increase size (same as \z{1.19} ; 1.19 = sqrt(sqrt(2)))
\-  decrease size (same as \z{0.84} ; 0.84 = 1/sqrt(sqrt(2)))
\s  begin subscripting (same as \v{-0.4}\z{0.71})
\S  begin superscripting (same as \v{0.6}\z{0.71})
\T{xx xy yx yy}	same as \t{}\t{xx xy yx yy}
\Z{x} absolute zoom x times (same as \z{}\z{x})
\q make font oblique (same as \l{0.25})
\Q undo oblique (same as \l{-0.25})
\N return to normal style (same as \v{}\t{})
\\ print \
\n switch to font number n (0-9) (deprecated)
\c begin using upper 128 characters of set (deprecated)
\C stop using upper 128 characters of set (deprecated)

Alguns sugerem uma mistura do Grace e do Inkscape para facilitar o “acabamento” de seus gráficos. A idéia seria gerar o gráfico no xmGrace e fazer as inclusões de textos com o Inkscape através de sua extensão LaTeX: http://wiki.inkscape.org/wiki/index.php/LaTeX

Até mais,