Chapter30. File e InputandOutput
\def\space{ } % in plain TeX
\message{\a\space\c}
displays ‘b d’.Notethat
\message{\a{ }\c}
does not work: it displays ‘b{ }d’ sincebracesareunexpandablecharacter tokens.
250
VictorEijkhout–T
E
XbyTopic
Delete pages on pdf online - remove PDF pages in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Provides Users with Mature Document Manipulating Function for Deleting PDF Pages
delete page in pdf document; delete a page from a pdf file
Delete pages on pdf online - VB.NET PDF Page Delete Library: remove PDF pages in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Visual Basic Sample Codes to Delete PDF Document Page in .NET
delete pages of pdf online; delete pages from pdf preview
Chapter31
Allocation
T
E
X has registers of a number of types. For some of these, explicit commands exist
to define a synonym for a certain register; for all of them macros exist in the plain
format to allocate an unused register. This chapter treats the synonym and allocation
commands, and discusses someguidelinesfor macro writers regarding allocation.
\countdef Define asynonym fora \countregister.
\dimendef Define asynonym fora \dimenregister.
\muskipdef Define asynonym fora \muskipregister.
\skipdef Define asynonym for a\skipregister.
\toksdef Define asynonym for a\toksregister.
\newbox Allocatean unused \boxregister.
\newcount Allocatean unused \countregister.
\newdimen Allocatean unused \dimenregister.
\newfam Allocatean unused math family.
\newinsert Allocatean unused insertion class.
\newlanguage (T
E
X3 only) Allocateanew languagenumber.
\newmuskip Allocatean unused \muskipregister.
\newskip Allocatean unused \skipregister.
\newtoks Allocatean unused \toksregister.
\newread Allocatean unused input stream.
\newwrite Allocatean unused output stream.
31.1 Allocationcommands
In plain T
E
X, \new...macros aredefined for allocation of registers. The registers of
T
E
Xfall into two classes that areallocated in different ways.Thisistreated below.
The \newlanguage macro of plain T
E
Xdoes not allocateany register. Instead it me-
relyassigns anumber,starting from 0. T
E
X(version 3)can haveat most 256 different
sets of hyphenation patterns.
The \new... macros of plain T
E
X are defined to be \outer (see Chapter 11 for a
precise explanation), which precludes use of the allocation macros in other macros.
ThereforetheLAT
E
Xformat redefinesthese macroswithout the\outerprefix.
251
C# PDF File & Page Process Library SDK for C#.net, ASP.NET, MVC
C# view PDF online, C# convert PDF to tiff, C# read PDF, C# convert PDF to text, C# extract PDF pages, C# comment annotate PDF, C# delete PDF pages, C# convert
delete pdf pages android; cut pages out of pdf
C# PDF Page Insert Library: insert pages into PDF file in C#.net
document files by C# code, how to rotate PDF document page, how to delete PDF page using C# .NET, how to reorganize PDF document pages and how
delete blank page from pdf; delete pages from a pdf in preview
Chapter31. Allocation
31.1.1 \count,\dimen,\skip,\muskip,\toks
For these registers there exists a registerdef command, for instance \countdef, to
couple aspecificregister to a control sequence:
registerdefcontrol sequenceequals8-bit number
Afterthedefinition
\countdef\MyCount=42
theallocated register can beused as
\MyCount=314
or
\vskip\MyCount\baselineskip
The registerdef commands are used in plain T
E
X macros \newcount et cetera that
allocate an unused register; after
\newcount\MyCount
\MyCountcan be used exactly asin theabovetwo examples.
31.1.2 \box,\fam,\write,\read,\insert
Fortheseregistersthereexistsno registerdefcommand in T
E
X,so \chardefisused
toallocateboxregistersinthecorrespondingplain T
E
Xmacros\newbox,for instance.
The fact that \chardef is used implies that the defined control sequence does not
stand for the register itself, but only for itsnumber. Thus after
\newbox\MyBox
it is necessary to write
\box\MyBox
Leavingoutthe\boxmeansthatthecharacterinthecurrentfontwithnumber\MyBox
istypeset.The\chardefcommand istreated furtherin Chapter3.
31.2 Groundrulesformacrowriters
The\new...macrosofplainT
E
Xhavebeendesignedtoformafoundationformacro
packages,suchthatseveral ofsuchpackagescanoperatewithoutcollisionsinthesame
run ofT
E
X. In appendix Bof theT
E
XbookKnuth formulatessomeground rules that
macro writers should adhereto.
1.
The \new... macros do not allocate registers with numbers 0–9. These can
therefore be used as ‘scratch’ registers. However, as any macro family can
use them, no assumption can be made about the permanency of their con-
tents. Results that are to be passed from onecall to another should residein
specifically allocated registers.
Note that count registers 0–9 are used for page identification in the dvifile
(seeChapter 33), so no global assignmentsto these should bemade.
252
VictorEijkhout–T
E
XbyTopic
VB.NET PDF Page Insert Library: insert pages into PDF file in vb.
add and insert one or multiple pages to existing adobe PDF document in VB.NET. Ability to create a blank PDF page with related by using following online VB.NET
add and remove pages from pdf file online; delete pages from pdf acrobat
C# HTML5 PDF Viewer SDK to view PDF document online in C#.NET
C# view PDF online, C# convert PDF to tiff, C# read PDF, C# convert PDF to text, C# extract PDF pages, C# comment annotate PDF, C# delete PDF pages, C# convert
cut pages from pdf reader; delete blank pages in pdf
31.2. Ground rules for macro writers
2.
\count255, \dimen255, and \skip255 are also available. This is because
insertsareallocated from 254 downward and,together with an insertion box,
a count, dimen, and skip register, all with the same number, are allocated.
Since \box255 is used by the output routine (see Chapter 28), the count,
dimen, and skip with number 255 arefreely available.
3.
Assignments to scratch registers 0, 2, 4, 6, 8, and 255 should be local; as-
signments to registers 1, 3, 5, 7, 9 should be \global (with the exception
of the \count registers). This guideline prevents ‘save stack build-up’ (see
Chapter35).
4.
Any register can beused inside a group, as T
E
X’s grouping mechanism will
restore its value outside the group. There are two conditions on this use of
a register: no global assignments should be made to it, and it must not be
possiblethat other macrosmay be activated in that group that perform global
assignmentsto that register.
5.
Registers that areused overlonger periodsoftime, or that haveto survivein
between callsof different macros,should beallocated by \new....
VictorEijkhout–T
E
XbyTopic
253
VB.NET PDF- View PDF Online with VB.NET HTML5 PDF Viewer
RasterEdge. PRODUCTS: ONLINE DEMOS: Online HTML5 Document Viewer; Online XDoc.PDF C# File: Split PDF; C# Page: Insert PDF pages; C# Page: Delete PDF pages;
delete pages from a pdf online; delete pages of pdf reader
VB.NET PDF - Convert PDF Online with VB.NET HTML5 PDF Viewer
C# view PDF online, C# convert PDF to tiff, C# read PDF, C# convert PDF to text, C# extract PDF pages, C# comment annotate PDF, C# delete PDF pages, C# convert
delete blank pages in pdf files; delete blank pages in pdf online
Chapter 32
RunningT
E
X
This chapter treats therun modes of T
E
X, and some other commands associated with
thejob being processed.
\everyjob Token list that isinserted at thestart of each new job.
\jobname Nameof themain T
E
Xfilebeing processed.
\end Command to finish off arun of T
E
X.
\bye Plain T
E
Xmacro to forcethe final output.
\pausing Specify that T
E
Xshould pauseafter each line that isread froma file.
\errorstopmode T
E
Xwill askforuser input on theoccurrenceofan error.
\scrollmode T
E
Xfixes errorsitself,but will ask theuserfor missing files.
\nonstopmode T
E
X fixes errors itself, and performs an emergency stop on serious
errors such as missing input files.
\batchmode T
E
Xfixes errors itself and performsan emergency stop on seriouserrors
such asmissing input files, but no terminal output isgenerated.
32.1 Jobs
T
E
X associates with each run a name for the file being processed: the \jobname. If
T
E
X is run interactively – meaning that it has been invoked without a file argument,
and theusertypes commands – thejobnameistexput.
The \jobname can be used to generate the names of auxiliary files to be read or
written during the run. For instance, for a file story.tex the \jobname is story,
and writing
\openout\Auxiliary=\jobname.aux
\openout\TableOfContents=\jobname.toc
will createthefiles story.auxand story.toc.
32.1.1 Startofthejob
T
E
X starts each job by inserting the \everyjob token list into the command stream.
Settingthisvariableduring arunofT
E
Xhasnouse,butaformat can useittoidentify
254
VB.NET PDF - Annotate PDF Online with VB.NET HTML5 PDF Viewer
VB.NET PDF - Annotate PDF Online with VB.NET HTML5 PDF Viewer. Explanation about transparency. VB.NET HTML5 PDF Viewer: Annotate PDF Online. This
delete pages pdf file; delete blank pages in pdf
C# HTML5 PDF Viewer SDK to convert and export PDF document to
C# view PDF online, C# convert PDF to tiff, C# read PDF, C# convert PDF to text, C# extract PDF pages, C# comment annotate PDF, C# delete PDF pages, C# convert
delete a page from a pdf acrobat; delete page pdf file reader
32.2. Run modes
itself to theuser. If a format fills the token list, the commands therein are automati-
cally executed when T
E
Xisrun using that format.
32.1.2 Endofthejob
A T
E
X job is terminated by the \end command. This may involve first forcing the
output routine to process any remaining material (see Chapter 27). If the end of job
occurs inside agroup T
E
Xwill give adiagnosticmessage. The \endcommand isnot
allowed in internal vertical mode,because thiswouldbeinsidea vertical box.
Usually somesugarcoatingof the\endcommand is necessary. Forinstancetheplain
T
E
Xmacro \bye is defined as
\def\bye{\par\vfill\supereject\end}
wherethe\superejecttakescareof any leftover insertions.
32.1.3 Thelogfile
For each run T
E
Xcreates alog file. Usually this will be a file with as nametheva-
lueof\jobname,and theextension .log. Other extensionssuch as .lisareused by
some implementations. This log file contains all information that is displayed on the
screen during the run of T
E
X, but it will display some information more elaborately,
andit can contain statisticsthatareusuallynotdisplayed on thescreen.If theparame-
ter \tracingonline has a positive value, all the log file information will be shown
on the screen.
Overfull and underfull boxes are reported on the terminal screen, and they are dum-
ped using theparameters \showboxdepthand \showboxbreadthin the log file (see
Chapter 34). Theseparameters are also used forbox dumps caused by the\showbox
command,andfor thedumpofboxeswritten by \shipoutif \tracingoutputisset
to apositivevalue.
Statistics generated by commands such as \tracingparagraphs will be written to
thelog file; if \tracingonline is positivethey will also beshown on thescreen.
Output operations to astream that is not open, or to a stream with a number that is
not in the range 0–15, go to the log file. If the stream number is positive, they also
go to theterminal.
32.2 Runmodes
By default, T
E
X goes into \errorstopmode if an error occurs: it stops and asks for
input fromtheuser. Some implementations have away of forcing T
E
Xinto errorstop-
modewhen theuserinterrupts T
E
X,so that theinternal state of T
E
Xcan beinspected
(and altered). See page 273 for ways to switch the run mode when T
E
X has been
interrupted.
VictorEijkhout–T
E
XbyTopic
255
Chapter32. Running T
E
X
Often, T
E
X can fix an error itself if the user asks T
E
X just to continue (usually by
hitting thereturn key), but sometimes (for instancein alignments) it may takeawhile
before T
E
Xis on the right track again (and sometimes it never is). In such cases the
usermay want to turn on \scrollmode, which instructs T
E
Xtofix as best it canany
occurring errorwithout confirmation from theuser.Thisis usually done by typing ‘s’
when T
E
Xasksforinput.
In \scrollmode, T
E
X also doesnot ask for input after \show...commands. Howe-
ver, someerrors, such as afilethat could not befound for\input, are not so easily
remedied, so the user will still beasked forinput.
With \nonstopmode T
E
X will scroll through errors and, in the case of the kind of
error that cannot be recovered from, it will make an emergency stop, aborting the
run. Also T
E
X will abort the run if a \read is attempted from the terminal. The
\batchmodediffers only from nonstopmode in that it gives messages only to the log
file, not totheterminal.
256
VictorEijkhout–T
E
XbyTopic
Chapter33
T
E
Xand theOutside World
This chapter treats those commands that bear relevance to dvi files and formats. It
gives someglobal information about IniT
E
X, font and format files, Computer Modern
typefaces,and
WEB
.
\dump Dump aformat file; possibleonly in IniT
E
X,not allowed inside agroup.
\special Write abalanced text to thedvifile.
\mag 1000 timesthe magnification ofthedocument.
\year Theyear of thecurrent job.
\month Themonth of thecurrent job.
\day Theday of thecurrent job.
\time Number ofminutes aftermidnight that thecurrent job started.
\fmtname Macro containing thenameoftheformat dumped.
\fmtversion Macro containing theversion oftheformat dumped.
33.1 T
E
X,IniT
E
X,VirT
E
X
In theterminologyestablished in T
E
X:theProgram, [23],T
E
Xprogramscomeinthree
flavours. IniT
E
Xis a version of T
E
Xthat can generate formats; VirT
E
Xis a produc-
tionversion without preloaded format, and T
E
Xisaproductionversion with preloaded
(plain) format. Unfortunately, this terminology is not adhered to in general. A lot of
systems donot use preloaded formats(theprocedureformaking themmay beimpos-
sibleon some operating systems), and call the ‘virgin T
E
X’ simply T
E
X. This manual
also followsthat convention.
33.1.1 Formats:loading
Aformatfile(usuallywithextension .fmt)isacompactdumpofT
E
X’sinternal struc-
tures. Loading a format file takes a considerably shorter time than would be needed
forloadingthefont information and themacros that constitutetheformat.
Both T
E
Xand IniT
E
Xcan load a format; the user specifies this by putting the name
on the command line
257
Chapter33. T
E
Xand theOutsideWorld
% tex &plain
orat the**prompt
% tex
This is TeX. Version ....
** &plain
preceded by an ampersand (for UNIX, this should be \& on the command line). An
input filenamecan follow theformat namein both places.
IniT
E
Xdoes not need a format, but if no format is specified for (Vir)T
E
X, it will try
to load theplain format,and halt ifthat cannot befound.
33.1.2 Formats:dumping
IniT
E
Xis theonly version of T
E
Xthat can dump aformat, sinceit is theonly version
ofT
E
Xthat hasthecommand \dump, which causesthe internal structures to bedum-
ped asaformat.It is also the only versionof T
E
Xthat hasthecommand\patterns,
which is needed tospecify alist ofhyphenation patterns.
Dumping is not allowed insideagroup, that is
{ ... \dump }
is not allowed. This restriction prevents difficulties with T
E
X’s save stack. After the
\dump command T
E
X gives an elaborate listing of its internal state, and of the font
namesassociated with fonts that havebeenloaded and endsthejob.
An interesting possibility arises from the fact that IniT
E
X can both load and dump
a format. Suppose you have written a set of macros that build on top of plain T
E
X,
superplain.tex.You could then call
% initex &plain superplain
*\dump
and get aformat filesuperplain.fmtthat hasall ofplain, and all of your macros.
33.1.3 Formats:preloading
On some systems it is possible to interrupt a running program, and save its ‘core
image’ such that this can be started as an independent program. Theexecutable made
from the core image of a T
E
X program interrupted after it has loaded a format is
called a T
E
X program with preloaded format. The idea behind preloaded formats is
that interrupting T
E
X after it has loaded aformat, and making this program available
to the user, saves in each run the time for loading the format. In the good old days
when computerswerequiteabit slowerthisproceduremadesense.Nowadays,it does
not seem so necessary.Besides,dumping acoreimagemay not alwaysbepossible.
33.1.4 TheknowledgeofIniT
E
X
Ifnoformathasbeenloaded,IniT
E
Xknowsverylittle.Forinstance,ithasnoopen/close
group characters.However, it cannotbecompletely devoidofknowledgelesttherebe
no way todefineanything.
258
VictorEijkhout–T
E
XbyTopic
33.2. More about formats
Here is theextent ofitsknowledge.
\catcode‘\\=0,\escapechar=‘\\(seepage29).
\catcode‘\^^M=5,\endlinechar=‘\^^M(seepage29).
\catcode‘\ =10(see page30).
\catcode‘\%=14(see page30).
\catcode‘\^^?=15(see page30).
\catcodex=11 for x= ‘a..‘z,‘A..‘Z (seepage30).
\catcodex=12 forall other character codes
(seepage30).
\sfcodex=999 for x = ‘A..‘Z, \sfcodex=1000 for all other characters
(seepage188).
\lccode‘a..‘z,‘A..‘Z=‘a..‘z,\uccode‘a..‘z,‘A..‘Z=‘A..‘Z,\lccodex=0,
\uccodex=0 forall other characters (see page48).
\delcode‘.=0,\delcodex=-1for all other characters(seepage192).
\mathcodex="!7100+x foralllowercaseanduppercaseletters,\mathcodex="!7000+
x for all digits,\mathcodex=x forall other characters (see page197).
\tolerance=10000,\mag=1000, \maxdeadcycles=25.
33.1.5 MemorysizesofT
E
XandIniT
E
X
ThemainmemorysizeofT
E
XandIniT
E
Xiscontrolled by fourconstantsin thesource
code: mem
bot, mem
top, mem
min, and mem
max. For IniT
E
X’s memory mem
bot =
mem
min and mem
top = mem
max; for T
E
X mem
bot and mem
top record the main
memory sizeoftheIniT
E
Xusedtodumptheformat.ThusversionsofT
E
XandIniT
E
X
haveto beadapted to each otherin this respect.
T
E
X’s own main memory can be bigger than that of the corresponding IniT
E
X: in
general mem
min≤mem
bot and mem
top≤mem
max.
For IniT
E
Xasmaller main memory can suffice,asthis program istypicallynot meant
to do real typesetting. There may even be a real need for the main memory to be
smaller, becauseIniT
E
Xneeds alot of auxiliary storagefor initialization and for buil-
ding thehyphenation table.
33.2 Moreaboutformats
33.2.1 Compatibility
T
E
X has a curious error message: ‘Fatal format error: I’m stymied’, which is given
if T
E
Xtries to load a format that was madewith an incompatibleversion of IniT
E
X.
See the point aboveabout memory sizes, and Chapter 35 for the hash size (parame-
tershash
sizeandhash
prime) and thehyphenationexception dictionary (parameter
hyph
size).
VictorEijkhout–T
E
XbyTopic
259
Documents you may be interested
Documents you may be interested