The R Project SVN R

Rev

Rev 6098 | Rev 7002 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 6098 Rev 6994
Line 1... Line 1...
1
#!/bin/sh
1
#!/bin/sh
2
#  Rd2dvi -- check man pages (*.Rd help files) by LaTeX..
2
#  Rd2dvi -- check man pages (*.Rd help files) by LaTeX..
3
#
3
#
4
# Example (in $R_HOME):
4
# Examples:
5
#    bin/Rd2dvi src/library/base/man/Normal
5
#  R CMD Rd2dvi /path/to/Rsrc/src/library/base/man/Normal.Rd
-
 
6
#  R CMD Rd2dvi `grep -l "\\keyword\\{distr" \
6
#    bin/Rd2dvi `grep -l 'KEYWORD(distr' src/library/base/man/* |sort|uniq`
7
#                  /path/to/Rsrc/src/library/base/man/*.Rd | sort | uniq`
7
#
8
 
8
Pwd=`dirname $0`
9
START_DIR=`pwd`
9
 
10
 
-
 
11
CLEAN=true
-
 
12
DEBUG=false
10
R_HOME=`R RHOME`
13
USE_XDVI=true
11
 
14
 
12
MANTEXDIR=${R_HOME}/doc/manual
-
 
13
D2L="R CMD Rdconv -t latex"
-
 
14
file_sed='s/[_$]/\\\\&/g'
15
file_sed='s/[_$]/\\\\&/g'
-
 
16
 
15
# Quote the      ^^^^  "\" twice (-> 4 \ ) since it used in ".."
17
while test -n "${1}"; do
-
 
18
  case ${1} in
16
## If perl-sh: sub subject() {
19
    --clean=[nN]*)
17
##	"$1"'{\\Large \\file{'`echo  $2  | sed $file_sed`"}$3" }
20
      CLEAN=false ;;
18
#
21
    --clean=[yY]*)
-
 
22
      CLEAN=true ;;
19
call_dir=`pwd`
23
    --debug=[nN]*)
-
 
24
      DEBUG=false ;;
20
if [ -f Rd2.tex ]
25
    --debug=[yY]*)
21
then
26
      DEBUG=true ;;
-
 
27
    --use-xdvi=[nN]*)
22
    echo "'Rd2.tex' already exists -- renaming it to  Rd2.tex.Older"
28
      USE_XDVI=false ;;
23
    echo " -------- "
29
    --use-xdvi=[yY]*)
24
    mv Rd2.tex Rd2.tex.Older
30
      USE_XDVI=true ;;
-
 
31
    --|*)
-
 
32
      break ;;
25
fi
33
  esac
26
touch Rd2.tex
34
  shift
-
 
35
done
-
 
36
 
-
 
37
TOC="\\Rdcontents{\\R{} objects documented:}"
27
if [ $# -eq 1  -a  -d $1 ]
38
if [ ${#} -eq 1 -a -d ${1} ]; then
-
 
39
  if test -d ${1}/man; then
-
 
40
    dir=${1}/man
28
then
41
  else
29
    dir=$1
42
    dir=${1}
-
 
43
  fi
30
    test -d $dir/man && dir=$dir/man
44
  if ${DEBUG}; then
31
    echo "Rd2dvi : \`Rdconv -t latex' $dir/ files..."
45
    echo "Rd2dvi: \`Rdconv -t latex' ${dir}/ Rd files ..."
-
 
46
  fi
32
    files="${dir}/*.Rd"
47
  files=`find ${dir} -name "*.[Rr]d" -print`
33
    subj='of all in {\\Large \\file{'`echo $dir | sed $file_sed`'}}'
48
  subj="all in \\file{`echo ${dir} | sed ${file_sed}`}"
-
 
49
  if ${DEBUG}; then  
34
    # DBG: echo "files = $files"
50
    echo "files = ${files}"
35
    toc_sed='; s/\\input{Rd/\\Rdcontents{\\R\\ objects documented:} &/'
-
 
-
 
51
  fi
36
else
52
else
37
    files="$@"
53
  files="${@}"
38
    if [ $# -gt 1 ]; then subj=' ...etc '; else subj=''; fi
54
  if [ ${#} -gt 1 ]; then
-
 
55
    subj=" etc.";
-
 
56
  else
-
 
57
    subj=
-
 
58
    TOC=
-
 
59
  fi
39
    subj='of {\\Large \\file{'`echo  $1  | sed $file_sed`"}$subj}"
60
  subj="\\file{`echo ${1} | sed ${file_sed}`}${subj}"
-
 
61
  if ${DEBUG}; then
40
    echo "Rd2dvi : Collecting files and \`Rdconv -t latex'ing them ..."
62
    echo "Rd2dvi: Collecting files and \`Rdconv -t latex'ing them ..."
41
    toc_sed=''
63
  fi
42
fi
64
fi
-
 
65
 
-
 
66
if ${DEBUG}; then
43
## DBG: echo ''; echo 'subj:'; echo "$subj"; echo ''
67
  echo ""; echo "subj:"; echo "${subj}"; echo ""
-
 
68
fi
-
 
69
 
44
for f in $files
70
if test -f Rd2.dvi; then
-
 
71
  echo "file \`Rd2.dvi' exists; please remove first"
-
 
72
  exit 1
-
 
73
fi
-
 
74
BUILD_DIR=.Rd2dvi${$}
-
 
75
if test -d ${BUILD_DIR}; then
-
 
76
  rm -rf ${BUILD_DIR} || echo "cannot write to build dir" && exit 2
45
do
77
fi
-
 
78
mkdir ${BUILD_DIR}
-
 
79
cd ${BUILD_DIR}
-
 
80
 
-
 
81
sed 's/markright{#1}/markboth{#1}{#1}/' \
-
 
82
  ${R_HOME}/doc/manual/Rd.sty > Rd2.sty
-
 
83
 
-
 
84
cat > Rd2.tex <<EOF
-
 
85
\\documentclass[${R_PAPERSIZE}]{book}
-
 
86
\\usepackage{Rd2}
-
 
87
\\usepackage{makeidx}
46
    echo $f
88
\\makeindex
-
 
89
\\begin{document}
-
 
90
\\chapter*{}
-
 
91
\\begin{center}
-
 
92
  {\\textbf{\\huge\\R{} documentation}}
-
 
93
  \\par\\bigskip{\\Large of ${subj}}
-
 
94
  \\par\\medskip{\\large \\today}
-
 
95
\\end{center}
-
 
96
${TOC}
-
 
97
EOF
-
 
98
 
-
 
99
for f in ${files}; do
-
 
100
  if ${DEBUG}; then echo ${f}; fi
47
    $D2L $f >> Rd2.tex
101
  R CMD Rdconv -t latex ${f} >> Rd2.tex
48
done
102
done
-
 
103
 
49
echo "MANTEXDIR='$MANTEXDIR'"
104
cat >> Rd2.tex <<EOF  
50
R_P=`echo 'getenv("R_PAPERSIZE")'| R --vanilla --quiet|grep -v getenv|grep '"'|sed 's/ *//g;s/"//g'`
-
 
51
sed "s/a4paper/${R_P}paper/; s| documentation |& ${subj} |; ${toc_sed}" \
-
 
52
  ${MANTEXDIR}/Rd2dvi.tex > Rd2dvi.tex
105
\\printindex
53
if [ ! -f Rd.sty ]; then
106
\\end{document}
54
 sed 's/markright{#1}/markboth{#1}{#1}/' ${MANTEXDIR}/Rd.sty > Rd2.sty
-
 
55
fi
107
EOF
56
#exit
108
 
-
 
109
${R_LATEXCMD} Rd2
57
#---------------------
110
${R_MAKEINDEXCMD} Rd2
-
 
111
${R_LATEXCMD} Rd2
58
latex Rd2dvi
112
cp Rd2.dvi ..
59
if [ -x `/usr/bin/which makeindex` ]
113
cd ${START_DIR}
60
then makeindex Rd2dvi
114
if ${CLEAN}; then
61
     latex Rd2dvi
115
  rm -rf ${BUILD_DIR}
-
 
116
else
-
 
117
  echo "You may want to clean up by \`rm -rf ${BUILD_DIR}'"
62
fi
118
fi
63
if [ -x `/usr/bin/which xdvi` ]
119
if ${USE_XDVI}; then
64
then  xdvi Rd2dvi &
120
  xdvi Rd2.dvi
65
fi
121
fi
66
echo ''
-
 
67
echo 'Rd2dvi: You may want to clean up by'
-
 
68
echo '    rm -f Rd2dvi.* Rd2.sty Rd2.tex*'
-
 
69
echo ''
-