how to open pdf file on button click in mvc : How to change pdf to html application control tool html web page asp.net online letterfaq29-part740

The same happens with captions (the following is a simplification of a
comp.text.tex
post):
\caption{Energy: \[e=mc^2\]}
giving us the error message
! Argument of \@caption has an extra }.
The similar (but more sensible):
\caption{Energy: \(e=mc^2\)}
is more tiresome, still: there’s no error when you first run the job ... but there is on the
second pass, when the list of figures (or tables) is generated, giving:
! LaTeX Error: Bad math environment delimiter.
in the
\listoffigures
processing.
The solution is usually to use a robust command in place of the one you are using,
or to force your command to be robust by prefixing it with
\protect
,which in the
\section
case would show as
\section{Mumble\protect\footnote{I couldn’t think of anything better}}
However, in both the
\section
case and the
\caption
case, you can separate the
moving argument, as in
\section[moving]{static}
;this gives us another standard
route — simply to omit (or otherwise sanitise) the fragile command in the moving
argument. So, one might rewrite the
\caption
example as:
\caption[Energy: (Einstein’s equation)]{Energy: \(E=mc^2\)}
In practice, inserting mathematics in a moving argument has already been addressed in
LaTeX2e by the robust command
\ensuremath
:
\caption{Energy: \ensuremath{E=mc^2}}
So: always look for alternatives to the
\protect
route.
Footnotes can be even more complex; “footnotesinLaTeXsectionheadings deals
specifically with that issue.
420 Capacity exceeded [semantic nest .. .]
! TeX capacity exceeded, sorry [semantic nest size=100].
...
If you really absolutely need more capacity,
you can ask a wizard to enlarge me.
Even though TeX suggests (as always) that enlargement by a wizard may help, this
message usually results from abroken macro or bad parameters to an otherwiseworking
macro.
The “semantic nest” TeX talks about is the nesting of boxes within boxes. A stupid
macro can provoke the error pretty easily:
\def\silly{\hbox{here’s \silly being executed}}
\silly
The extended traceback (seegeneraladviceonerrors) does help, though it does rather
run on. Inthe case above, the traceback consists of
\silly ->\hbox {
here’s \silly being executed}
followed by 100 instances of
\silly ->\hbox {here’s \silly
being executed}
291
How to change pdf to html - application control tool:C# PDF Convert to HTML SDK: Convert PDF to html files in C#.net, ASP.NET MVC, WinForms, WPF application
How to Convert PDF to HTML Webpage with C# PDF Conversion SDK
www.rasteredge.com
How to change pdf to html - application control tool:VB.NET PDF Convert to HTML SDK: Convert PDF to html files in vb.net, ASP.NET MVC, WinForms, WPF application
PDF to HTML Webpage Converter SDK for VB.NET PDF to HTML Conversion
www.rasteredge.com
The repeated lines are broken at exactly the offending macro; of course the loop need
not be as simple as this — if
\silly
calls
\dopy
which boxes
\silly
,the effect is just
the same and alternate lines in the traceback are broken at alternate positions.
There are in fact two items being consumed when you nest boxes: the other is the
grouping level. Whether you exhaust your semantic nest or your permitted grouping
levels first is controlled entirely by the relative size of the two different sets of buffers in
your (La)TeX executable.
421 No room for a new ‘thing’
The technology available to Knuth at the time TeX was written is said to have been
particularly poor at managing dynamic storage; as a result much of the storage used
within TeX is allocated as fixed arrays, in the reference implementations. Many of these
fixed arrays are expandable in modern TeX implementations, but size of the arrays of
“registers” is written into the specification as being 256 (usually); this number may not
be changed if youstill wish to call the result TeX (seetestingTeXimplementations).
If you fill up one of these register arrays, you get a TeX error message saying
! No room for a new \<thing>.
The
\thing
sin question may be
\count
(the object underlying LaTeX’s
\newcounter
command),
\skip
(the object underlying LaTeX’s
\newlength
command),
\box
(the
object underlying LaTeX’s
\newsavebox
command), or
\dimen
,
\muskip
,
\toks
,
\read
,
\write
or
\language
(all types of object whose use is “hidden” in LaTeX; the
limit on the number of
\read
or
\write
objects is just 16).
There is nothing that can directly be done about this error, as you can’t extend the
number of available registers without extending TeX itself. Of coursee-TeX ,W and
LuaTeXalldothis,asdoesMicroPress Inc’s VTeX.
The commonest way to encounter one of these error messages is to have broken
macros of some sort, or incorrect usage of macros (an example is discussed inepsf
problems).
However, sometimes onejust needs morethan TeX can offer, and when this happens,
you’ve just got to work out a different way of doing things. An example is thedifficulty
of loading PiCTeX with LaTeX.Themoremoderndrawingpackage,pgf withits
higher-level interface TikZ is also a common source of such problems.
In such cases, it is usually possible to use thee-TeX extensions (all modern dis-
tributions provide them). The LaTeX package etex modifies the register allocation
mechanism to make use of e-TeX’s extended register sets. Etex is a derivative of the
Plain TeX macro file etex.src, which is used in building the e-TeX Plain format; both
files are part of the e-TeX distribution and are available in current distributions.
Itis possible that, even with etex loaded, you still find yourself running out of things.
Problems can be caused by packages that use large numbers of “inserts” (inserts are
combinations of counter, box, dimension and skip registers, used for storing floats and
footnotes). Morefloats does this, of course (naturally enough, allocating new floats),
and footnote packages such as manyfoot and bigfoot (which uses manyfoot) can also
give problems. The etex extensions allow you to deal with these things: the command
\reserveinserts{n}
ensures there is room forhni more inserts. Hint: by default
morefloats adds 18 inserts (though it can be instructed to use more), and manyfoot
seems to be happy with 10 reserved, but there are ‘hard’ limits that we cannot program
around — the discussion ofrunningoutoffloats has more about this. It is essential that
you loadetex before anyother packages, and reserve any extra inserts immediately:
\documentclass[...]{...}
\usepackage{etex}
\reserveinserts{28}
The e-TeX extensions don’t help with
\read
or
\write
objects (and neither will
the etex package), but the morewrites package can provide the illusion of large numbers
of
\write
objects.
morewrites.sty
:
macros/latex/contrib/morewrites
292
application control tool:Online Convert PDF to HTML5 files. Best free online PDF html
Download Free Trial. Convert a PDF file to HTML. Then just wait until the conversion from PDF to HTML is complete and download the file.
www.rasteredge.com
application control tool:VB.NET PDF Password Library: add, remove, edit PDF file password
Add password to PDF. Change PDF original password. Remove password from PDF. Set PDF security level. VB: Change and Update PDF Document Password.
www.rasteredge.com
422
epsf
gives up after a bit
Some copies of the documentation of
epsf.tex
seemed once to suggest that the com-
mand
\input epsf
is needed for every figure included. If you follow this suggestion too literally, you get
an error
! No room for a new \read .
after a while; this is because each time
epsf.tex
is loaded, it allocates itself a new
file-reading handle to check the figure for its bounding box, and there just aren’t enough
of these things (seenoroomforanewthing).
The solution is simple — this is in fact an example of misuse of macros; one only
need read
epsf.tex
once, so change
...
\input epsf
\epsffile{...}
...
\input epsf
\epsffile{...}
(and so on) with a single
\input epsf
somewhere near the start of your document, and then decorate your
\epsffile
state-
ments with no more than adjustments of
\epsfxsize
and so on.
423 Improper
\hyphenation
will be flushed
For example
! Improper \hyphenation will be flushed.
\’#1->{
\accent 19 #1}
<
*
> \hyphenation{Ji-m\’e
-nez}
(in Plain TeX) or
! Improper \hyphenation will be flushed.
\leavevmode ->\unhbox
\voidb@x
<
*
> \hyphenation{Ji-m\’e
-nez}
in LaTeX.
As mentioned in “hyphenation failures”, “words” containing
\accent
com-
mands may not be hyphenated. As a result, any such word is deemed improper
in a
\hyphenation
command.
Hyphenation happens as paragraphs are laid out; by this time, TeX knows what font
is used for each glyph; thus it knows the encoding being used. So the solution to the
problem is to use a font that contains the accented character; doing this this “hides” the
accent from the hyphenation mechanisms.
For LaTeX users, this is quite an easy task; they select an 8-bitfontwith thepackage,
as in
\usepackage[T1]{fontenc}
,and accented-letter commands such as the
\’e
in
\hyphenation{Ji-m\’e-nez}
automatically become the single accented character by
the time the hyphenation gets to look at it.
424 Option clash for package
So you’ve innocently added:
\usepackage[draft]{foo}
to your document, and LaTeX responds with
! LaTeX Error: Option clash for package foo.
293
application control tool:C# PDF Password Library: add, remove, edit PDF file password in C#
Able to change password on adobe PDF document in C#.NET. To C# Sample Code: Change and Update PDF Document Password in C#.NET. In
www.rasteredge.com
application control tool:VB.NET PDF File Compress Library: Compress reduce PDF size in vb.
3.pdf"; String outputFilePath = Program.RootPath + "\\" 3_optimized.pdf"; 'create optimizing options TargetResolution = 150.0F 'to change image compression
www.rasteredge.com
The error is a complaint about loading a package with options, more than once.
LaTeX complains because ithas no means of examining the options, rather than because
it knows there is a problem. (You may load a package any number of times in a
document’s preamble, with no options, and LaTeX will ignore every loading request
after the first; but you may only supply options when you first load the package.)
So perhaps you weren’t entirely innocent — the error would have occurred on the
second line of:
\usepackage[dvips]{graphics}
\usepackage[draft]{graphics}
which could quite reasonably (and indeed correctly) have been typed:
\usepackage[dvips,draft]{graphics}
But if you’ve not made that mistake (even with several lines separating the
\usepackage
commands, it’s pretty easy to spot), the problem could arise from some-
thing else loading the package for you. How do you find the culprit? The "
h
"response
to the error message tells you which options were loaded each time. Otherwise, it’s
down to the log analysis games discussed in “Howtoapproacherrors”; the trick to
remember is that that the process of loading each file is parenthesised in the log; so if
package fooloads graphics, the log will contain something like:
(<path>/foo.sty ...
...
(<path>/graphics.sty ...
...)
...
)
(the parentheses for graphics are completely enclosed in those for foo; the same is of
course true if your class bar is the culprit, except that the line will start with the pathto
bar.cls
).
If we’re dealing with a package that loads the package you are interested in, you
need to ask LaTeXto slip in options when foo loads it. Instead of:
\usepackage{foo}
\usepackage[draft]{graphics}
you would write:
\PassOptionsToPackage{draft}{graphics}
\usepackage{foo}
The command
\PassOptionsToPackage
tells LaTeX to behave as if its options
were passed, when it finally loads a package. As you would expect from its name,
\PassOptionsToPackage
can deal with a list of options, just as you would have in the
the options brackets of
\usepackage
.
The problem is moretricky if your document class loads a package you wantoptions
for. In this case, instead of:
\documentclass[...]{bar}
\usepackage[draft]{graphics}
you would write:
\PassOptionsToPackage{draft}{graphics}
\documentclass[...]{bar}
with
\PassOptionsToPackage
before the
\documentclass
command.
However, if the foo package or the bar class loads graphics with an option of its
own that clashes with what youneed in some way, you’re stymied. For example:
294
application control tool:C# PDF Annotate Library: Draw, edit PDF annotation, markups in C#.
Able to edit and change PDF annotation properties such as font size or color. Abilities to draw markups on PDF document or stamp on PDF file.
www.rasteredge.com
application control tool:C# HTML5 Viewer: Deployment on DotNetNuke Site
RasterEdge.XDoc.Office.Inner.Office03.dll. RasterEdge.XDoc.PDF.dll. RasterEdge.XDoc. PDF.HTML5Editor.dll. RasterEdge.XDoc.PowerPoint.dll. RasterEdge.XDoc.TIFF.dll
www.rasteredge.com
\PassOptionsToPackage{draft}{graphics}
where the package or class does:
\usepackage[final]{graphics}
sets
final
after it’s dealt with option you passed to it, so your
draft
will get forgotten.
In extreme cases, the package might generate an error here (graphics doesn’t go in for
that kind of thing, and there’s no indication that
draft
has been forgotten).
In such a case, you have to modify the package or class itself (subjectto the terms of
its licence). It may prove useful to contact the author: she may have a useful alternative
to suggest.
425 Option clash for package
The error message
! LaTeX Error: Option clash for package footmisc
means what it says — your document contains a (potentially) clashing pair of options;
sadly, it is not always obvious how the error has arisen.
If you simply write:
\usepackage[a]{foo}
...
\usepackage{foo}
LaTeX is happy, as it is with:
\usepackage[a]{foo}
...
\usepackage[a]{foo}
since LaTeX can see there’s no conflict (in fact, the second load does nothing).
Similarly,
\usepackage[a,b]{foo}
...
\usepackage[a]{foo}
produces no error and does nothing for the second load.
However
\usepackage[a]{foo}
...
\usepackage[b]{foo}
produces the error; even if option ‘
b
’is an alias for option ‘
a
’— LaTeX doesn’t “look
inside” the package to check anything like that.
The general rule is: the first load of a package defines a set of options; if a further
\usepackage
or
\RequirePackage
also calls for the package, the options on that call
may not extend the set on the first load.
Fortunately, the error (in that sort of case) is easily curable once you’ve examined
the preamble of your document.
Now, suppose package foo loads bar with option
b
,and your document says:
\usepackage{foo}
...
\usepackage[a]{bar}
or
\usepackage[a]{bar}
...
\usepackage{foo}
the error will be detected, even though you have only explicitly loaded bar once.
Debugging such errors is tricky: itmay involve reading the logs (to spot which packages
were called), or the documentation of package foo.
295
application control tool:C# PDF File Compress Library: Compress reduce PDF size in C#.net
3.pdf"; String outputFilePath = Program.RootPath + "\\" 3_optimized.pdf"; // create optimizing TargetResolution = 150F; // to change image compression mode
www.rasteredge.com
application control tool:VB.NET Create PDF from Excel Library to convert xlsx, xls to PDF
PDF to Word; Convert PDF to Tiff; Convert PDF to HTML; Convert PDF Merge PDF Files; Split PDF Document; Remove Password from PDF; Change PDF Permission Settings.
www.rasteredge.com
426 “Too many unprocessed floats”
If LaTeX responds to a
\begin{figure}
or
\begin{table}
command with the error
message
! LaTeX Error: Too many unprocessed floats.
See the LaTeX manual or LaTeX Companion for explanation.
your figures (or tables) are not being placed properly. LaTeX has a limited amount
of storage for ‘floats’ (figures, tables, or floats you’ve defined yourself with the float
package); if something you have done has prevented LaTeX from typesetting floats, it
will run out of storage space.
This failure usually occurs in extreme cases offloatsmoving“wrongly”; LaTeX has
found it can’t place a float, and floats of the same type have piled up behind it.
How does this happen? — LaTeX guarantees that caption numbers are sequential
in the document, but the caption number is allocated when the figure (or whatever)
is created, and can’t be changed. Thus, if floats are placed out of order, their caption
numbers would also appear out of order in the body of the document (and inthe list of
figures, or whatever). As aresult, enforcementof theguarantee means thatsimple failure
to place a float means thatno subsequent floatcan be placed; and hence (eventually) the
error.
Techniques for solving the problem are discussed in thefloatsquestion already
referenced.
An alternative may be to use the morefloats package. The package will allocate
more “float skeletons” than LaTeX does by default; each such skeleton may then be
used to store a float. Beware that even withmorefloats, the number you can allocate is
limited; even with the etex package (which makes available many more registers, etc.,
than LaTeX does by default; e-TeX can create lots more registers, but none of those
“beyond the original TeX default” may be used infloat skeletons). Thus, etex may offer
some relief, but it can not be regarded as a panacea
The error also occurs in a long sequence of float environments, with no intervening
text. Unless the environments will fit “here” (and you’ve allowed them to go “here”),
there will never be a page break, and so there will never be an opportunity for LaTeX
to reconsider placement. (Of course, the floats can’t all fit “here” if the sequence is
sufficiently prolonged: once the page fills, LaTeX won’t place any more floats, leading
to the error.
Techniques for resolution may involve redefining the floats using the float package’s
[H]
float qualifier, but you are unlikely to get away without using
\clearpage
from
time to time.
float.sty
:
macros/latex/contrib/float
morefloats.sty
:
macros/latex/contrib/morefloats
427
\spacefactor
complaints
The errors
! You can’t use ‘\spacefactor’ in vertical mode.
\@->\spacefactor
\@m
or
! You can’t use ‘\spacefactor’ in math mode.
\@->\spacefactor
\@m
or simply
! Improper \spacefactor.
...
296
bite theLaTeX programmer who uses an internalcommand withouttaking “precautions”.
An internal-style command such as
\@foo
has been defined or used in a private macro,
and it is interpreted as
\@
,followed by the ‘text’
foo
.(
\@
is used, for real, to set up
end-of-sentence space in some circumstances; it uses
\spacefactor
to do that.)
The problem is discussed in detail in “
@
in macro names”,togetherwithsolutions.
428
\end
occurred inside agroup
The actual error we observe is:
(\end occurred inside a group at level <n>)
and it tells us that something we started in the document never got finished before
we ended the document itself. The things involved (‘groups’) are what TeX uses for
restricting the scope of things: you see them, for example, in the “traditional” font
selection commands:
{\it stuff\/}
—if the closing brace is leftoff such a construct,
the effect of
\it
will last to the end of the document, and you’ll get the diagnostic.
TeX itself doesn’t tellyou whereyour problem is, but you can often spotitby looking
at the typeset output in a previewer. Otherwise, you can usually find mismatched braces
using an intelligenteditor (at leastemacs and winedt offer thisfacility). However, groups
are not only created by matching
{
with
}
:other grouping commands are discussed
elsewhere in these FAQs, and are also a potential source of unclosed group.
\begin{
h
environment
i
}
encloses the environment’s body in a group, and estab-
lishes its own diagnostic mechanism. If you end the document before closing some
other environment, youget the ‘usual’ LaTeX diagnostic
! LaTeX Error: \begin{blah} on input line 6 ended by \end{document}.
which (though itdoesn’ttell you which file the
\begin{blah}
was in) is usually enough
to locate the immediate problem. If you press on past the LaTeX error, you get one
or more repetitions of the “occurred inside a group” message before LaTeX finally
exits. The checkend package recognises other unclosed
\begin{blob}
commands,
and generates an “ended by” error message for each one, rather than producing the
“occurred inside a group” message, which is sometimes useful (if you remember to load
the package).
In the absence of such information from LaTeX, you need to use “traditional” binary
search to find the offending group. Separate the preamble from the body of your file,
and process each half on its own with the preamble; this tells youwhich half of the file
is at fault. Divide again and repeat. The process needs to be conducted with care (it’s
obviously possible to split a correctly-written group by chopping in the wrong place),
but it will usually find the problem fairly quickly.
e-TeX (and e-LaTeX — LaTeX run on e-TeX) gives you further diagnostics after
the traditional infuriating TeX one — it actually keeps the information in a similar way
to LaTeX:
(\end occurred inside a group at level 3)
### semi simple group (level 3) entered at line 6 (\begingroup)
### simple group (level 2) entered at line 5 ({)
### simple group (level 1) entered at line 4 ({)
### bottom level
The diagnostic not only tells us where the group started, but also the way it started:
\begingroup
or
{
(which is an alias of
\bgroup
,and the two are not distinguishable at
the TeX-engine level).
checkend.sty
: Distributed as part of
macros/latex/contrib/bezos
429 “Missing number, treated as zero”
In general, this means you’ve tried to assign something to a count, dimension or skip
register that isn’t (in TeX’s view of things) a number. Usually the problem will become
clear using theordinarytechniquesofexaminingerrors.
Two LaTeX-specific errors are commonly aired on the newsgroups.
The commonest arises from attempting to use an example from theTheLaTeX
Companion (first edition),andisexemplifiedbythefollowingerrortext:
297
! Missing number, treated as zero.
<to be read again>
\relax
l.21 \begin{Ventry}{Return values}
The problem arises because, in its first edition, the Companion’s examples always
assumed that the calc package is loaded: this fact is mentioned in thebook, butoften not
noticed. The remedy is to load the calc package in anydocument using such examples
from the Companion. (The problem does not really arise with the second edition;copies
of all the examples are available on the accompanying CD-ROM, or on CTAN.)
The other problem, which is increasingly rare nowadays, arises from misconfigu-
ration of a system that has been upgraded from LaTeX2.09: the document uses the
times package, and the error appears at
\begin{document}
.The file search paths are
wrongly set up, and your
\usepackage{times}
has picked up a LaTeX2.09 version of
the package, which in its turn has invoked another which has no equivalent in LaTeX2e.
The obvious solution is to rewrite the paths so thatLaTeX2.09 packages are chosen only
as a last resort so that the startlingly simple LaTeX2e times package will be picked up.
Better stillis to replacethewhole thing with something moremodern still; current psnfss
doesn’t provide a times package — the alternative mathptmx incorporates Times-like
mathematics, and a sans-serif face based on Helvetica, but scaled to match Times text
rather better.
calc.sty
: Distributed as part of
macros/latex/required/tools
Examples for LaTeX Companion:
info/examples/tlc2
The psnfss bundle
:
macros/latex/required/psnfss
430 “Please type a command or say
\end
Sometimes, when you are running (La)TeX, it will abruptly stop and present you with
aprompt (by default, just a
*
character). Many people (including this author) will
reflexively hit the ‘return’ key, pretty much immediately, and of course this is no help at
all — TeX just says:
(Please type a command or say ‘\end’)
and prompts you again.
What’s happened is that your (La)TeX file has finished prematurely, and TeX has
fallen back to a supposed including file, from the terminal. This could have happened
simply because you’ve omitted the
\bye
(Plain TeX),
\end{document}
(LaTeX), or
whatever. Other common errors are failure to close the braces round a command’s
argument, or (in LaTeX) failure to close a verbatim environment: in such cases you’ve
already read and accepted an error messageaboutencountering end of filewhilescanning
something.
If the error is indeed because you’ve forgotten to end your document, you can insert
the missing text: if you’re running Plain TeX, the advice, to “say
\end
”is good enough:
it will kill the run; if you’re running LaTeX, the argument will be necessary:
\end
{document}
.
However, as often as not this isn’tthe problem, and (short of debugging the source of
the document before ending) brute force is probably necessary. Excessive force (killing
the job that’s running TeX) is to be avoided: there may well be evidence in the
.log
file
that will be useful in determining what the problem is — so the aim is topersuade TeX
to shut itself down and hence flush all log output to file.
If you can persuade TeX to read it, an end-of-file indication (control-
D
under Unix,
control-
Z
under Windows) will provoke TeX to report an error and exit immediately.
Otherwise you should attempt to provoke an error dialogue, from which you can exit
(using the
x
‘command’). An accessible error could wellbeinserting an illegalcharacter:
what it is will depend on what macros you are running. If you can’t make that work, try
asilly commandname or two.
298
431 “Unknown graphics extension”
The LaTeX graphics package deals with several different types of DVI (or other) output
drivers; each one of them has a potential to deal with a different selection of graphics
formats. The package therefore has to be told what graphics file types its output driver
knows about; this is usually done in thehdriveri
.def
file corresponding to the output
driver you’re using.
The error message arises, then, if you have a graphics file whose extension doesn’t
correspondwith one your driver knows about. Mostoften, this is because you’re being
optimistic: asking dvips to deal with a
.png
file, or PDFTeX to deal with a
.eps
file:
the solution in this case is to transform the graphics file to a format your driver knows
about.
If you happen to know that your device driver deals with the format of your file, you
are probably falling foul of a limitation of the file name parsing code that the graphics
package uses. Suppose you want to include a graphics file
home.bedroom.eps
using
the dvips driver; the package will conclude that your file’s extension is
.bedroom.eps
,
and will complain.
The grffile package deals with the last problem (and others — see the package
documentation); using the package, you may write:
\usepackage{graphicx}
\usepackage{grffile}
...
\includegraphics{home.bedroom.eps}
or you may even write
\includegraphics{home.bedroom}
and graphicx will find a
.eps
or
.pdf
(or whatever) version, according towhat version
of (La)TeX you’re running.
If for some reason you can’t use grffile, you have three unsatisfactory alternatives:
• Rename the file — for example
home.bedroom.eps
!
home-bedroom.eps
• Mask the first dot in the file name:
\newcommand
*
{\DOT}{.}
\includegraphics{home\DOT bedroom.eps}
• Tellthegraphicspackagewhatthefileis,bymeansofoptionstothe
\includegraphics
command:
\includegraphics[type=eps,ext=.eps,read=.eps]{home.bedroom}
grffile.sty
DistributedaspartoftheOberdiekcollection
macros/latex/
contrib/oberdiek
432 “Missing
$
inserted”
There are certain things that only work in maths mode. If your document is not in maths
mode and you have an
_
or a
^
character, TeX (and byinheritance, LaTeX too) will say
! Missing $ inserted
as if you couldn’t possibly have misunderstood the import of what you were typing,
and the only possible interpretationis that you had committed a typo in failing to enter
maths mode. TeX, therefore, tries to patch things up by inserting the
$
you ‘forgot’,
so that the maths-only object will work; as often as not this will land you in further
confusion.
It’s not just the single-character maths sub- and superscript operators: anything
that’s built in or declared as a maths operation, from the simplest lower-case
\alpha
through the inscrutable
\mathchoice
primitive, and beyond, will provoke the error if
misused in text mode.
LaTeX offers a command
\ensuremath
,which will put you in maths mode for the
execution of its argument, if necessary: so if you want an
\alpha
in your running text,
say
\ensuremath{\alpha}
;if the bit of running text somehow transmutes into a bit of
mathematics, the
\ensuremath
will become a no-op, so it’s pretty much always safe.
299
433 Warning: “Font shape .. . not available”
LaTeX’s font selection scheme maintains tables of the font families it has been told
about. These tables list the font families that LaTeX knows about, and the shapes and
series in which those font families are available. In addition, in some cases, the tables
list the sizes at which LaTeX is willingto load fonts from the family.
When you specify a font, usingone of the LaTeX font selection commands, LaTeX
looks for the font (that is, a font that matches the encoding, family, shape, series and
size that you want) in its tables. If the font isn’t there at the size you want, you will see
amessage like:
LaTeX Font Warning: Font shape ‘OT1/cmr/m/n’ in size <11.5> not available
(Font)
size <12> substituted on input line ...
There will also be a warning like:
LaTeX Font Warning: Size substitutions with differences
(Font)
up to 0.5pt have occurred.
after LaTeX has encountered
\end{document}
.
The message tells you that you’ve chosen a font size that is not in LaTeX’s list
of “allowed” sizes for this font; LaTeX has chosen the nearest font size it knows is
allowed. In fact, you can tell LaTeX to allow any size: the restrictions come from the
days when only bitmap fonts were available, and they have never applied to fonts that
come in scaleable form in the first place. Nowadays, most of the fonts that were once
bitmap-only are also available in scaleable (Adobe Type 1) form. If your installation
uses scaleable versions of the Computer Modern or European Computer Modern (EC)
fonts, you can tell LaTeX to remove the restrictions; use the type1cm or type1ec package
as appropriate.
If the combination of font shape and series isn’t available, LaTeX will usually have
been told of a fall-back combinationthat may be used, and will select that:
LaTeX Font Warning: Font shape ‘OT1/cmr/bx/sc’ undefined
(Font)
using ‘OT1/cmr/bx/n’ instead on input line 0.
Substitutions may also be“silent”; in this case, there is no morethan an “information”
message in the log file. For example, if you specify an encoding for which there is
no version in the current font family, the ‘default family for the encoding’ is selected.
This happens, for example, if you use command
\textbullet
,which is normally taken
from the maths symbols font, which is in
OMS
encoding. My test log contained:
LaTeX Font Info:
Font shape ‘OMS/cmr/m/n’ in size <10> not available
(Font)
Font shape ‘OMS/cmsy/m/n’ tried instead on input line ...
In summary, these messages are not so much error messages, as information mes-
sages, that tell you what LaTeX has made of your text. You should check what the
messages say, but you will ordinarily not be surprisedat their content.
type1cm.sty
:
macros/latex/contrib/type1cm
type1ec.sty
:
fonts/ps-type1/cm-super/type1ec.sty
434 Unable to read an entire line
TeX belongs tothe generation of applications written for environments that didn’t offer
the sophisticated string and i/o manipulation we nowadays take for granted (TeX was
written in Pascal, and the original Pascal standard made no mention of i/o, so that
anything but the most trivial operations were likely to be unportable).
When you overwhelm TeX’s input mechanism, you get told:
! Unable to read an entire line---bufsize=3000.
Please ask a wizard to enlarge me.
(for some value of ‘3000’ — the quote was from a
comp.text.tex
posting by a
someone who was presumably using an old TeX).
As the message implies, there’s (what TeX thinks of as a) line in your input that’s
“too long” (to TeX’s way of thinking). Since modern distributions tend to have tens of
thousands of bytes of input buffer, it’s somewhat rare that these messages occur “for
real”. Probable culprits are:
300
Documents you may be interested
Documents you may be interested