The R Project SVN R

Rev

Rev 9615 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 9615 Rev 10108
Line 1... Line 1...
1
#!/bin/sh
1
#!/bin/sh
2
#  Rd2dvi -- check man pages (*.Rd help files) by LaTeX..
2
#  Rd2dvi -- Convert man pages (*.Rd help files) via LaTeX to DVI/PDF.
3
#
3
#
4
# Examples:
4
# Examples:
5
#  R CMD Rd2dvi /path/to/Rsrc/src/library/base/man/Normal.Rd
5
#  R CMD Rd2dvi /path/to/Rsrc/src/library/base/man/Normal.Rd
6
#  R CMD Rd2dvi `grep -l "\\keyword{distr" \
6
#  R CMD Rd2dvi `grep -l "\\keyword{distr" \
7
#                  /path/to/Rsrc/src/library/base/man/*.Rd | sort | uniq`
7
#                  /path/to/Rsrc/src/library/base/man/*.Rd | sort | uniq`
8
 
8
 
9
revision='$Revision: 1.18 $'
9
revision='$Revision: 1.18.6.1 $'
10
version=`set - ${revision}; echo ${2}`
10
version=`set - ${revision}; echo ${2}`
11
version="Rd2dvi ${version}" 
11
version="Rd2dvi ${version}" 
12
 
12
 
13
usage="Usage: R CMD Rd2dvi [options] files
13
usage="Usage: R CMD Rd2dvi [options] files
14
 
14
 
Line 19... Line 19...
19
Options:
19
Options:
20
  --debug		turn on shell debugging (set -x)
20
  --debug		turn on shell debugging (set -x)
21
  -h, --help		print short help message and exit
21
  -h, --help		print short help message and exit
22
  --no-clean		do not remove created temporary files
22
  --no-clean		do not remove created temporary files
23
  --no-preview		do not preview generated output file
23
  --no-preview		do not preview generated output file
24
  --output=FILE		write output to FILE
24
  -o, --output=FILE	write output to FILE
25
  --pdf			generate PDF output
25
  --pdf			generate PDF output
26
  --title=NAME		use NAME as the title of the document
26
  --title=NAME		use NAME as the title of the document
27
  -v, --version		print version info and exit
27
  -v, --version		print version info and exit
28
  -V, --verbose		report on what is done
28
  -V, --verbose		report on what is done
29
 
29
 
Line 31... Line 31...
31
 
31
 
32
start_dir=`pwd`
32
start_dir=`pwd`
33
 
33
 
34
clean=true
34
clean=true
35
debug=false
35
debug=false
36
dvi_ext="dvi"
36
out_ext="dvi"
37
output=""
37
output=""
38
preview=xdvi
38
preview=xdvi
39
verbose=false
39
verbose=false
40
 
40
 
41
TEXINPUTS=.:${R_HOME}/doc/manual:${TEXINPUTS}
41
TEXINPUTS=.:${R_HOME}/doc/manual:${TEXINPUTS}
Line 53... Line 53...
53
    --no-clean)
53
    --no-clean)
54
      clean=false ;;
54
      clean=false ;;
55
    --no-preview)
55
    --no-preview)
56
      preview=false ;;
56
      preview=false ;;
57
    --pdf)
57
    --pdf)
58
      dvi_ext="pdf";
58
      out_ext="pdf";
59
      preview=false;
59
      preview=false;
60
      R_RD4DVI=${R_RD4PDF:-"ae,hyper"};
60
      R_RD4DVI=${R_RD4PDF:-"ae,hyper"};
61
      R_LATEXCMD=${PDFLATEX:-pdflatex};;
61
      R_LATEXCMD=${PDFLATEX:-pdflatex};;
62
    --title=*)
62
    --title=*)
63
      title=`echo "${1}" | sed -e 's/[^=]*=//'` ;;
63
      title=`echo "${1}" | sed -e 's/[^=]*=//'` ;;
-
 
64
    -o)
-
 
65
      if test -n "`echo ${2} | sed 's/^-.*//'`"; then      
-
 
66
	output="${2}"; shift
-
 
67
      else
-
 
68
	echo "ERROR: option \`${1}' requires an argument"
-
 
69
	exit 1
-
 
70
      fi
-
 
71
      ;;
64
    --output=*)
72
    --output=*)
65
      output=`echo "${1}" | sed -e 's/[^=]*=//'` ;;
73
      output=`echo "${1}" | sed -e 's/[^=]*=//'` ;;
66
    -V|--verbose)
74
    -V|--verbose)
67
      verbose=echo ;;
75
      verbose=echo ;;
68
    --|*)
76
    --|*)
Line 70... Line 78...
70
  esac
78
  esac
71
  shift
79
  shift
72
done
80
done
73
 
81
 
74
if test -z "${output}"; then
82
if test -z "${output}"; then
75
  output=Rd2.${dvi_ext}
83
  output=Rd2.${out_ext}
76
fi
84
fi
77
 
85
 
78
if ${debug}; then set -x; fi
86
if ${debug}; then set -x; fi
79
 
87
 
80
toc="\\Rdcontents{\\R{} objects documented:}"
88
toc="\\Rdcontents{\\R{} topics documented:}"
81
if [ ${#} -eq 1 -a -d ${1} ]; then
89
if [ ${#} -eq 1 -a -d ${1} ]; then
82
  if test -d ${1}/man; then
90
  if test -d ${1}/man; then
83
    dir=${1}/man
91
    dir=${1}/man
84
  else
92
  else
85
    dir=${1}
93
    dir=${1}
86
  fi
94
  fi
87
  ${verbose} "Rd2dvi: \`Rdconv -t latex' ${dir}/ Rd files ..."
95
  ${verbose} "Rd2dvi: \`Rdconv -t latex' ${dir}/ Rd files ..."
88
  files=`find ${dir} -name "*.[Rr]d" -print | sort`
96
  files=`LC_ALL=C find ${dir} -name "*.[Rr]d" -print | \
-
 
97
    sed -e '/windows\//d' | sort`
89
  subj="all in \\file{`echo ${dir} | sed ${file_sed}`}"
98
  subj="all in \\file{`echo ${dir} | sed ${file_sed}`}"
90
  ${verbose} "files = ${files}"
99
  ${verbose} "files = ${files}"
91
else
100
else
92
  files="${@}"
101
  files="${@}"
93
  if [ ${#} -gt 1 ]; then
102
  if [ ${#} -gt 1 ]; then
Line 95... Line 104...
95
  else
104
  else
96
    subj=
105
    subj=
97
    toc=
106
    toc=
98
  fi
107
  fi
99
  subj="\\file{`echo ${1} | sed ${file_sed}`}${subj}"
108
  subj="\\file{`echo ${1} | sed ${file_sed}`}${subj}"
100
  ${verbose} "Rd2dvi: Collecting files and \`Rdconv -t latex'ing them ..."
-
 
101
fi
109
fi
102
 
110
 
103
${verbose} ""
111
${verbose} ""
104
${verbose} "subj: ${subj}"
112
${verbose} "subj: ${subj}"
105
${verbose} ""
113
${verbose} ""
Line 128... Line 136...
128
\\chapter*{}
136
\\chapter*{}
129
\\begin{center}
137
\\begin{center}
130
{\\textbf{\\huge ${title}}}
138
{\\textbf{\\huge ${title}}}
131
\\par\\medskip{\\large \\today}
139
\\par\\medskip{\\large \\today}
132
\\end{center}
140
\\end{center}
133
${TOC}
141
${toc}
134
EOF
142
EOF
135
 
143
 
-
 
144
echo "Converting Rd files to LaTeX ..."
136
for f in ${files}; do
145
for f in ${files}; do
137
  ${verbose} ${f}
146
  echo ${f}
138
  R CMD Rdconv -t latex ${f} >> ${build_dir}/Rd2.tex
147
  R CMD Rdconv -t latex ${f} >> ${build_dir}/Rd2.tex
139
done
148
done
140
 
149
 
141
cat >> ${build_dir}/Rd2.tex <<EOF
150
cat >> ${build_dir}/Rd2.tex <<EOF
142
\\printindex
151
\\printindex
143
\\end{document}
152
\\end{document}
144
EOF
153
EOF
145
 
154
 
-
 
155
echo "Creating ${out_ext} output from LaTeX ..."
146
cd ${build_dir}
156
cd ${build_dir}
147
${R_LATEXCMD:-latex} Rd2
157
${R_LATEXCMD:-latex} Rd2
148
${R_MAKEINDEXCMD:-makeindex} Rd2
158
${R_MAKEINDEXCMD:-makeindex} Rd2
149
${R_LATEXCMD:-latex} Rd2
159
${R_LATEXCMD:-latex} Rd2
150
cp Rd2.${dvi_ext} ../${output}
-
 
151
cd ${start_dir}
160
cd ${start_dir}
-
 
161
cp ${build_dir}/Rd2.${out_ext} ${output}
152
if ${clean}; then
162
if ${clean}; then
153
  rm -rf ${build_dir}
163
  rm -rf ${build_dir}
154
else
164
else
155
  echo "You may want to clean up by \`rm -rf ${build_dir}'"
165
  echo "You may want to clean up by \`rm -rf ${build_dir}'"
156
fi
166
fi