{
    "mode": "man",
    "parameter": "synctex",
    "section": "5",
    "url": "https://www.chedong.com/phpMan.php/man/synctex/5/json",
    "generated": "2026-10-07T13:25:57Z",
    "sections": {
        "NAME": {
            "content": "synctex — Synchronize TeXnology help file\n",
            "subsections": []
        },
        "DESCRIPTION": {
            "content": "Synchronize TeXnology help file (synctexs) are text files that help input/output synchroniza‐\ntion during document preparation with the TeX typesetting system.\n",
            "subsections": []
        },
        "BASICS": {
            "content": "The  structure  of this file should not be considered public, in the sense that no one should\nneed to parse its contents, except the synctex command line utility, and  the  synctexparser\nlibrary  which  are both publicly available. Unless it is absolutely not avoidable, access to\nthe contents of the synctex file should only be made through requests  made  to  the  synctex\ncommand line utility.\n",
            "subsections": []
        },
        "STRUCTURE": {
            "content": "The element structure of a synctex file is a list of text line records as follows.  ‘*’, ‘+’,\nand  ‘?’  have  their usual EBNF meanings: ‘*’ means zero or more, ‘+’ means one or more, and\n‘?’ means zero or one (i.e., optional).\n\n<SyncTeX> ::= (The whole contents in 4 sections)\n\n<Preamble>\n\n<Content>\n\n<Postamble>\n\n<Post Scriptum>\n\nEach section starts with the first occurrence of a sectioning line, and ends  with  the  next\nsection,  if  any.  In the following definitions, we do not mention the section ending condi‐\ntion.\n",
            "subsections": []
        },
        "The preamble": {
            "content": "<Preamble> ::=\n\n\"SyncTeX Version:\" <Version Number> <EOL>\n\n<Input Line>*\n\n\"Magnification:\" <TeX magnification> <EOL>\n\n\"Unit:\" <unit in scaled point> <EOL>\n\n\"X Offset:\" <horizontal offset in scaled point> <EOL>\n\n\"Y Offset:\" <vertical offset in scaled point> <EOL>\n\n<Input Line> ::= \"Input:\" <tag> \":\" <File Name> <EOL>\n",
            "subsections": []
        },
        "The content": {
            "content": "<Content> ::=\n\n<byte offset record>\n\n\"Content:\" <EOL>\n\n(<Form(k)>|<Input Line>)*\n\n<sheet(1)>\n\n(<Form(k)>|<Input Line>)*\n\n<sheet(2)>\n\n(<Form(k)>|<Input Line>)*\n\n...\n\n<sheet(N)>\n\n(<Form(k)>|<Input Line>)*\n\n<byte offset record> ::= \"!\" <byte offset> <end of record>\n\n<sheet(n)> ::=\n\n<byte offset record>\n\n\"{\" <the integer n> <end of record>\n\n<vbox section>|<hbox section>\n\n<byte offset record>\n\n\"}\" <the integer n> <end of record>\n\n<Form> ::=\n\n<byte offset record>\n\n\"<\" <form tag> <end of record>\n\n<vbox section>|<hbox section>\n\n<byte offset record>\n\n\">\" <end of record>\n\n<form tag> ::= <integer>\n\nForms are available with pdfTeX.  All the numbers are integers encoded using the decimal rep‐\nresentation with \"C\" locale.  The <box content> describes what is inside a box.  It is either\na vertical or horizontal box, with some records related to glue, kern or math nodes.\n\n<box content> ::=\n\n<vbox section>|<hbox section>\n\n|<void vbox record>|<void hbox record>\n\n|<current record>|<glue record>|<kern record>\n\n|<math record>|<form ref record>|<Form>\n\n<vbox section> ::=\n\n\"[\" <link> \":\" <point> \":\" <size> <end of record>\n\n<box content>*\n\n\"]\" <end of record>\n\n<hbox section> ::=\n\n( <link> \":\" <point> \":\" <size> <end of record>\n\n<box content>*\n\n\")\" <end of record>\n\nVoid boxes:\n\n<void vbox record> ::= \"v\" <link> \":\" <point> \":\" <size> <end of record>\n\n<void hbox record> ::= \"h\" <link> \":\" <point> \":\" <size> <end of record>\n\n<link> ::= <tag> \",\" <line>( \",\" <column>)?\n\n<point> ::= <full point>|<compressed point>\n\n<full point> ::= <integer> \",\" <integer>\n\n<compressed point> ::= <integer> \",=\"\n\n<line> ::= <integer>\n\n<column> ::= <integer>\n\n<size> ::= <Width> \",\" <Height> \",\" <Depth>\n\n<Width> ::= <integer>\n\n<Height> ::= <integer>\n\n<Depth> ::= <integer>\n\nThe forthcoming records are basic one liners.\n\n<current record> ::= \"x\" <link> \":\" <point> <end of record>\n\n<kern record> ::= \"k\" <link> \":\" <point> \":\" <Width> <end of record>\n\n<glue record> ::= \"g\" <link> \":\" <point> <end of record>\n\n<math record> ::= \"$\" <link> \":\" <point> <end of record>\n\n<form ref record> ::= \"f\" <form tag> \":\" <point> <end of record>\n",
            "subsections": []
        },
        "The postamble": {
            "content": "The postamble closes the file If there is no postamble, it means that the typesetting process\ndid not end correctly.\n\n<Postamble>::=\n\n<byte offset record>\n\n\"Count:\" <Number of records> <EOL>\n",
            "subsections": []
        },
        "The post scriptum": {
            "content": "The post scriptum contains material possibly added by 3rd parties.  It allows one  to  append\nsome  transformation  (shift  and  magnify).  Typically, one applies a dvi to pdf filter with\noffset options and magnification, then he appends the same options to the synctex  file,  for\nexample\n\nsynctex update -o foo.pdf -m 0.486 -x 9472573sp -y 13.3dd source.dvi\n\n<Post Scriptum>::=\n\n<byte offset record>\n\n\"Post Scriptum:\" <EOL>\n\n\"Magnification:\" <number> <EOL> (Set additional magnification)\n\n\"X Offset:\" <dimension> <EOL> (Set horizontal offset)\n\n\"Y Offset:\" <dimension> <EOL> (Set vertical offset)\nThis  second  information  will override the offset and magnification previously available in\nthe preamble section.  All the numbers are encoded using the decimal representation with  \"C\"\nlocale.\n",
            "subsections": []
        },
        "USAGE": {
            "content": "The  <current  record>  is used to compute the visible size of hbox's.  The byte offset is an\nimplicit anchor to navigate the synctex file from sheet to sheet. The second coordinate of  a\ncompressed point has been replaced by a \"=\" character which means that it is the second coor‐\ndinate of the last full point available above.\n",
            "subsections": []
        },
        "SEE ALSO": {
            "content": "synctex(1) tex(1)\n",
            "subsections": []
        },
        "AUTHOR": {
            "content": "The  Synchronize  TeXnology  is essentially due to Jerome Laurens, with useful suggestions by\nsome well known actors of the TeX world.  SyncTeX is maintained as part of TeX Live.\n",
            "subsections": []
        },
        "HISTORY": {
            "content": "This document has been updated on Sat Apr 22 09:57:20 UTC 2017 to include \\pdfxform support.\n\nIndependent                                 Aug 30, 2022                                  SYNCTEX(5)",
            "subsections": []
        }
    },
    "summary": "synctex — Synchronize TeXnology help file",
    "flags": [],
    "examples": [],
    "see_also": [
        {
            "name": "tex",
            "section": "1",
            "url": "https://www.chedong.com/phpMan.php/man/tex/1/json"
        }
    ]
}