From 12ed7b16e1915c6d5c3453f1bce9b4802de10882 Mon Sep 17 00:00:00 2001 From: Jonathan Kew Date: Fri, 25 Apr 2008 14:48:35 +0000 Subject: XeTeX update (from svn r.655), incl new SyncTeX git-svn-id: svn://tug.org/texlive/trunk@7643 c570f23f-e606-0410-a88d-b1316a301751 --- Build/source/texk/web2c/Makefile.in | 1 + Build/source/texk/web2c/synctex/INSTALL | 96 + Build/source/texk/web2c/synctex/Makefile | 174 ++ Build/source/texk/web2c/synctex/Makefile.in | 76 + Build/source/texk/web2c/synctex/README.txt | 163 ++ Build/source/texk/web2c/synctex/man1/synctex.1 | 27 + Build/source/texk/web2c/synctex/man5/synctex.5 | 314 +++ Build/source/texk/web2c/synctex/synctex-e-mem.ch0 | 164 ++ Build/source/texk/web2c/synctex/synctex-e-mem.ch1 | 53 + Build/source/texk/web2c/synctex/synctex-e-rec.ch0 | 141 ++ Build/source/texk/web2c/synctex/synctex-e-rec.ch1 | 41 + Build/source/texk/web2c/synctex/synctex-etex.h | 38 + Build/source/texk/web2c/synctex/synctex-mem.ch0 | 263 ++ Build/source/texk/web2c/synctex/synctex-mem.ch1 | 44 + Build/source/texk/web2c/synctex/synctex-mem.ch2 | 49 + .../source/texk/web2c/synctex/synctex-pdf-rec.ch2 | 161 ++ Build/source/texk/web2c/synctex/synctex-pdftex.h | 46 + Build/source/texk/web2c/synctex/synctex-rec.ch0 | 397 +++ Build/source/texk/web2c/synctex/synctex-rec.ch1 | 64 + Build/source/texk/web2c/synctex/synctex-rec.ch2 | 51 + Build/source/texk/web2c/synctex/synctex-tex.h | 38 + Build/source/texk/web2c/synctex/synctex-xe-mem.ch2 | 44 + Build/source/texk/web2c/synctex/synctex-xe-rec.ch2 | 70 + Build/source/texk/web2c/synctex/synctex-xetex.h | 58 + Build/source/texk/web2c/synctex/synctex.c | 1432 ++++++++--- Build/source/texk/web2c/synctex/synctex.ch | 860 ------- Build/source/texk/web2c/synctex/synctex.defines | 16 +- Build/source/texk/web2c/synctex/synctex.h | 61 +- Build/source/texk/web2c/synctex/synctex.mk | 164 +- Build/source/texk/web2c/synctex/synctex_main.c | 792 ++++++ Build/source/texk/web2c/synctex/synctex_parser.c | 2602 ++++++++++++++++++++ Build/source/texk/web2c/synctex/synctex_parser.h | 214 ++ Build/source/texk/web2c/withenable.ac | 2 +- Build/source/texk/web2c/xetexdir/XeTeX_ext.c | 296 ++- Build/source/texk/web2c/xetexdir/XeTeX_ext.h | 3 +- Build/source/texk/web2c/xetexdir/xetex.ch | 75 +- Build/source/texk/web2c/xetexdir/xetex.defines | 14 +- Build/source/texk/web2c/xetexdir/xetex.mk | 17 +- 38 files changed, 7752 insertions(+), 1369 deletions(-) create mode 100644 Build/source/texk/web2c/synctex/INSTALL create mode 100644 Build/source/texk/web2c/synctex/Makefile create mode 100644 Build/source/texk/web2c/synctex/Makefile.in create mode 100644 Build/source/texk/web2c/synctex/README.txt create mode 100644 Build/source/texk/web2c/synctex/man1/synctex.1 create mode 100644 Build/source/texk/web2c/synctex/man5/synctex.5 create mode 100644 Build/source/texk/web2c/synctex/synctex-e-mem.ch0 create mode 100644 Build/source/texk/web2c/synctex/synctex-e-mem.ch1 create mode 100644 Build/source/texk/web2c/synctex/synctex-e-rec.ch0 create mode 100644 Build/source/texk/web2c/synctex/synctex-e-rec.ch1 create mode 100644 Build/source/texk/web2c/synctex/synctex-etex.h create mode 100644 Build/source/texk/web2c/synctex/synctex-mem.ch0 create mode 100644 Build/source/texk/web2c/synctex/synctex-mem.ch1 create mode 100644 Build/source/texk/web2c/synctex/synctex-mem.ch2 create mode 100644 Build/source/texk/web2c/synctex/synctex-pdf-rec.ch2 create mode 100644 Build/source/texk/web2c/synctex/synctex-pdftex.h create mode 100644 Build/source/texk/web2c/synctex/synctex-rec.ch0 create mode 100644 Build/source/texk/web2c/synctex/synctex-rec.ch1 create mode 100644 Build/source/texk/web2c/synctex/synctex-rec.ch2 create mode 100644 Build/source/texk/web2c/synctex/synctex-tex.h create mode 100644 Build/source/texk/web2c/synctex/synctex-xe-mem.ch2 create mode 100644 Build/source/texk/web2c/synctex/synctex-xe-rec.ch2 create mode 100644 Build/source/texk/web2c/synctex/synctex-xetex.h delete mode 100644 Build/source/texk/web2c/synctex/synctex.ch create mode 100644 Build/source/texk/web2c/synctex/synctex_main.c create mode 100644 Build/source/texk/web2c/synctex/synctex_parser.c create mode 100644 Build/source/texk/web2c/synctex/synctex_parser.h diff --git a/Build/source/texk/web2c/Makefile.in b/Build/source/texk/web2c/Makefile.in index 7ad0a6f5895..75c603e718d 100644 --- a/Build/source/texk/web2c/Makefile.in +++ b/Build/source/texk/web2c/Makefile.in @@ -584,6 +584,7 @@ kpse_include pdftexdir/pdftexlib.mk kpse_include luatexdir/luatexlib.mk # # Makefile fragments: +kpse_include synctex/synctex.mk kpse_include etexdir/etex.mk kpse_include omegadir/omega.mk kpse_include alephdir/aleph.mk diff --git a/Build/source/texk/web2c/synctex/INSTALL b/Build/source/texk/web2c/synctex/INSTALL new file mode 100644 index 00000000000..f7456ac1b02 --- /dev/null +++ b/Build/source/texk/web2c/synctex/INSTALL @@ -0,0 +1,96 @@ +# Copyright (c) 2008 jerome DOT laurens AT u-bourgogne DOT fr +# +# This file is part of the SyncTeX package. +# +# License: +# -------- +# Permission is hereby granted, free of charge, to any person +# obtaining a copy of this software and associated documentation +# files (the "Software"), to deal in the Software without +# restriction, including without limitation the rights to use, +# copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following +# conditions: +# +# The above copyright notice and this permission notice shall be +# included in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +# OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +# OTHER DEALINGS IN THE SOFTWARE +# +# Except as contained in this notice, the name of the copyright holder +# shall not be used in advertising or otherwise to promote the sale, +# use or other dealings in this Software without prior written +# authorization from the copyright holder. +# + +How to INSTALL synctex support in web2c. + +First you need a recent convert tool (as of march 2008) + +Modify your .mk file to mimic what was done for pdftex + +In synctex.mk +------------- +### SyncTeX support in pdftex +# list of change files +synctex-pdftex_ch_srcs_mem_only = \ + $(synctex_dir)/synctex-mem.ch0 \ + $(synctex_dir)/synctex-mem.ch1 \ + $(synctex_dir)/synctex-e-mem.ch0 \ + $(synctex_dir)/synctex-e-mem.ch1 +synctex-pdftex_ch_srcs_on = \ + $(synctex-pdftex_ch_srcs_mem_only) \ + $(synctex_dir)/synctex-rec.ch0 \ + $(synctex_dir)/synctex-rec.ch1 \ + $(synctex_dir)/synctex-e-rec.ch0 \ + $(synctex_dir)/synctex-e-rec.ch1 \ + $(synctex_dir)/synctex-pdf-rec.ch2 +synctex-pdftex_ch_srcs_off = +# The C sources and headers +synctex-pdftex_o = synctex-pdf.o +synctex-pdf.h: $(synctex_dir)/synctex.h + cat $(synctex_dir)/synctex.h >$@ +synctex-pdftex.h: $(synctex_dir)/$@ + cat $(synctex_dir)/$@ >$@ +synctex-pdf.c: pdftexd.h $(synctex_dir)/synctex.c synctex-pdftex.h + sed s/TEX-OR-MF-OR-MP/pdftex/ $(synctex_dir)/synctex.c >$@ +synctex_pdftexd_on = \ + if test -z "`grep __SyncTeX__ pdftexd.h`";\ + then\ + $(synctex_all_texd);\ + sed -f synctex_sed_command.txt pdftexd.h > synctex_pdftexd.h;\ + mv synctex_pdftexd.h pdftexd.h;\ + rm -f synctex_sed_command.txt;\ + fi +synctex_pdftexd_off = +# switchers: _on to enable full synctex support, _off to completely disable synctex, _mem_only to only implement memory management. +synctex-pdftex_ch_srcs = $(synctex-pdftex_ch_srcs_on) +# _on to enable -synctex command line option, _off to disable +synctex_pdftexd = $(synctex_pdftexd_on) + +In pdftex.mk +------------ +# The C sources. +pdftex_c = pdftexini.c pdftex0.c pdftex1.c pdftex2.c pdftex3.c +pdftex_o = pdftexini.o pdftex0.o pdftex1.o pdftex2.o pdftex3.o pdftexextra.o loadpdftexpool.o $(synctex-pdftex_o) + +# C file dependencies. +$(pdftex_c) pdftexcoerce.h pdftexd.h: pdftex.p $(web2c_texmf) $(srcdir)/$(pdftexdir)/pdftex.defines $(srcdir)/$(pdftexdir)/pdftex.h + $(web2c) pdftex + $(synctex_pdftexd) + +# Sources for pdftex.ch: +pdftex_ch_srcs = $(srcdir)/$(pdftexdir)/pdftex.web \ + $(srcdir)/$(pdftexdir)/tex.ch0 \ + $(srcdir)/tex.ch \ + $(synctex-pdftex_ch_srcs) \ + $(srcdir)/$(pdftexdir)/pdftex.ch + diff --git a/Build/source/texk/web2c/synctex/Makefile b/Build/source/texk/web2c/synctex/Makefile new file mode 100644 index 00000000000..3b692b99f42 --- /dev/null +++ b/Build/source/texk/web2c/synctex/Makefile @@ -0,0 +1,174 @@ +# Copyright (c) 2008 jerome DOT laurens AT u-bourgogne DOT fr +# +# This file is part of the SyncTeX package. +# +# License: +# -------- +# Permission is hereby granted, free of charge, to any person +# obtaining a copy of this software and associated documentation +# files (the "Software"), to deal in the Software without +# restriction, including without limitation the rights to use, +# copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following +# conditions: +# +# The above copyright notice and this permission notice shall be +# included in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +# OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +# OTHER DEALINGS IN THE SOFTWARE +# +# Except as contained in this notice, the name of the copyright holder +# shall not be used in advertising or otherwise to promote the sale, +# use or other dealings in this Software without prior written +# authorization from the copyright holder. +# +# Notice: +# ------- +# make some tests + +srcdir = .. + +prepare: + if ! test -d tests;\ + then\ + mkdir -p tests;\ + fi + +tests: prepare + cd tests;\ + make all +force: + +clean: + rm -Rf tests + +tests_dir: + -mkdir -p tests + +texch1:prepare + tie -m tests/tex1.web ../tex.web ../tex.ch + +texch2:texch1 + tie -m tests/tex2.web tests/tex1.web ../synctex/synctex.ch0 + +texch3:texch2 + tie -m tests/tex3.web tests/tex2.web ../synctex/synctex.ch1 + +texch: texch3 + +etexch01:tests_dir + tie -m tests/etex01.web ../tex.web ../etexdir/tex.ch0 + +etexch02:etexch01 + tie -m tests/etex02.web tests/etex01.web ../tex.ch + +etexch03:etexch02 + tie -m tests/etex03.web tests/etex02.web ../etexdir/tex.ch1 + +etexch04:etexch03 + tie -m tests/etex04.web tests/etex03.web ../etexdir/tex.ech + +etexch05:etexch04 + tie -m tests/etex05.web tests/etex04.web ../synctex/synctex.ch0 + +etexch06:etexch05 + tie -m tests/etex06.web tests/etex05.web ../synctex/synctex.ch1 + +etexch0:etexch06 + +etexch1:tests_dir + tie -m tests/etex1.web ../tex.web ../etexdir/etex.ch + +etexch2:etexch1 + tie -m tests/etex2.web tests/etex1.web ../synctex/synctex.ch0 + +etexch3:etexch2 + tie -m tests/etex3.web tests/etex2.web ../synctex/synctex.ch1 + +etexch4:etexch3 + tie -m tests/etex4.web tests/etex3.web ../synctex/synctex-e.ch0 + +etexch5:etexch4 + tie -m tests/etex5.web tests/etex4.web ../synctex/synctex-e.ch1 + +etexch:etexch5 + echo "DONE" + +etexch-11:tests_dir etex.web + tie -m tests/etex-11.web tests/etex.web ../synctex/synctex.ch0 + +etexch-12:etexch-11 + tie -m tests/etex-12.web tests/etex-11.web ../synctex/synctex.ch1 + +etexch-13:etexch-12 + tie -m tests/etex-13.web tests/etex-12.web ../synctex/synctex-e.ch0 + +etexch-14:etexch-13 + tie -m tests/etex-14.web tests/etex-13.web ../synctex/synctex-e.ch1 + +etexch-1:etexch-14 + echo "DONE" + +# Generation of the web and ch file. +# Sources for etex.web: +etex_web_srcs = $(srcdir)/tex.web \ + $(srcdir)/etexdir/etex.ch \ + $(srcdir)/etexdir/etex.fix +# Sources for etex.ch: +etex_ch_srcs = etex.web \ + $(srcdir)/etexdir/tex.ch0 \ + $(srcdir)/tex.ch \ + $(srcdir)/etexdir/tex.ch1 \ + $(srcdir)/etexdir/tex.ech +# Rules: +etex.web: prepare $(etex_web_srcs) + tie -m tests/etex.web $(etex_web_srcs) +etex.ch: prepare $(etex_ch_srcs) + tie -c tests/etex.ch $(etex_ch_srcs) + +xetex_web_srcs = $(srcdir)/tex.web \ + $(srcdir)/etexdir/etex.ch \ + $(srcdir)/etexdir/tex.ch0 \ + $(srcdir)/tex.ch \ + $(srcdir)/etexdir/tex.ch1 \ + $(srcdir)/etexdir/tex.ech \ + ../synctex/synctex.ch0 \ + ../synctex/synctex-e.ch0 \ + ../synctex/synctex-xetex.ch1 \ + $(srcdir)/xetexdir/xetex.ch + +xetex.web: prepare $(xetex_web_srcs) + tie -m tests/xetex.web $(xetex_web_srcs) + +xetex1: xetex.web + tie -m tests/xetex1.web tests/xetex.web ../synctex/synctex.ch0 + +xetex2:xetex1 + tie -m tests/xetex2.web tests/xetex1.web ../synctex/synctex-e.ch0 + +xetex3:xetex2 + tie -m tests/xetex3.web tests/xetex2.web ../synctex/synctex-xetex.ch1 + +xetex:xetex3 + echo "DONE" + +pdftex1: prepare + pwd + ls + tie -m tests/pdftex-1.web ../pdftexdir/pdftex.web ../pdftexdir/tex.ch0 + +pdftex2: prepare + tie -m tests/pdftex-2.web tests/pdftex-1.web ../tex.ch + +pdftex3: prepare + tie -m tests/pdftex-3.web tests/pdftex-2.web ../pdftexdir/pdftex.ch + +pdftex:pdftex3 diff --git a/Build/source/texk/web2c/synctex/Makefile.in b/Build/source/texk/web2c/synctex/Makefile.in new file mode 100644 index 00000000000..07e94a694ee --- /dev/null +++ b/Build/source/texk/web2c/synctex/Makefile.in @@ -0,0 +1,76 @@ +# Copyright (c) 2008 jerome DOT laurens AT u-bourgogne DOT fr +# +# This file is part of the SyncTeX package. +# +# License: +# -------- +# Permission is hereby granted, free of charge, to any person +# obtaining a copy of this software and associated documentation +# files (the "Software"), to deal in the Software without +# restriction, including without limitation the rights to use, +# copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following +# conditions: +# +# The above copyright notice and this permission notice shall be +# included in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +# OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +# OTHER DEALINGS IN THE SOFTWARE +# +# Except as contained in this notice, the name of the copyright holder +# shall not be used in advertising or otherwise to promote the sale, +# use or other dealings in this Software without prior written +# authorization from the copyright holder. +# +# Notice: +# ------- +# make some tests +# various test for synctex consistency +srcdir=../.. + +# first part: web consistency + +webs_dir: + -mkdir -p webs + +clean::webs_clean + rm -Rf webs + +texch1:webs_dir + tie -m webs/tex1.web ../../tex.web ../../tex.ch + +texch2:texch1 + tie -m webs/tex2.web webs/tex1.web ../../synctex/synctex.ch0 + +texch3:texch2 + tie -m webs/tex3.web webs/tex2.web ../../synctex/synctex.ch1 + +texch: texch3 + +etexch1:webs_dir + tie -m webs/etex1.web ../../tex.web ../../etexdir/tex.ch0 + +etexch2:etexch1 + tie -m webs/etex2.web webs/etex1.web ../../tex.ch + +etexch3:etexch2 + tie -m webs/etex3.web webs/etex2.web ../../etexdir/tex.ch1 + +etexch4:etexch3 + tie -m webs/etex4.web webs/etex3.web ../../etexdir/tex.ech + +etexch5:etexch4 + tie -m webs/etex5.web webs/etex4.web ../../synctex/synctex.ch0 + +etexch6:etexch5 + tie -m webs/etex6.web webs/etex5.web ../../synctex/synctex.ch1 + +etexch:etexch6 diff --git a/Build/source/texk/web2c/synctex/README.txt b/Build/source/texk/web2c/synctex/README.txt new file mode 100644 index 00000000000..a599b6e57fa --- /dev/null +++ b/Build/source/texk/web2c/synctex/README.txt @@ -0,0 +1,163 @@ +# Copyright (c) 2008 jerome DOT laurens AT u-bourgogne DOT fr +# +# This file is part of the SyncTeX package. +# +# License: +# -------- +# Permission is hereby granted, free of charge, to any person +# obtaining a copy of this software and associated documentation +# files (the "Software"), to deal in the Software without +# restriction, including without limitation the rights to use, +# copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following +# conditions: +# +# The above copyright notice and this permission notice shall be +# included in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +# OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +# OTHER DEALINGS IN THE SOFTWARE +# +# Except as contained in this notice, the name of the copyright holder +# shall not be used in advertising or otherwise to promote the sale, +# use or other dealings in this Software without prior written +# authorization from the copyright holder. +# + +This file gives the .synctex file specifications. + +SyncTeX output file specifications, Version 2, Lun 31 mar 2008 13:50:31 UTC +=========================================================================== +This is an EBNF file specification extended by ICU regex patterns +(enclosed between 2 '/'s) + +The whole synctex file is made of various records gathered into four different sections: + + ::= + +Each record is a sequence of text characters following an end of record mark or starting the file, +and ending with an end of record mark. +The first characters of a record will determine the type of the record. + + ::= /\n/ + ::= /[^\n]*/ + +The preamble: +------------- + + ::= * + + ::= /SyncTeX Version:/ + ::= + ::= /1/ + + ::= /Input:/ + ::= /:/ + ::= + ::= /[^]*/ +This is used to give a shortcut to filenames. + + ::= ? ? ? ? ? + + ::= /Output:/ + ::= /dvi|pdf|xdv|[0-9a-zA-Z]*/ + + ::= /Magnification:/ + ::= +This is the TeX magnification. + + ::= /Unit:/ + ::= +The SyncTeX unit is scaled point, 1 in general, 8192 when not given. + + ::= /X Offset:/ + ::= + ::= /Y Offset:/ + ::= +The offset or the origin of the system of coordinates from the top left point of the page. +This defaults to 1in for both the vertical and horizontal offsets. +Both offsets are given in this section in scaled point unit. + +: The preamble, like any other section may contain in the future any other kind of record, +except the one starting the next section. In order to ensure some forwards compatibility, +parsers should anticipate and parse unknown records: an unexpected record should be silently ignored by the parser. +This means that this format is somehow open an more types of records can be added without breaking existing software. + +The preamble ends when a record is found that fits the following section. + +The contents: +------------- + ::= **...* + +::=/Contents:// + ::= + ::= * + ::= /{//:// + ::= /}/ + + ::= ||| + ::= (*)|* + ::= ||| + ::= * + + ::= /v//://:/ + ::= /h//://:/ + ::= /,//,/ + ::= + ::= + ::= + ::= /,/(/,/)? + ::= + ::= + + ::= /x//:/ + ::= /k//://:/ + ::= /g//:/ + ::= /$//:/ + +The byte offset is an implicit anchor to navigate the synctex file from sheet to sheet. + +The postamble: +-------------- +The postamble closes the file +If there is no postamble, it means that the typesetting process did not end correctly. + ::= + + ::= /Postamble:/ + ::= /Count:/ + +The post scriptum: +------------------ +The post scriptum contains material possibly added by 3rd parties. +It allows to append some transformation (shift and magnify). +Typically, one applies a dvi to pdf filter with offset options and magnification, +then he appends the same options to the synctex file, for example + + dvipdfmx -m 0.486 -x 9472573sp -y 13.3dd source.dvi + echo "X Offset:9472573" >> source.synctex + echo "Y Offset:13.3dd" >> source.synctex + echo "Magnification:0.486" >> source.synctex + + + ::= (||)* + ::= /Magnification:/ + ::= + ::= /X Offset:/ + ::= + ::= + ::= /(+|-)?/ + ::= /(in|cm|mm|pt|bp|pc|sp|dd|cc|nd|nc)?/ + ::= /[\n\r]*/ + ::= /Y Offset:/ + ::= + +This second information will override the offset and magnification previously available in the preamble section. +All the numbers are encoded using the decimal representation with "C" locale. + diff --git a/Build/source/texk/web2c/synctex/man1/synctex.1 b/Build/source/texk/web2c/synctex/man1/synctex.1 new file mode 100644 index 00000000000..57a9a432f16 --- /dev/null +++ b/Build/source/texk/web2c/synctex/man1/synctex.1 @@ -0,0 +1,27 @@ +.Dd 27/03/08 \" DATE +.Dt synctex 1 \" Program name and manual section number +.Th synctex 1 +.Sh NAME +.Nm synctex +.Nd command line client tool to support the Synchronize TeXnology available in recent TeX engines. +.Sh SYNOPSIS +.TP +.Nm +\fIcommand\fP [\fIoptions\fP] [\fIargs\fP] +.Sh OVERVIEW +The Synchronization TeXnology is a new feature of recent TeX engines. +It allows to synchronize between input and output, +which means to navigate from the source document to the typeset material +and vice versa. +.Pp +Run `synctex help' to access the built-in tool documentation. +.Sh SEE ALSO +.\" List links in ascending order by section, alphabetically within a section. +.\" Please do not reference files that do not exist without filing a bug report +.Xr synctex 5 +.Xr tex 1 +.Sh AUTHOR +The Synchronize TeXnology is essentially due to Jerome Laurens, +with useful suggestions by some well known actors of the TeX world. +.\" .Sh BUGS \" Document known, unremedied bugs +.\" .Sh HISTORY \" Document history if command behaves in a unique manner \ No newline at end of file diff --git a/Build/source/texk/web2c/synctex/man5/synctex.5 b/Build/source/texk/web2c/synctex/man5/synctex.5 new file mode 100644 index 00000000000..9ae2b634a42 --- /dev/null +++ b/Build/source/texk/web2c/synctex/man5/synctex.5 @@ -0,0 +1,314 @@ +.Dd August 30, 2006 +.Dt SYNCTEX 5 +.Os "Independant" +.\" +.\" +.Sh NAME +.Nm synctex +.Nd Synchronize TeXnology help file +.\" +.\" +.Sh DESCRIPTION +Synchronize TeXnology help file +.Pq synctexs +are text files that help input/output synchronization during document preparation with the TeX typesetting system. +.Sh 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. +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. +.\" +.Sh STRUCTURE +The element structure of a synctex file is a list of text line records as follows. +.Sq \&* , +.Sq \&+ , +and +.Sq \&? +have their usual EBNF meanings: +.Sq \&* +means zero or more, +.Sq \&+ +means one or more, and +.Sq \&? +means zero or one +.Pq i.e., optional . +.Pp +.Bl -item -offset indent +.\" +.It +.Li ::= +.Pq The whole contents in 4 sections +.Bl -item -offset indent +.It +.Li +.It +.Li +.It +.Li +.It +.Li +.El +.\" +.El +.Pp +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. +.Sh The preamble +.Bl -item -offset indent +.\" +.It +.Li ::= +.Bl -item -offset indent +.It +.Li Qq SyncTeX Version: + +.It +.Li