summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/generic/FAQ-en/faq-support.tex
blob: 1a08d1865cfef90a97cbe4f4646d6ea366058e5f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
% $Id: faq-support.tex,v 1.9 2014/01/28 18:17:36 rf10 Exp rf10 $

\section{Support Packages for \TeX{}}

\Question[Q-xfigetc]{\AllTeX{}-friendly drawing packages}
\AliasQuestion{Q-xfig}
\AliasQuestion{Q-figetc}

\ProgName{(X)Fig} is a menu driven tool that allows you to
draw objects on the screen of an \acro{X} workstation; \ProgName{transfig}
is a set of tools which translate the code \ProgName{fig}.  The list
of export formats is very long, and includes \MF{} and \MP{},
Encapsulated \PS{} and \acro{PDF}, as well as combinations that wrap
a graphics format in a \LaTeX{} import file, which may include
\LaTeX{} commands to place text (compiled by \LaTeX{} itself) as
labels, etc., in the figures.

There's no explicit port of \ProgName{xfig} to windows (although it is
believed to work under \ProgName{cygwin} with its X-windows system).
However, the program % ! line break
\href{http://tams-www.informatik.uni-hamburg.de/applets/jfig/}{\ProgName{jfig}}
is thought by many to be an acceptable substitute, written in Java.

\ProgName{Asymptote} is a widely-praised development of the \MP{}
language, which can draw 2D or 3D diagrams, and can also label
diagrams with \LaTeX{} text; copious documentation is available via
\href{http://asymptote.sourceforge.net}{\ProgName{asymptote}'s web site}.
\begin{ctanrefs}
\item[asymptote]\CTANref{asymptote}
\item[xfig]\CTANref{xfig}
\item[transfig]\CTANref{transfig}
\end{ctanrefs}
\LastEdit{2011-05-02}

\Question[Q-texcad]{\TeX{}\acro{CAD}, a drawing package for \LaTeX{}}

\TeX{}\acro{CAD} is a program for the \acro{PC} which enables the user to draw diagrams
on screen using a mouse or arrow keys, with an on-screen menu of available 
picture-elements. Its output is code for the \LaTeX{}
\environment{picture} environment. 
Optionally, it can be set to include lines at all angles using 
the em\TeX{} driver-family
\htmlignore
(\Qref*{\csx{special}s}{Q-specials}).
\endhtmlignore
\begin{htmlversion}
\Qref{\csx{special}s}{Q-specials}.
\end{htmlversion}
\TeX{}\acro{CAD} is part of the em\TeX{} distribution.

A Unix port of the program (\ProgName{xtexcad}) has been made.
\begin{ctanrefs}
\item[emtex]\CTANref{emtex}
\item[xtexcad]\CTANref{xtexcad}
\end{ctanrefs}

\Question[Q-spell]{Spelling checkers for work with \TeX{}}

`Traditional' approaches to the problem (of checking your spelling) were
designed to work with a plain text file; in our case, we have an \alltex{}
source.  For the user, this is a simple-to-understand way to do the
job; but for the spell-checker programmer, it requires heuristic (and
hence fallible) analysis of \alltex{} macros and so on.  The
alternative, of viewing the text \emph{after} \alltex{} has processed
the results, is covered below.

The user of an \Qref*{shell/editor}{Q-editors} will usually find it
embeds a spelling checker.  For command-line use, there are several
choices, depending on the system you're using.

For Unix, \ProgName{ispell} was long the program of choice; it is well
integrated with \ProgName{emacs}, and deals with some \TeX{} syntax.
However, it has more-or-less been replaced everywhere, by
\ProgName{aspell}, which was designed as a successor, and certainly
performs better on most metrics; there remains some question as to its
performance with \AllTeX{} sources.  The most recent offering (which
is widely used in other open-source software projects) is
\begin{hyperversion}
  \href{http://hunspell.sourceforge.net/}{\ProgName{Hunspell}}.
\end{hyperversion}
\begin{flatversion}
  Hunspell~(see \URL{http://hunspell.sourceforge.net/}).
\end{flatversion}
\ProgName{Hunspell} is available for other architectures, too; a web
search shows versions available for Windows, at least.

For the Macintosh, \ProgName{Excalibur} has long been used; its
distribution comes with dictionaries for several languages.
\ProgName{Hunspell} (see above) is actually part of OS X from version 10.6.

The \acro{VMS} Pascal program \ProgName{spell} makes special cases of
some important features of \LaTeX{} syntax.

For \MSDOS{}, there are several programs.  \ProgName{Amspell} can be
called from within an editor, and \ProgName{jspell} is an extended
version of \ProgName{ispell}.

An alternative approach takes \alltex{} output, and checks that.  A
straightforward approach is to produce \acro{PDF} output, and process
it with \ProgName{pdftotext}, using any plain text checker on the
result (the checkers listed above all work in this r\^ole).  For this
to work reasonably well, the user should disable hyphenation before
making the \acro{PDF} output.

The (experimental) \luatex{}/\latex{} package \Package{spelling} goes
one step further: it uses \ProgName{lua} code to extract words
\emph{while typesetting is going on}, but before hyphenation is
applied.  Each word is looked up in a list of known bad spellings, and
the word highlighted if it appears there.  In parallel, a text file is
created, which can be processed by a `normal' spelling checker to
produce a revised ``bad spelling'' list.  (The package documentation
shows the end result; it includes words such as `spellling', which are
duly highlighted.)
\begin{ctanrefs}
\item[4spell]\CTANref{4spell}
\item[amspell]\CTANref{amspell}
\item[aspell]Browse \CTANref{aspell}~--- choose just those language
  dictionaries (under subdirectory \File{dict/}) that you need.
\item[excalibur]\CTANref{Excalibur}
\item[ispell]\CTANref{ispell}
\item[jspell]\CTANref{jspell}
\item[spelling.sty]\CTANref{spelling}
\item[\nothtml{\bgroup\rmfamily}\acro{VMS}\nothtml{\egroup} spell]%
  \CTANref{vmspell}
\item[winedt]\CTANref{winedt}
\end{ctanrefs}
\LastEdit{2013-10-02}

\Question[Q-wordcount]{How many words have you written?}

One often has to submit a document (e.g., a paper or a dissertation)
under some sort of constraint about its size.  Sensible people set a
constraint in terms of numbers of pages, but there are some that
persist in limiting the numbers of words you type.

A simple solution to the requirement can be achieved following a
simple observation: the powers that be are unlikely to count all the
words of a document submitted to them.  Therefore, a statistical
method can be employed: find how many words there are on a full page;
find how many full pages there are in the document (allowing for
displays of various sorts, this number will probably not be an
integer); multiply the two.  However, if the document to be submitted
is to determine the success of the rest of one's life, it takes a
brave person to thumb their nose at authority quite so
comprehensively\dots{}

The simplest method is to strip out the \AllTeX{} markup, and to count
what's left.  On a  Unix-like system, this may be done using
\ProgName{detex} and the built-in \ProgName{wc}:
\begin{quote}
\begin{verbatim}
detex <filename> | wc -w
\end{verbatim}
\end{quote}
The technique is beguilingly simple, but it's not terribly accurate

The \ProgName{latexcount} script does the same sort of job, in one
``step''; being a \ProgName{perl} script, it is in principle rather
easily configured (see documentation inside the script).
Several \Qref*{editors and shells}{Q-editors} offer something similar.

\ProgName{TeXcount} goes a long way with heuristics for counting,
starting from a \LaTeX{} file; the documentation is comprehensive, and
you may try the script on-line via the % ! line break
\begin{hyperversion}
  \href{http://folk.uio.no/einarro/Comp/texwordcount.html}{package home page}.
\end{hyperversion}
\begin{flatversion}
  package home page~(see
  \URL{http://folk.uio.no/einarro/Comp/texwordcount.html}).
\end{flatversion}

However, even quite sophisticated stripping of \AllTeX{} markup can
never be entirely reliable: markup itself may contribute typeset
words, or even consume words that appear in the text.

The \Package{wordcount} package
contains a Bourne shell (i.e., typically Unix) script for running a
\LaTeX{} file with a special piece of supporting \TeX{} code, and then
counting word indications in the log file.  This is probably as
accurate automatic counting as you can get, if it works for you.
\begin{ctanrefs}
\item[detex]\CTANref{detex}
\item[latexcount.pl]\CTANref{latexcount}
\item[TeXcount]\CTANref{texcount}
\item[wordcount]\CTANref{wordcount}
\end{ctanrefs}