Open main menu

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

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