The R Project SVN R

Rev

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

Rev 7333 Rev 7367
Line 4... Line 4...
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.15 $'
9
revision='$Revision: 1.16 $'
10
VERSION=`set - ${REVISION}; echo ${2}`
10
version=`set - ${revision}; echo ${2}`
-
 
11
version="Rd2dvi ${version}" 
-
 
12
 
11
USAGE_MSG="Usage: R CMD Rd2dvi [options] files"
13
usage="Usage: R CMD Rd2dvi [options] files
-
 
14
 
-
 
15
Generate DVI (or PDF) output from the Rd sources specified by files, by
-
 
16
either giving the paths to the files, or the path to a directory with
-
 
17
the sources of a package.
-
 
18
 
-
 
19
Options:
-
 
20
  --debug		turn on shell debugging (set -x)
-
 
21
  -h, --help		print short help message and exit
-
 
22
  --no-clean		do not remove created temporary files
-
 
23
  --no-preview		do not preview generated output file
-
 
24
  --output=FILE		write output to FILE
-
 
25
  --pdf			generate PDF output
-
 
26
  --title=NAME		use NAME as the title of the document
-
 
27
  -v, --version		print version info and exit
-
 
28
  -V, --verbose		report on what is done
-
 
29
 
-
 
30
Report bugs to <R-bugs@lists.r-project.org>."
12
 
31
 
13
START_DIR=`pwd`
32
start_dir=`pwd`
14
 
33
 
15
CLEAN=true
34
clean=true
16
DEBUG=false
35
debug=false
17
USE_XDVI=true
36
dvi_ext="dvi"
-
 
37
output=""
18
DVI_EXT="dvi"
38
preview=xdvi
19
OUTPUT=""
39
verbose=false
-
 
40
 
20
TEXINPUTS=.:${R_HOME}/doc/manual:${TEXINPUTS}
41
TEXINPUTS=.:${R_HOME}/doc/manual:${TEXINPUTS}
21
 
42
 
22
file_sed='s/[_$]/\\\\&/g'
43
file_sed='s/[_$]/\\\\&/g'
23
 
44
 
24
while test -n "${1}"; do
45
while test -n "${1}"; do
25
  case ${1} in
46
  case ${1} in
26
    -h|--help|-\?)
47
    -h|--help)
27
      echo "${USAGE_MSG}"; exit 0 ;;
48
      echo "${usage}"; exit 0 ;;
28
    -V|--version)
49
    -v|--version)
29
      echo "${VERSION}"; exit 0 ;;
50
      echo "${version}"; exit 0 ;;
30
    --clean=[nN]*)
-
 
31
      CLEAN=false ;;
-
 
32
    --clean=[yY]*)
51
    --debug)
33
      CLEAN=true ;;
52
      debug=true ;;
34
    --debug=[nN]*)
53
    --no-clean)
35
      DEBUG=false ;;
54
      clean=false ;;
36
    --debug=[yY]*)
55
    --no-preview)
37
      DEBUG=true ;;
-
 
38
    --use-xdvi=[nN]*)
-
 
39
      USE_XDVI=false ;;
56
      preview=false ;;
40
    --use-xdvi=[yY]*)
-
 
41
      USE_XDVI=true ;;
-
 
42
    --pdf)
57
    --pdf)
43
      DVI_EXT="pdf";
58
      dvi_ext="pdf";
44
      USE_XDVI=false;
59
      preview=false;
45
      R_RD4DVI=${R_RD4PDF:-"ae,hyper"};
60
      R_RD4DVI=${R_RD4PDF:-"ae,hyper"};
46
      R_LATEXCMD=${PDFLATEX:-pdflatex};;
61
      R_LATEXCMD=${PDFLATEX:-pdflatex};;
47
    --title=*)
62
    --title=*)
48
      TITLE=`echo "${1}" | sed -e 's/[^=]*=//'` ;;
63
      title=`echo "${1}" | sed -e 's/[^=]*=//'` ;;
49
    --output=*)
64
    --output=*)
50
      OUTPUT=`echo "${1}" | sed -e 's/[^=]*=//'` ;;
65
      output=`echo "${1}" | sed -e 's/[^=]*=//'` ;;
-
 
66
    -V|--verbose)
-
 
67
      verbose=echo ;;
51
    --|*)
68
    --|*)
52
      break ;;
69
      break ;;
53
  esac
70
  esac
54
  shift
71
  shift
55
done
72
done
56
 
73
 
57
if test -z ${OUTPUT}; then
74
if test -z ${output}; then
58
  OUTPUT=Rd2.${DVI_EXT}
75
  output=Rd2.${dvi_ext}
59
fi
76
fi
60
 
77
 
-
 
78
if ${debug}; then set -x; fi
-
 
79
 
61
TOC="\\Rdcontents{\\R{} objects documented:}"
80
toc="\\Rdcontents{\\R{} objects documented:}"
62
if [ ${#} -eq 1 -a -d ${1} ]; then
81
if [ ${#} -eq 1 -a -d ${1} ]; then
63
  if test -d ${1}/man; then
82
  if test -d ${1}/man; then
64
    dir=${1}/man
83
    dir=${1}/man
65
  else
84
  else
66
    dir=${1}
85
    dir=${1}
67
  fi
86
  fi
68
  if ${DEBUG}; then
-
 
69
    echo "Rd2dvi: \`Rdconv -t latex' ${dir}/ Rd files ..."
87
  ${verbose} "Rd2dvi: \`Rdconv -t latex' ${dir}/ Rd files ..."
70
  fi
-
 
71
  files=`find ${dir} -name "*.[Rr]d" -print`
88
  files=`find ${dir} -name "*.[Rr]d" -print`
72
  subj="all in \\file{`echo ${dir} | sed ${file_sed}`}"
89
  subj="all in \\file{`echo ${dir} | sed ${file_sed}`}"
73
  if ${DEBUG}; then  
-
 
74
    echo "files = ${files}"
90
  ${verbose} "files = ${files}"
75
  fi
-
 
76
else
91
else
77
  files="${@}"
92
  files="${@}"
78
  if [ ${#} -gt 1 ]; then
93
  if [ ${#} -gt 1 ]; then
79
    subj=" etc.";
94
    subj=" etc.";
80
  else
95
  else
81
    subj=
96
    subj=
82
    TOC=
97
    toc=
83
  fi
98
  fi
84
  subj="\\file{`echo ${1} | sed ${file_sed}`}${subj}"
99
  subj="\\file{`echo ${1} | sed ${file_sed}`}${subj}"
85
  if ${DEBUG}; then
-
 
86
    echo "Rd2dvi: Collecting files and \`Rdconv -t latex'ing them ..."
100
  ${verbose} "Rd2dvi: Collecting files and \`Rdconv -t latex'ing them ..."
87
  fi
-
 
88
fi
101
fi
89
 
102
 
90
if ${DEBUG}; then
103
${verbose} ""
91
  echo ""; echo "subj:"; echo "${subj}"; echo ""
104
${verbose} "subj: ${subj}"
92
fi
105
${verbose} ""
93
 
106
 
94
if test -f ${OUTPUT}; then
107
if test -f ${output}; then
95
  echo "file \`${OUTPUT}' exists; please remove first"
108
  echo "file \`${output}' exists; please remove first"
96
  exit 1
109
  exit 1
97
fi
110
fi
98
BUILD_DIR=.Rd2dvi${$}
111
build_dir=.Rd2dvi${$}
99
if test -d ${BUILD_DIR}; then
112
if test -d ${build_dir}; then
100
  rm -rf ${BUILD_DIR} || echo "cannot write to build dir" && exit 2
113
  rm -rf ${build_dir} || echo "cannot write to build dir" && exit 2
101
fi
114
fi
102
mkdir ${BUILD_DIR}
115
mkdir ${build_dir}
103
 
116
 
104
sed 's/markright{#1}/markboth{#1}{#1}/' \
117
sed 's/markright{#1}/markboth{#1}{#1}/' \
105
  ${R_HOME}/doc/manual/Rd.sty > ${BUILD_DIR}/Rd2.sty
118
  ${R_HOME}/doc/manual/Rd.sty > ${build_dir}/Rd.sty
106
 
119
 
107
TITLE=${TITLE:-"\\R{} documentation}} \\par\\bigskip{{\\Large of ${subj}"}
120
title=${title:-"\\R{} documentation}} \\par\\bigskip{{\\Large of ${subj}"}
108
 
121
 
109
cat > ${BUILD_DIR}/Rd2.tex <<EOF
122
cat > ${build_dir}/Rd2.tex <<EOF
110
\\documentclass[${R_PAPERSIZE}paper]{book}
123
\\documentclass[${R_PAPERSIZE}paper]{book}
111
\\usepackage[${R_RD4DVI:-ae}]{Rd2}
124
\\usepackage[${R_RD4DVI:-ae}]{Rd}
112
\\usepackage{makeidx}
125
\\usepackage{makeidx}
113
\\makeindex
126
\\makeindex
114
\\begin{document}
127
\\begin{document}
115
\\chapter*{}
128
\\chapter*{}
116
\\begin{center}
129
\\begin{center}
117
{\\textbf{\\huge ${TITLE}}}
130
{\\textbf{\\huge ${title}}}
118
\\par\\medskip{\\large \\today}
131
\\par\\medskip{\\large \\today}
119
\\end{center}
132
\\end{center}
120
${TOC}
133
${TOC}
121
EOF
134
EOF
122
 
135
 
123
for f in ${files}; do
136
for f in ${files}; do
124
  if ${DEBUG}; then echo ${f}; fi
137
  ${verbose} ${f}
125
  R CMD Rdconv -t latex ${f} >> ${BUILD_DIR}/Rd2.tex
138
  R CMD Rdconv -t latex ${f} >> ${build_dir}/Rd2.tex
126
done
139
done
127
 
140
 
128
cat >> ${BUILD_DIR}/Rd2.tex <<EOF  
141
cat >> ${build_dir}/Rd2.tex <<EOF
129
\\printindex
142
\\printindex
130
\\end{document}
143
\\end{document}
131
EOF
144
EOF
132
 
145
 
133
cd ${BUILD_DIR}
146
cd ${build_dir}
134
${R_LATEXCMD} Rd2
147
${R_LATEXCMD:-latex} Rd2
135
${R_MAKEINDEXCMD} Rd2
148
${R_MAKEINDEXCMD:-makeindex} Rd2
136
${R_LATEXCMD} Rd2
149
${R_LATEXCMD:-latex} Rd2
137
cp Rd2.${DVI_EXT} ../${OUTPUT}
150
cp Rd2.${dvi_ext} ../${output}
138
cd ${START_DIR}
151
cd ${start_dir}
139
if ${CLEAN}; then
152
if ${clean}; then
140
  rm -rf ${BUILD_DIR}
153
  rm -rf ${build_dir}
141
else
154
else
142
  echo "You may want to clean up by \`rm -rf ${BUILD_DIR}'"
155
  echo "You may want to clean up by \`rm -rf ${build_dir}'"
143
fi
-
 
144
if ${USE_XDVI}; then
-
 
145
  xdvi ${OUTPUT}
-
 
146
fi
156
fi
-
 
157
${preview} ${output}
-
 
158
exit 0
147
 
159
 
148
### Local Variables: ***
160
### Local Variables: ***
149
### mode: sh ***
161
### mode: sh ***
150
### sh-indentation: 2 ***
162
### sh-indentation: 2 ***
151
### End: ***
163
### End: ***