Xmgrace

From relax wiki
Jump to navigation Jump to search

Grace, also known as Xmgrace, ACE/gr, and Xvgr, is a free WYSIWYG 2D graph plotting tool used by relax grace user functions to provide the highest quality 2D graphing capabilities.

xmgrace

Wikipedia description

xmgrace program options

Recommended page

Keyboard shortcuts

xmgrace font options

Meaning of type-setting codes

Homepage with symbol font conversion from Keyboard letter to greek symbol.

make font oblique: \q Test \Q
greek: use \x w \B
super: use \S letters \N
sub:   use \s letters \N
new line: \n

\0 normal
\1 Bold
\2 Italics
\4 Roman
\8 Greek Font

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

Partial derivative of energy with respect to lambda: \x\c6\CE/\c6\C\xl
Infinity symbol: \x\c%
Angstrom: \cE\C

\qCPMG pulse train frequency \Q (Hz)
\qSpin-lock field strength \xn\B\s1\N\Q (Hz)
\qEffective field in rotating frame \xw\B\seff\N\Q (rad.s\S-1\N)
\qRotating frame tilt angle \xq\B\Q (rad)
\qR\s2,eff\N\Q (rad.s\S-1\N
\qR\s1\xr\B\N\Q (rad.s\S-1\N)
\qR\\s2\N\Q (rad.s\S-1\N)
h\v{0.65}\h{-0.5}\z{0.6}_\v{}\h{}\z{}
\1x\h{-0.2}\v{0.7}.\v{}\h{}
\1x\h{-0.2}\v{0.7}.\v{}\h{}

Manually Convert to png/eps for one xmgrace file

Add this to the end of the xmgrace file

For PNG

#Print out to
@PRINT TO "/sbinlab2/tlinnet/output.png"
@HARDCOPY DEVICE "PNG"
@DEVICE "PNG" FONT ANTIALIASING on
# Make white background transparent
#@DEVICE "PNG" OP "transparent:on"
@DEVICE "PNG" OP "compression:9"
@PRINT

For EPS

#Print out to
@PRINT TO "/sbinlab2/tlinnet/output.eps"
@HARDCOPY DEVICE "EPS"
@DEVICE "EPS" OP "level2"
@PRINT

Then issue an "HARDCOPY" with xmgrace

xmgrace -hardcopy xmgracefile.agr

In bash

bash ;
for agr in `ls *.agr`;do bn=`basename ${agr} .agr`;gracebat ${agr} -hdevice PNG -printfile ${bn}.png;done

Script to make both png and eps for a folder with xmgrace files

#!/bin/bash

for gracefile in *.agr; do
filename=$(basename "$gracefile")
extension="${filename##*.}"
filename="${filename%.*}"

TMPPNG=${filename}_png.tmp
cat $gracefile > $TMPPNG
echo "#Print out to" >> $TMPPNG
echo '@PRINT TO "'"${PWD}/${filename}.png"'"' >> $TMPPNG
echo '@HARDCOPY DEVICE "PNG"' >> $TMPPNG
echo '@DEVICE "PNG" FONT ANTIALIASING on' >> $TMPPNG
echo '# Make white background transparent' >> $TMPPNG
echo '#@DEVICE "PNG" OP "transparent:on"' >> $TMPPNG
echo '@DEVICE "PNG" OP "compression:9"' >> $TMPPNG
echo '@PRINT' >> $TMPPNG
xmgrace -hardcopy $TMPPNG

TMPEPS=${filename}_eps.tmp
cat $gracefile > $TMPEPS
echo "#Print out to" >> $TMPEPS
echo '@PRINT TO "'"${PWD}/${filename}.eps"'"' >> $TMPEPS
echo '@HARDCOPY DEVICE "EPS"' >> $TMPEPS
echo '@DEVICE "EPS" OP "level2"' >> $TMPEPS
echo '@PRINT' >> $TMPEPS
xmgrace -hardcopy $TMPEPS

echo "$filename $extension"
#eps2png -resolution 200 $TMPEPS
#epstopdf $TMPEPS
done

Batch eps to PNG/PDF conversion

bash ;
for epsfile in *.eps; do eps2png -resolution 200 $epsfile; epstopdf $epsfile; echo "Making pdf/png: $epsfile"; done

See also