Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
SYNCTEX(5)		      File Formats Manual		    SYNCTEX(5)

NAME
       synctex -- Synchronize TeXnology	help file

DESCRIPTION
       Synchronize TeXnology help file (synctexs) are text files that help in-
       put/output  synchronization  during  document  preparation with the TeX
       typesetting system.

BASICS
       The structure of	this file should not  be  considered  public,  in  the
       sense that no one should	need to	parse its contents, except the synctex
       command	line  utility,	and  the synctex_parser	library	which are both
       publicly	available. Unless it is	absolutely not	avoidable,  access  to
       the  contents  of the synctex file should only be made through requests
       made to the synctex command line	utility.

STRUCTURE
       The element structure of	a synctex file is a list of text line  records
       as  follows.   `*',  `+',  and  `?' have	their usual EBNF meanings: `*'
       means zero or more, `+' means one or more, and `?' means	 zero  or  one
       (i.e., optional).

	     <SyncTeX> ::= (The	whole contents in 4 sections)

		   <Preamble>

		   <Content>

		   <Postamble>

		   <Post Scriptum>

       Each section starts with	the first occurrence of	a sectioning line, and
       ends  with  the next section, if	any.  In the following definitions, we
       do not mention the section ending condition.

The preamble
	     <Preamble>	::=

		   "SyncTeX Version:" <Version Number> <EOL>

		   <Input Line>*

		   "Magnification:" <TeX magnification>	<EOL>

		   "Unit:" <unit in scaled point> <EOL>

		   "X Offset:" <horizontal offset in scaled point> <EOL>

		   "Y Offset:" <vertical offset	in scaled point> <EOL>

	     <Input Line> ::= "Input:" <tag> ":" <File Name> <EOL>

The content
	     <Content> ::=

		   <byte offset	record>

		   "Content:" <EOL>

		   (<Form(k)>|<Input Line>)*

		   <sheet(1)>

		   (<Form(k)>|<Input Line>)*

		   <sheet(2)>

		   (<Form(k)>|<Input Line>)*

		   ...

		   <sheet(N)>

		   (<Form(k)>|<Input Line>)*

	     <byte offset record> ::= "!" <byte	offset>	<end of	record>

	     <sheet(n)>	::=

		   <byte offset	record>

		   "{" <the integer n> <end of record>

		   <vbox section>|<hbox	section>

		   <byte offset	record>

		   "}" <the integer n> <end of record>

	     <Form> ::=

		   <byte offset	record>

		   "<" <form tag> <end of record>

		   <vbox section>|<hbox	section>

		   <byte offset	record>

		   ">" <end of record>

	     <form tag>	::= <integer>

       Forms are available with	pdfTeX.	 All the numbers are integers  encoded
       using  the  decimal  representation with	"C" locale.  The <box content>
       describes what is inside	a box.	It is either a vertical	or  horizontal
       box, with some records related to glue, kern or math nodes.

	     <box content> ::=

		   <vbox section>|<hbox	section>

		   |<void vbox record>|<void hbox record>

		   |<current record>|<glue record>|<kern record>

		   |<math record>|<form	ref record>|<Form>

	     <vbox section> ::=

		   "[" <link> ":" <point> ":" <size> <end of record>

		   <box	content>*

		   "]" <end of record>

	     <hbox section> ::=

		   ( <link> ":"	<point>	":" <size> <end	of record>

		   <box	content>*

		   ")" <end of record>

       Void boxes:

	     <void  vbox record> ::= "v" <link>	":" <point> ":"	<size> <end of
	     record>

	     <void hbox	record>	::= "h"	<link> ":" <point> ":" <size> <end  of
	     record>

	     <link> ::=	<tag> "," <line>( "," <column>)?

	     <point> ::= <full point>|<compressed point>

	     <full point> ::= <integer>	"," <integer>

	     <compressed point>	::= <integer> ",="

	     <line> ::=	<integer>

	     <column> ::= <integer>

	     <size> ::=	<Width>	"," <Height> "," <Depth>

	     <Width> ::= <integer>

	     <Height> ::= <integer>

	     <Depth> ::= <integer>

       The forthcoming records are basic one liners.

	     <current record> ::= "x" <link> ":" <point> <end of record>

	     <kern  record>  ::=  "k"  <link>  ":" <point> ":" <Width> <end of
	     record>

	     <glue record> ::= "g" <link> ":" <point> <end of record>

	     <math record> ::= "$" <link> ":" <point> <end of record>

	     <form ref record> ::= "f" <form tag> ":" <point> <end of record>

The postamble
       The postamble closes the	file If	there is no postamble, it  means  that
       the typesetting process did not end correctly.

	     <Postamble>::=

		   <byte offset	record>

		   "Count:" <Number of records>	<EOL>

The post scriptum
       The  post scriptum contains material possibly added by 3rd parties.  It
       allows one to append some transformation	(shift	and  magnify).	 Typi-
       cally, one applies a dvi	to pdf filter with offset options and magnifi-
       cation, then he appends the same	options	to the synctex file, for exam-
       ple

	     synctex update -o foo.pdf -m 0.486	-x 9472573sp -y	13.3dd source.dvi

	     <Post Scriptum>::=

		   <byte offset	record>

		   "Post Scriptum:" <EOL>

		   "Magnification:"    <number>	   <EOL>    (Set    additional
		   magnification)

		   "X Offset:" <dimension> <EOL> (Set horizontal offset)

		   "Y Offset:" <dimension> <EOL> (Set vertical offset)
       This second information will override the offset	and magnification pre-
       viously available in the	preamble section.  All the numbers are encoded
       using the decimal representation	with "C" locale.

USAGE
       The <current record> is used to compute the  visible  size  of  hbox's.
       The byte	offset is an implicit anchor to	navigate the synctex file from
       sheet  to  sheet.  The second coordinate	of a compressed	point has been
       replaced	by a "=" character which means that it is the  second  coordi-
       nate of the last	full point available above.

SEE ALSO
       synctex(1) tex(1)

AUTHOR
       The  Synchronize	 TeXnology  is essentially due to Jerome Laurens, with
       useful suggestions by some well known actors of the TeX world.  SyncTeX
       is maintained as	part of	TeX Live.

HISTORY
       This document has been updated on Sat Apr 22 09:57:20 UTC 2017  to  in-
       clude \pdfxform support.

Independent			 Aug 30, 2022			    SYNCTEX(5)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=synctex&sektion=5&manpath=FreeBSD+Ports+14.3.quarterly>

home | help