From 4a06b1bdc9f5b5b7036974ce18e1adbc2f01c77b Mon Sep 17 00:00:00 2001 From: Kolan Sh Date: Sun, 5 Jan 2014 16:58:11 +0400 Subject: [PATCH 1/7] Description, Copying, Authors. --- AUTHORS | 1 + COPYING | 479 ++++++++++++++++++++++++++++++++++++++++++++++++++++ INSTALL | 5 + MAINTAINERS | 2 + README | 3 + 5 files changed, 490 insertions(+) create mode 100644 AUTHORS create mode 100644 COPYING create mode 100644 INSTALL create mode 100644 MAINTAINERS diff --git a/AUTHORS b/AUTHORS new file mode 100644 index 0000000..609258d --- /dev/null +++ b/AUTHORS @@ -0,0 +1 @@ +Kolan Sh diff --git a/COPYING b/COPYING new file mode 100644 index 0000000..be4b291 --- /dev/null +++ b/COPYING @@ -0,0 +1,479 @@ +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU Lesser General Public +License as published by the Free Software Foundation; either +version 2.1 of the License, or (at your option) any later version. + +Some of Shotwell's icons are copyright their respective authors: + + * Human + https://launchpad.net/human-icon-theme + Licensed under Creative Commons Attribution ShareAlike 3.0 + + * Breathe Icon Set + https://launchpad.net/breathe-icon-set + Licensed under Creative Commons Attribution ShareAlike 3.0 + + * gnome-icon-theme + http://git.gnome.org/browse/gnome-icon-theme + Licensed under Creative Commons Attribution ShareAlike 3.0 + + + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + diff --git a/INSTALL b/INSTALL new file mode 100644 index 0000000..80368e3 --- /dev/null +++ b/INSTALL @@ -0,0 +1,5 @@ + + LaTeX-struct Installation + ========================= + + To build and install LaTeX-struct, type the following commands. diff --git a/MAINTAINERS b/MAINTAINERS new file mode 100644 index 0000000..f2b408a --- /dev/null +++ b/MAINTAINERS @@ -0,0 +1,2 @@ +Kolan Sh +email: backbone@backbone.ws diff --git a/README b/README index 29a0bb0..0db9c54 100644 --- a/README +++ b/README @@ -1 +1,4 @@ LaTeX representation in the memory + Scanner + Generator. + +Git repo: https://git.backbone.ws/laview/latex-struct +Issue tracker: https://chili.backbone.ws/projects/latex-struct From d3dbb150988aba0647e0a9b0bba862bc26f16548 Mon Sep 17 00:00:00 2001 From: Kolan Sh Date: Sun, 5 Jan 2014 16:59:27 +0400 Subject: [PATCH 2/7] Successful compilation under GNU/Linux. --- CMakeLists.txt | 16 ++++ cmake/FindVala.cmake | 69 +++++++++++++++ cmake/UseVala.cmake | 180 ++++++++++++++++++++++++++++++++++++++ src/AddSpace.vala | 0 src/AddSpaces.vala | 0 src/CMakeLists.txt | 18 ++++ src/Cell.vala | 0 src/ColParam.vala | 0 src/ColParams.vala | 0 src/Doc.vala | 0 src/Glob.vala | 0 src/GlobScanner.vala | 0 src/Graphics.vala | 0 src/GraphicsScanner.vala | 0 src/Longtable.vala | 0 src/LongtableScanner.vala | 0 src/Object.vala | 0 src/ObjectList.vala | 0 src/Row.vala | 0 src/Scanner.vala | 0 src/Subtable.vala | 0 src/Tabular.vala | 0 src/TabularScanner.vala | 0 src/Text.vala | 0 src/TextScanner.vala | 0 src/main.vala | 15 ++++ 26 files changed, 298 insertions(+) create mode 100644 CMakeLists.txt create mode 100644 cmake/FindVala.cmake create mode 100644 cmake/UseVala.cmake create mode 100644 src/AddSpace.vala create mode 100644 src/AddSpaces.vala create mode 100644 src/CMakeLists.txt create mode 100644 src/Cell.vala create mode 100644 src/ColParam.vala create mode 100644 src/ColParams.vala create mode 100644 src/Doc.vala create mode 100644 src/Glob.vala create mode 100644 src/GlobScanner.vala create mode 100644 src/Graphics.vala create mode 100644 src/GraphicsScanner.vala create mode 100644 src/Longtable.vala create mode 100644 src/LongtableScanner.vala create mode 100644 src/Object.vala create mode 100644 src/ObjectList.vala create mode 100644 src/Row.vala create mode 100644 src/Scanner.vala create mode 100644 src/Subtable.vala create mode 100644 src/Tabular.vala create mode 100644 src/TabularScanner.vala create mode 100644 src/Text.vala create mode 100644 src/TextScanner.vala create mode 100644 src/main.vala diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..90ec0ab --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,16 @@ +CMAKE_MINIMUM_REQUIRED (VERSION 2.8) + +PROJECT (LAview C) + +SET (LAVIEW_VERSION_MAJOR 0) +SET (LAVIEW_VERSION_MINOR 0) +SET (LAVIEW_VERSION_PATCH 1) +SET (LAVIEW_VERSION + ${LAVIEW_VERSION_MAJOR}.${LAVIEW_VERSION_MINOR}.${LAVIEW_VERSION_PATCH}) + +LIST (APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake) + +INCLUDE (FindVala) +INCLUDE (UseVala) + +ADD_SUBDIRECTORY (src) diff --git a/cmake/FindVala.cmake b/cmake/FindVala.cmake new file mode 100644 index 0000000..c8854ce --- /dev/null +++ b/cmake/FindVala.cmake @@ -0,0 +1,69 @@ +## +# Find module for the Vala compiler (valac) +# +# This module determines wheter a Vala compiler is installed on the current +# system and where its executable is. +# +# Call the module using "find_package(Vala) from within your CMakeLists.txt. +# +# The following variables will be set after an invocation: +# +# VALA_FOUND Whether the vala compiler has been found or not +# VALA_EXECUTABLE Full path to the valac executable if it has been found +# VALA_VERSION Version number of the available valac +# VALA_USE_FILE Include this file to define the vala_precompile function +## + +## +# Copyright 2009-2010 Jakob Westhoff. All rights reserved. +# Copyright 2010-2011 Daniel Pfeifer +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# 1. Redistributions of source code must retain the above copyright notice, +# this list of conditions and the following disclaimer. +# +# 2. Redistributions in binary form must reproduce the above copyright notice, +# this list of conditions and the following disclaimer in the documentation +# and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY JAKOB WESTHOFF ``AS IS'' AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +# EVENT SHALL JAKOB WESTHOFF OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE +# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# +# The views and conclusions contained in the software and documentation are those +# of the authors and should not be interpreted as representing official policies, +# either expressed or implied, of Jakob Westhoff +## + +# Search for the valac executable in the usual system paths. +find_program(VALA_EXECUTABLE valac) +mark_as_advanced(VALA_EXECUTABLE) + +# Determine the valac version +if(VALA_EXECUTABLE) + execute_process(COMMAND ${VALA_EXECUTABLE} "--version" + OUTPUT_VARIABLE VALA_VERSION + OUTPUT_STRIP_TRAILING_WHITESPACE) + string(REPLACE "Vala " "" VALA_VERSION "${VALA_VERSION}") +endif(VALA_EXECUTABLE) + +# Handle the QUIETLY and REQUIRED arguments, which may be given to the find call. +# Furthermore set VALA_FOUND to TRUE if Vala has been found (aka. +# VALA_EXECUTABLE is set) + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(Vala + REQUIRED_VARS VALA_EXECUTABLE + VERSION_VAR VALA_VERSION) + +set(VALA_USE_FILE "${CMAKE_CURRENT_LIST_DIR}/UseVala.cmake") + diff --git a/cmake/UseVala.cmake b/cmake/UseVala.cmake new file mode 100644 index 0000000..436d1d0 --- /dev/null +++ b/cmake/UseVala.cmake @@ -0,0 +1,180 @@ +## +# Compile vala files to their c equivalents for further processing. +# +# The "vala_precompile" function takes care of calling the valac executable on +# the given source to produce c files which can then be processed further using +# default cmake functions. +# +# The first parameter provided is a variable, which will be filled with a list +# of c files outputted by the vala compiler. This list can than be used in +# conjuction with functions like "add_executable" or others to create the +# neccessary compile rules with CMake. +# +# The following sections may be specified afterwards to provide certain options +# to the vala compiler: +# +# SOURCES +# A list of .vala files to be compiled. Please take care to add every vala +# file belonging to the currently compiled project or library as Vala will +# otherwise not be able to resolve all dependencies. +# +# PACKAGES +# A list of vala packages/libraries to be used during the compile cycle. The +# package names are exactly the same, as they would be passed to the valac +# "--pkg=" option. +# +# OPTIONS +# A list of optional options to be passed to the valac executable. This can be +# used to pass "--thread" for example to enable multi-threading support. +# +# CUSTOM_VAPIS +# A list of custom vapi files to be included for compilation. This can be +# useful to include freshly created vala libraries without having to install +# them in the system. +# +# GENERATE_VAPI +# Pass all the needed flags to the compiler to create an internal vapi for +# the compiled library. The provided name will be used for this and a +# .vapi file will be created. +# +# GENERATE_HEADER +# Let the compiler generate a header file for the compiled code. There will +# be a header file as well as an internal header file being generated called +# .h and _internal.h +# +# The following call is a simple example to the vala_precompile macro showing +# an example to every of the optional sections: +# +# find_package(Vala "0.12" REQUIRED) +# inlcude(${VALA_USE_FILE}) +# +# vala_precompile(VALA_C +# SOURCES +# source1.vala +# source2.vala +# source3.vala +# PACKAGES +# gtk+-2.0 +# gio-1.0 +# posix +# DIRECTORY +# gen +# OPTIONS +# --thread +# CUSTOM_VAPIS +# some_vapi.vapi +# GENERATE_VAPI +# myvapi +# GENERATE_HEADER +# myheader +# ) +# +# Most important is the variable VALA_C which will contain all the generated c +# file names after the call. +## + +## +# Copyright 2009-2010 Jakob Westhoff. All rights reserved. +# Copyright 2010-2011 Daniel Pfeifer +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# 1. Redistributions of source code must retain the above copyright notice, +# this list of conditions and the following disclaimer. +# +# 2. Redistributions in binary form must reproduce the above copyright notice, +# this list of conditions and the following disclaimer in the documentation +# and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY JAKOB WESTHOFF ``AS IS'' AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +# EVENT SHALL JAKOB WESTHOFF OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE +# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# +# The views and conclusions contained in the software and documentation are those +# of the authors and should not be interpreted as representing official policies, +# either expressed or implied, of Jakob Westhoff +## + +include(CMakeParseArguments) + +function(vala_precompile output) + cmake_parse_arguments(ARGS "" "DIRECTORY;GENERATE_HEADER;GENERATE_VAPI" + "SOURCES;PACKAGES;OPTIONS;CUSTOM_VAPIS" ${ARGN}) + + if(ARGS_DIRECTORY) + set(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/${ARGS_DIRECTORY}) + else(ARGS_DIRECTORY) + set(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) + endif(ARGS_DIRECTORY) + include_directories(${DIRECTORY}) + set(vala_pkg_opts "") + foreach(pkg ${ARGS_PACKAGES}) + list(APPEND vala_pkg_opts "--pkg=${pkg}") + endforeach(pkg ${ARGS_PACKAGES}) + set(in_files "") + set(out_files "") + foreach(src ${ARGS_SOURCES} ${ARGS_UNPARSED_ARGUMENTS}) + list(APPEND in_files "${CMAKE_CURRENT_SOURCE_DIR}/${src}") + string(REPLACE ".vala" ".c" src ${src}) + string(REPLACE ".gs" ".c" src ${src}) + set(out_file "${DIRECTORY}/${src}") + list(APPEND out_files "${DIRECTORY}/${src}") + endforeach(src ${ARGS_SOURCES} ${ARGS_UNPARSED_ARGUMENTS}) + + set(custom_vapi_arguments "") + if(ARGS_CUSTOM_VAPIS) + foreach(vapi ${ARGS_CUSTOM_VAPIS}) + if(${vapi} MATCHES ${CMAKE_SOURCE_DIR} OR ${vapi} MATCHES ${CMAKE_BINARY_DIR}) + list(APPEND custom_vapi_arguments ${vapi}) + else (${vapi} MATCHES ${CMAKE_SOURCE_DIR} OR ${vapi} MATCHES ${CMAKE_BINARY_DIR}) + list(APPEND custom_vapi_arguments ${CMAKE_CURRENT_SOURCE_DIR}/${vapi}) + endif(${vapi} MATCHES ${CMAKE_SOURCE_DIR} OR ${vapi} MATCHES ${CMAKE_BINARY_DIR}) + endforeach(vapi ${ARGS_CUSTOM_VAPIS}) + endif(ARGS_CUSTOM_VAPIS) + + set(vapi_arguments "") + if(ARGS_GENERATE_VAPI) + list(APPEND out_files "${DIRECTORY}/${ARGS_GENERATE_VAPI}.vapi") + set(vapi_arguments "--internal-vapi=${ARGS_GENERATE_VAPI}.vapi") + + # Header and internal header is needed to generate internal vapi + if (NOT ARGS_GENERATE_HEADER) + set(ARGS_GENERATE_HEADER ${ARGS_GENERATE_VAPI}) + endif(NOT ARGS_GENERATE_HEADER) + endif(ARGS_GENERATE_VAPI) + + set(header_arguments "") + if(ARGS_GENERATE_HEADER) + list(APPEND out_files "${DIRECTORY}/${ARGS_GENERATE_HEADER}.h") + list(APPEND out_files "${DIRECTORY}/${ARGS_GENERATE_HEADER}_internal.h") + list(APPEND header_arguments "--header=${DIRECTORY}/${ARGS_GENERATE_HEADER}.h") + list(APPEND header_arguments "--internal-header=${DIRECTORY}/${ARGS_GENERATE_HEADER}_internal.h") + endif(ARGS_GENERATE_HEADER) + + add_custom_command(OUTPUT ${out_files} + COMMAND + ${VALA_EXECUTABLE} + ARGS + "-C" + ${header_arguments} + ${vapi_arguments} + "-b" ${CMAKE_CURRENT_SOURCE_DIR} + "-d" ${DIRECTORY} + ${vala_pkg_opts} + ${ARGS_OPTIONS} + ${in_files} + ${custom_vapi_arguments} + DEPENDS + ${in_files} + ${ARGS_CUSTOM_VAPIS} + ) + set(${output} ${out_files} PARENT_SCOPE) +endfunction(vala_precompile) diff --git a/src/AddSpace.vala b/src/AddSpace.vala new file mode 100644 index 0000000..e69de29 diff --git a/src/AddSpaces.vala b/src/AddSpaces.vala new file mode 100644 index 0000000..e69de29 diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt new file mode 100644 index 0000000..37e1e21 --- /dev/null +++ b/src/CMakeLists.txt @@ -0,0 +1,18 @@ +FIND_PACKAGE (PkgConfig REQUIRED) + +PKG_CHECK_MODULES (GLIB REQUIRED glib-2.0) +INCLUDE_DIRECTORIES (${GLIB_INCLUDE_DIRS}) +LINK_DIRECTORIES (${GLIB_LIBRARY_DIRS}) + +FILE (GLOB_RECURSE LAviewSources RELATIVE ${CMAKE_SOURCE_DIR}/src *.vala) +VALA_PRECOMPILE (VALA_C ${LAviewSources} + PACKAGES + OPTIONS --thread + CUSTOM_VAPIS + GENERATE_VAPI laview + GENERATE_HEADER laview + ) +ADD_LIBRARY (laview SHARED ${VALA_C}) +TARGET_LINK_LIBRARIES (laview ${GLIB2_LIBRARIES}) +SET_TARGET_PROPERTIES (laview PROPERTIES VERSION ${LAVIEW_VERSION}) +SET_TARGET_PROPERTIES (laview PROPERTIES SOVERSION ${LAVIEW_VERSION_MAJOR}) diff --git a/src/Cell.vala b/src/Cell.vala new file mode 100644 index 0000000..e69de29 diff --git a/src/ColParam.vala b/src/ColParam.vala new file mode 100644 index 0000000..e69de29 diff --git a/src/ColParams.vala b/src/ColParams.vala new file mode 100644 index 0000000..e69de29 diff --git a/src/Doc.vala b/src/Doc.vala new file mode 100644 index 0000000..e69de29 diff --git a/src/Glob.vala b/src/Glob.vala new file mode 100644 index 0000000..e69de29 diff --git a/src/GlobScanner.vala b/src/GlobScanner.vala new file mode 100644 index 0000000..e69de29 diff --git a/src/Graphics.vala b/src/Graphics.vala new file mode 100644 index 0000000..e69de29 diff --git a/src/GraphicsScanner.vala b/src/GraphicsScanner.vala new file mode 100644 index 0000000..e69de29 diff --git a/src/Longtable.vala b/src/Longtable.vala new file mode 100644 index 0000000..e69de29 diff --git a/src/LongtableScanner.vala b/src/LongtableScanner.vala new file mode 100644 index 0000000..e69de29 diff --git a/src/Object.vala b/src/Object.vala new file mode 100644 index 0000000..e69de29 diff --git a/src/ObjectList.vala b/src/ObjectList.vala new file mode 100644 index 0000000..e69de29 diff --git a/src/Row.vala b/src/Row.vala new file mode 100644 index 0000000..e69de29 diff --git a/src/Scanner.vala b/src/Scanner.vala new file mode 100644 index 0000000..e69de29 diff --git a/src/Subtable.vala b/src/Subtable.vala new file mode 100644 index 0000000..e69de29 diff --git a/src/Tabular.vala b/src/Tabular.vala new file mode 100644 index 0000000..e69de29 diff --git a/src/TabularScanner.vala b/src/TabularScanner.vala new file mode 100644 index 0000000..e69de29 diff --git a/src/Text.vala b/src/Text.vala new file mode 100644 index 0000000..e69de29 diff --git a/src/TextScanner.vala b/src/TextScanner.vala new file mode 100644 index 0000000..e69de29 diff --git a/src/main.vala b/src/main.vala new file mode 100644 index 0000000..82ff429 --- /dev/null +++ b/src/main.vala @@ -0,0 +1,15 @@ +namespace LAview { + public errordomain ParseError { + UNEXPECTED_SYMBOL, + } + + public void parse(string text) throws ParseError { + print("TeX successfully parsed!\n"); + if (0 != 0) + throw new ParseError.UNEXPECTED_SYMBOL("Parsing error!"); + } + + public string plain_to_tex(string text) { + return "Parsed text here..."; + } +} From d797bcd6b03633125f345937b11d84778b42c2a4 Mon Sep 17 00:00:00 2001 From: Kolan Sh Date: Tue, 18 Feb 2014 19:06:49 +0400 Subject: [PATCH 3/7] Using LGPL 3.0. (http://www.gnu.org/licenses/lgpl-3.0.txt) --- COPYING | 592 +++++++++++++------------------------------------------- 1 file changed, 139 insertions(+), 453 deletions(-) diff --git a/COPYING b/COPYING index be4b291..65c5ca8 100644 --- a/COPYING +++ b/COPYING @@ -1,479 +1,165 @@ -This program is free software; you can redistribute it and/or -modify it under the terms of the GNU Lesser General Public -License as published by the Free Software Foundation; either -version 2.1 of the License, or (at your option) any later version. + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 -Some of Shotwell's icons are copyright their respective authors: - - * Human - https://launchpad.net/human-icon-theme - Licensed under Creative Commons Attribution ShareAlike 3.0 - - * Breathe Icon Set - https://launchpad.net/breathe-icon-set - Licensed under Creative Commons Attribution ShareAlike 3.0 - - * gnome-icon-theme - http://git.gnome.org/browse/gnome-icon-theme - Licensed under Creative Commons Attribution ShareAlike 3.0 - - - GNU LESSER GENERAL PUBLIC LICENSE - Version 2.1, February 1999 - - Copyright (C) 1991, 1999 Free Software Foundation, Inc. - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. -[This is the first released version of the Lesser GPL. It also counts - as the successor of the GNU Library Public License, version 2, hence - the version number 2.1.] - Preamble + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -Licenses are intended to guarantee your freedom to share and change -free software--to make sure the software is free for all its users. + 0. Additional Definitions. - This license, the Lesser General Public License, applies to some -specially designated software packages--typically libraries--of the -Free Software Foundation and other authors who decide to use it. You -can use it too, but we suggest you first think carefully about whether -this license or the ordinary General Public License is the better -strategy to use in any particular case, based on the explanations below. + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. - When we speak of free software, we are referring to freedom of use, -not price. Our General Public Licenses are designed to make sure that -you have the freedom to distribute copies of free software (and charge -for this service if you wish); that you receive source code or can get -it if you want it; that you can change the software and use pieces of -it in new free programs; and that you are informed that you can do -these things. + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. - To protect your rights, we need to make restrictions that forbid -distributors to deny you these rights or to ask you to surrender these -rights. These restrictions translate to certain responsibilities for -you if you distribute copies of the library or if you modify it. + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. - For example, if you distribute copies of the library, whether gratis -or for a fee, you must give the recipients all the rights that we gave -you. You must make sure that they, too, receive or can get the source -code. If you link other code with the library, you must provide -complete object files to the recipients, so that they can relink them -with the library after making changes to the library and recompiling -it. And you must show them these terms so they know their rights. + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". - We protect your rights with a two-step method: (1) we copyright the -library, and (2) we offer you this license, which gives you legal -permission to copy, distribute and/or modify the library. + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. - To protect each distributor, we want to make it very clear that -there is no warranty for the free library. Also, if the library is -modified by someone else and passed on, the recipients should know -that what they have is not the original version, so that the original -author's reputation will not be affected by problems that might be -introduced by others. - - Finally, software patents pose a constant threat to the existence of -any free program. We wish to make sure that a company cannot -effectively restrict the users of a free program by obtaining a -restrictive license from a patent holder. Therefore, we insist that -any patent license obtained for a version of the library must be -consistent with the full freedom of use specified in this license. + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. - Most GNU software, including some libraries, is covered by the -ordinary GNU General Public License. This license, the GNU Lesser -General Public License, applies to certain designated libraries, and -is quite different from the ordinary General Public License. We use -this license for certain libraries in order to permit linking those -libraries into non-free programs. + 1. Exception to Section 3 of the GNU GPL. - When a program is linked with a library, whether statically or using -a shared library, the combination of the two is legally speaking a -combined work, a derivative of the original library. The ordinary -General Public License therefore permits such linking only if the -entire combination fits its criteria of freedom. The Lesser General -Public License permits more lax criteria for linking other code with -the library. + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. - We call this license the "Lesser" General Public License because it -does Less to protect the user's freedom than the ordinary General -Public License. It also provides other free software developers Less -of an advantage over competing non-free programs. These disadvantages -are the reason we use the ordinary General Public License for many -libraries. However, the Lesser license provides advantages in certain -special circumstances. + 2. Conveying Modified Versions. - For example, on rare occasions, there may be a special need to -encourage the widest possible use of a certain library, so that it becomes -a de-facto standard. To achieve this, non-free programs must be -allowed to use the library. A more frequent case is that a free -library does the same job as widely used non-free libraries. In this -case, there is little to gain by limiting the free library to free -software only, so we use the Lesser General Public License. + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: - In other cases, permission to use a particular library in non-free -programs enables a greater number of people to use a large body of -free software. For example, permission to use the GNU C Library in -non-free programs enables many more people to use the whole GNU -operating system, as well as its variant, the GNU/Linux operating -system. + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or - Although the Lesser General Public License is Less protective of the -users' freedom, it does ensure that the user of a program that is -linked with the Library has the freedom and the wherewithal to run -that program using a modified version of the Library. + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. - The precise terms and conditions for copying, distribution and -modification follow. Pay close attention to the difference between a -"work based on the library" and a "work that uses the library". The -former contains code derived from the library, whereas the latter must -be combined with the library in order to run. - - GNU LESSER GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + 3. Object Code Incorporating Material from Library Header Files. - 0. This License Agreement applies to any software library or other -program which contains a notice placed by the copyright holder or -other authorized party saying it may be distributed under the terms of -this Lesser General Public License (also called "this License"). -Each licensee is addressed as "you". + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: - A "library" means a collection of software functions and/or data -prepared so as to be conveniently linked with application programs -(which use some of those functions and data) to form executables. + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. - The "Library", below, refers to any such software library or work -which has been distributed under these terms. A "work based on the -Library" means either the Library or any derivative work under -copyright law: that is to say, a work containing the Library or a -portion of it, either verbatim or with modifications and/or translated -straightforwardly into another language. (Hereinafter, translation is -included without limitation in the term "modification".) + b) Accompany the object code with a copy of the GNU GPL and this license + document. - "Source code" for a work means the preferred form of the work for -making modifications to it. For a library, complete source code means -all the source code for all modules it contains, plus any associated -interface definition files, plus the scripts used to control compilation -and installation of the library. + 4. Combined Works. - Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running a program using the Library is not restricted, and output from -such a program is covered only if its contents constitute a work based -on the Library (independent of the use of the Library in a tool for -writing it). Whether that is true depends on what the Library does -and what the program that uses the Library does. + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: - 1. You may copy and distribute verbatim copies of the Library's -complete source code as you receive it, in any medium, provided that -you conspicuously and appropriately publish on each copy an -appropriate copyright notice and disclaimer of warranty; keep intact -all the notices that refer to this License and to the absence of any -warranty; and distribute a copy of this License along with the + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the Library. - - You may charge a fee for the physical act of transferring a copy, -and you may at your option offer warranty protection in exchange for a -fee. - - 2. You may modify your copy or copies of the Library or any portion -of it, thus forming a work based on the Library, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) The modified work must itself be a software library. - - b) You must cause the files modified to carry prominent notices - stating that you changed the files and the date of any change. - - c) You must cause the whole of the work to be licensed at no - charge to all third parties under the terms of this License. - - d) If a facility in the modified Library refers to a function or a - table of data to be supplied by an application program that uses - the facility, other than as an argument passed when the facility - is invoked, then you must make a good faith effort to ensure that, - in the event an application does not supply such function or - table, the facility still operates, and performs whatever part of - its purpose remains meaningful. - - (For example, a function in a library to compute square roots has - a purpose that is entirely well-defined independent of the - application. Therefore, Subsection 2d requires that any - application-supplied function or table used by this function must - be optional: if the application does not supply it, the square - root function must still compute square roots.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Library, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Library, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote -it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Library. - -In addition, mere aggregation of another work not based on the Library -with the Library (or with a work based on the Library) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may opt to apply the terms of the ordinary GNU General Public -License instead of this License to a given copy of the Library. To do -this, you must alter all the notices that refer to this License, so -that they refer to the ordinary GNU General Public License, version 2, -instead of to this License. (If a newer version than version 2 of the -ordinary GNU General Public License has appeared, then you can specify -that version instead if you wish.) Do not make any other change in -these notices. - - Once this change is made in a given copy, it is irreversible for -that copy, so the ordinary GNU General Public License applies to all -subsequent copies and derivative works made from that copy. - - This option is useful when you wish to copy part of the code of -the Library into a program that is not a library. - - 4. You may copy and distribute the Library (or a portion or -derivative of it, under Section 2) in object code or executable form -under the terms of Sections 1 and 2 above provided that you accompany -it with the complete corresponding machine-readable source code, which -must be distributed under the terms of Sections 1 and 2 above on a -medium customarily used for software interchange. - - If distribution of object code is made by offering access to copy -from a designated place, then offering equivalent access to copy the -source code from the same place satisfies the requirement to -distribute the source code, even though third parties are not -compelled to copy the source along with the object code. - - 5. A program that contains no derivative of any portion of the -Library, but is designed to work with the Library by being compiled or -linked with it, is called a "work that uses the Library". Such a -work, in isolation, is not a derivative work of the Library, and -therefore falls outside the scope of this License. - - However, linking a "work that uses the Library" with the Library -creates an executable that is a derivative of the Library (because it -contains portions of the Library), rather than a "work that uses the -library". The executable is therefore covered by this License. -Section 6 states terms for distribution of such executables. - - When a "work that uses the Library" uses material from a header file -that is part of the Library, the object code for the work may be a -derivative work of the Library even though the source code is not. -Whether this is true is especially significant if the work can be -linked without the Library, or if the work is itself a library. The -threshold for this to be true is not precisely defined by law. - - If such an object file uses only numerical parameters, data -structure layouts and accessors, and small macros and small inline -functions (ten lines or less in length), then the use of the object -file is unrestricted, regardless of whether it is legally a derivative -work. (Executables containing this object code plus portions of the -Library will still fall under Section 6.) - - Otherwise, if the work is a derivative of the Library, you may -distribute the object code for the work under the terms of Section 6. -Any executables containing that work also fall under Section 6, -whether or not they are linked directly with the Library itself. - - 6. As an exception to the Sections above, you may also combine or -link a "work that uses the Library" with the Library to produce a -work containing portions of the Library, and distribute that work -under terms of your choice, provided that the terms permit -modification of the work for the customer's own use and reverse -engineering for debugging such modifications. - - You must give prominent notice with each copy of the work that the -Library is used in it and that the Library and its use are covered by -this License. You must supply a copy of this License. If the work -during execution displays copyright notices, you must include the -copyright notice for the Library among them, as well as a reference -directing the user to the copy of this License. Also, you must do one -of these things: - - a) Accompany the work with the complete corresponding - machine-readable source code for the Library including whatever - changes were used in the work (which must be distributed under - Sections 1 and 2 above); and, if the work is an executable linked - with the Library, with the complete machine-readable "work that - uses the Library", as object code and/or source code, so that the - user can modify the Library and then relink to produce a modified - executable containing the modified Library. (It is understood - that the user who changes the contents of definitions files in the - Library will not necessarily be able to recompile the application - to use the modified definitions.) - - b) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (1) uses at run time a - copy of the library already present on the user's computer system, - rather than copying library functions into the executable, and (2) - will operate properly with a modified version of the library, if - the user installs one, as long as the modified version is - interface-compatible with the version that the work was made with. - - c) Accompany the work with a written offer, valid for at - least three years, to give the same user the materials - specified in Subsection 6a, above, for a charge no more - than the cost of performing this distribution. - - d) If distribution of the work is made by offering access to copy - from a designated place, offer equivalent access to copy the above - specified materials from the same place. - - e) Verify that the user has already received a copy of these - materials or that you have already sent this user a copy. - - For an executable, the required form of the "work that uses the -Library" must include any data and utility programs needed for -reproducing the executable from it. However, as a special exception, -the materials to be distributed need not include anything that is -normally distributed (in either source or binary form) with the major -components (compiler, kernel, and so on) of the operating system on -which the executable runs, unless that component itself accompanies -the executable. - - It may happen that this requirement contradicts the license -restrictions of other proprietary libraries that do not normally -accompany the operating system. Such a contradiction means you cannot -use both them and the Library together in an executable that you -distribute. - - 7. You may place library facilities that are a work based on the -Library side-by-side in a single library together with other library -facilities not covered by this License, and distribute such a combined -library, provided that the separate distribution of the work based on -the Library and of the other library facilities is otherwise -permitted, and provided that you do these two things: - - a) Accompany the combined library with a copy of the same work - based on the Library, uncombined with any other library - facilities. This must be distributed under the terms of the - Sections above. - - b) Give prominent notice with the combined library of the fact - that part of it is a work based on the Library, and explaining - where to find the accompanying uncombined form of the same work. - - 8. You may not copy, modify, sublicense, link with, or distribute -the Library except as expressly provided under this License. Any -attempt otherwise to copy, modify, sublicense, link with, or -distribute the Library is void, and will automatically terminate your -rights under this License. However, parties who have received copies, -or rights, from you under this License will not have their licenses -terminated so long as such parties remain in full compliance. - - 9. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Library or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Library (or any work based on the -Library), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Library or works based on it. - - 10. Each time you redistribute the Library (or any work based on the -Library), the recipient automatically receives a license from the -original licensor to copy, distribute, link with or modify the Library -subject to these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties with -this License. - - 11. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Library at all. For example, if a patent -license would not permit royalty-free redistribution of the Library by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Library. - -If any portion of this section is held invalid or unenforceable under any -particular circumstance, the balance of the section is intended to apply, -and the section as a whole is intended to apply in other circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 12. If the distribution and/or use of the Library is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Library under this License may add -an explicit geographical distribution limitation excluding those countries, -so that distribution is permitted only in or among countries not thus -excluded. In such case, this License incorporates the limitation as if -written in the body of this License. - - 13. The Free Software Foundation may publish revised and/or new -versions of the Lesser General Public License from time to time. -Such new versions will be similar in spirit to the present version, -but may differ in detail to address new problems or concerns. - -Each version is given a distinguishing version number. If the Library -specifies a version number of this License which applies to it and -"any later version", you have the option of following the terms and -conditions either of that version or of any later version published by -the Free Software Foundation. If the Library does not specify a -license version number, you may choose any version ever published by -the Free Software Foundation. - - 14. If you wish to incorporate parts of the Library into other free -programs whose distribution conditions are incompatible with these, -write to the author to ask for permission. For software which is -copyrighted by the Free Software Foundation, write to the Free -Software Foundation; we sometimes make exceptions for this. Our -decision will be guided by the two goals of preserving the free status -of all derivatives of our free software and of promoting the sharing -and reuse of software generally. - - NO WARRANTY - - 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO -WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. -EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR -OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY -KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE -LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME -THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN -WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY -AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU -FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR -CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE -LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING -RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A -FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF -SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGES. - - END OF TERMS AND CONDITIONS - From 3cedf1c280d2f9b69403681def225ff579adf7a0 Mon Sep 17 00:00:00 2001 From: Kolan Sh Date: Wed, 19 Feb 2014 11:10:09 +0400 Subject: [PATCH 4/7] README updated --- README | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README b/README index 0db9c54..186e653 100644 --- a/README +++ b/README @@ -1,4 +1,4 @@ -LaTeX representation in the memory + Scanner + Generator. +LaTeX representation in the memory + Parser (GScanner) + Generator. Git repo: https://git.backbone.ws/laview/latex-struct Issue tracker: https://chili.backbone.ws/projects/latex-struct From 18290fa7359aa8584c460cda1c37672e46d4b003 Mon Sep 17 00:00:00 2001 From: Kolan Sh Date: Wed, 19 Feb 2014 13:15:19 +0400 Subject: [PATCH 5/7] INSTALL updated --- INSTALL | 86 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 83 insertions(+), 3 deletions(-) diff --git a/INSTALL b/INSTALL index 80368e3..067d493 100644 --- a/INSTALL +++ b/INSTALL @@ -1,5 +1,85 @@ + Requirements + ------------ - LaTeX-struct Installation - ========================= + Build-Time Dependencies - To build and install LaTeX-struct, type the following commands. +Vala: https://wiki.gnome.org/Projects/Vala +Gee: https://wiki.gnome.org/Projects/Libgee +CMake: http://www.cmake.org +NSIS (Win-only): http://nsis.sourceforge.net + + Run-Time Dependencies + +Gee: https://wiki.gnome.org/Projects/Libgee + + Operation Systems + + * GNU/Linux (Gentoo, Debian, etc.) + * MS Windows (Windows 5.1 aka XP) + * BSD-based (FreeBSD, OpenBSD, NetBSD, Mac OS X) + +If you need support of one more OS, be free in writing of patches and sending +pull-requests to the mainstream. + + + Compilation + ----------- + + Compilation under GNU/Linux + +$ mkdir build-gcc && cd build-gcc +$ cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr +$ make + + Compilation under MS Windows + +$ mkdir build-mingw && cd build-mingw +$ LANG=en +$ PKG_CONFIG_PATH= +$ PATH=/c/MinGW/lib:/c/MinGW/bin:$PATH +$ cmake -G "MSYS Makefiles" .. -DCMAKE_BUILD_TYPE=Release +$ make + + Compilation under BSD-based. + +TODO: add description here. + + + Packing/Installation + -------------------- + + Packing/Installation under GNU/Linux + +$ cpack +Install using your favourite package manager. + + Packing/Installation under MS Windows + +$ cpack +Install using an executable generated by NSIS. + + Packing/Installation under BSD-based + +$ cpack +Install using your favourite package manager. + + + Testing + ------- + + Testing under GNU/Linux + +$ LANG=en ctest + +Automated tests for memory leaks: +$ LANG=en ctest -D NightlyMemCheck && grep definitely Testing/Temporary/LastDynamicAnalysis_*.log + + Testing under MS Windows + +$ LANG=en ctest +Automated tests for memory leaks are not available as far as Valgrind not +present on this platform. + + Testing under BSD-based + +$ LANG=en ctest From b97c70b48f6bb6f968c72977c09afc8ab8bdffa9 Mon Sep 17 00:00:00 2001 From: Kolan Sh Date: Wed, 9 Apr 2014 17:43:14 +0400 Subject: [PATCH 6/7] First development version. --- CMakeLists.txt | 132 +- README | 2 +- cmake/CPackDetectArch.cmake | 20 + cmake/MacroOptionalAddSubdirectory.cmake | 31 + laview-latex-struct.pc.in | 11 + po/CMakeLists.txt | 9 + po/laview-latex-struct-0.pot | 61 + po/ru/CMakeLists.txt | 2 + po/ru/laview-latex-struct-0.po | 67 + src/AddSpace.vala | 45 + src/AddSpaces.vala | 61 + src/CMakeLists.txt | 40 +- src/Cell.vala | 168 + src/ColParam.vala | 65 + src/ColParams.vala | 18 + src/Doc.vala | 0 src/DocIfaces.vala | 75 + src/Glob.vala | 15 + src/GlobParser.vala | 191 + src/GlobScanner.vala | 0 src/Graphics.vala | 93 + src/GraphicsParser.vala | 153 + src/GraphicsScanner.vala | 0 src/Longtable.vala | 64 + src/LongtableParser.vala | 119 + src/LongtableScanner.vala | 0 src/Object.vala | 0 src/ObjectList.vala | 0 src/Parser.vala | 358 ++ src/ParserFactory.vala | 55 + src/Row.vala | 439 ++ src/Scanner.vala | 0 src/Subtable.vala | 353 ++ src/Table.vala | 181 + src/TableParser.vala | 674 +++ src/Tabular.vala | 63 + src/TabularParser.vala | 137 + src/TabularScanner.vala | 0 src/Text.vala | 36 + src/TextParser.vala | 21 + src/TextScanner.vala | 0 src/gettext-config.h.in | 11 + src/main.vala | 104 +- src/vala_unsupported.c | 34 + test/CMakeLists.txt | 390 ++ test/LTableTest.vala | 122 + test/ParseTest.vala | 141 + test/tex/151.bmp | Bin 0 -> 7254 bytes test/tex/174.jpg | Bin 0 -> 1068 bytes test/tex/CMakeLists.txt | 386 ++ test/tex/all_subtables.lyx | 1124 +++++ test/tex/all_subtables.tex | 129 + test/tex/back_slashes_in_a_table.etalon.tex | 48 + test/tex/back_slashes_in_a_table.tex | 50 + test/tex/formular.lyx | 4377 ++++++++++++++++++ test/tex/formular.tex | 359 ++ test/tex/formular_err1.tex | 220 + test/tex/formular_err2.tex | 220 + test/tex/get_tags.sh | 3 + test/tex/graph_in_ltable.tex | 225 + test/tex/includegraphics.tex | 4 + test/tex/lines.etalon.tex | 262 ++ test/tex/lines.lyx | 648 +++ test/tex/lines.tex | 289 ++ test/tex/ltable_clone_0_0.tex | 389 ++ test/tex/ltable_clone_0_1.tex | 389 ++ test/tex/ltable_clone_0_1000.tex | 359 ++ test/tex/ltable_clone_0_last.tex | 389 ++ test/tex/ltable_clone_0_lastp1.tex | 389 ++ test/tex/ltable_clone_1000_0.tex | 359 ++ test/tex/ltable_clone_1_0.tex | 387 ++ test/tex/ltable_clone_last_0.tex | 364 ++ test/tex/ltable_clone_lastp1_0.tex | 359 ++ test/tex/ltable_double_embedded.tex | 11 + test/tex/ltable_embedded.tex | 3 + test/tex/ltable_rm0row.tex | 357 ++ test/tex/ltable_rm1000row.tex | 359 ++ test/tex/ltable_rm1row.tex | 359 ++ test/tex/ltable_rm_last_row.tex | 357 ++ test/tex/ltable_square_arg.lyx | 126 + test/tex/ltable_square_arg.tex | 27 + test/tex/ltable_test.c | 177 + test/tex/old_tex_parser.geany | 47 + test/tex/table_in_table.tex | 161 + test/tex/table_rows.etalon.tex | 55 + test/tex/table_rows.tex | 49 + test/tex/throttle.lyx | 4609 +++++++++++++++++++ test/tex/throttle.tex | 232 + test/tex/throttle_VK2500.tex | 135 + test/tex/throttle_VK2500PS.tex | 144 + test/tex/throttle_VK2500PS_dos_newlines.tex | 144 + test/tex/throttle_err1.tex | 139 + test/tex/throttle_err2.tex | 139 + test/tex/throttle_err3.tex | 140 + test/tex/throttle_err4.tex | 139 + test/tex/throttle_err5.tex | 139 + test/tex/throttle_err6.tex | 140 + test/tex/txr_parse_test.c | 219 + test/tex/unary_quotes.tex | 19 + util/update-po.sh | 48 + util/valadoc.sh | 19 + valadoc_env | 2 + 102 files changed, 24753 insertions(+), 31 deletions(-) create mode 100644 cmake/CPackDetectArch.cmake create mode 100644 cmake/MacroOptionalAddSubdirectory.cmake create mode 100644 laview-latex-struct.pc.in create mode 100644 po/CMakeLists.txt create mode 100644 po/laview-latex-struct-0.pot create mode 100644 po/ru/CMakeLists.txt create mode 100644 po/ru/laview-latex-struct-0.po delete mode 100644 src/Doc.vala create mode 100644 src/DocIfaces.vala create mode 100644 src/GlobParser.vala delete mode 100644 src/GlobScanner.vala create mode 100644 src/GraphicsParser.vala delete mode 100644 src/GraphicsScanner.vala create mode 100644 src/LongtableParser.vala delete mode 100644 src/LongtableScanner.vala delete mode 100644 src/Object.vala delete mode 100644 src/ObjectList.vala create mode 100644 src/Parser.vala create mode 100644 src/ParserFactory.vala delete mode 100644 src/Scanner.vala create mode 100644 src/Table.vala create mode 100644 src/TableParser.vala create mode 100644 src/TabularParser.vala delete mode 100644 src/TabularScanner.vala create mode 100644 src/TextParser.vala delete mode 100644 src/TextScanner.vala create mode 100644 src/gettext-config.h.in create mode 100644 src/vala_unsupported.c create mode 100644 test/CMakeLists.txt create mode 100644 test/LTableTest.vala create mode 100644 test/ParseTest.vala create mode 100644 test/tex/151.bmp create mode 100644 test/tex/174.jpg create mode 100644 test/tex/CMakeLists.txt create mode 100644 test/tex/all_subtables.lyx create mode 100644 test/tex/all_subtables.tex create mode 100644 test/tex/back_slashes_in_a_table.etalon.tex create mode 100644 test/tex/back_slashes_in_a_table.tex create mode 100644 test/tex/formular.lyx create mode 100644 test/tex/formular.tex create mode 100644 test/tex/formular_err1.tex create mode 100644 test/tex/formular_err2.tex create mode 100755 test/tex/get_tags.sh create mode 100644 test/tex/graph_in_ltable.tex create mode 100644 test/tex/includegraphics.tex create mode 100644 test/tex/lines.etalon.tex create mode 100644 test/tex/lines.lyx create mode 100644 test/tex/lines.tex create mode 100644 test/tex/ltable_clone_0_0.tex create mode 100644 test/tex/ltable_clone_0_1.tex create mode 100644 test/tex/ltable_clone_0_1000.tex create mode 100644 test/tex/ltable_clone_0_last.tex create mode 100644 test/tex/ltable_clone_0_lastp1.tex create mode 100644 test/tex/ltable_clone_1000_0.tex create mode 100644 test/tex/ltable_clone_1_0.tex create mode 100644 test/tex/ltable_clone_last_0.tex create mode 100644 test/tex/ltable_clone_lastp1_0.tex create mode 100644 test/tex/ltable_double_embedded.tex create mode 100644 test/tex/ltable_embedded.tex create mode 100644 test/tex/ltable_rm0row.tex create mode 100644 test/tex/ltable_rm1000row.tex create mode 100644 test/tex/ltable_rm1row.tex create mode 100644 test/tex/ltable_rm_last_row.tex create mode 100644 test/tex/ltable_square_arg.lyx create mode 100644 test/tex/ltable_square_arg.tex create mode 100644 test/tex/ltable_test.c create mode 100644 test/tex/old_tex_parser.geany create mode 100644 test/tex/table_in_table.tex create mode 100644 test/tex/table_rows.etalon.tex create mode 100644 test/tex/table_rows.tex create mode 100644 test/tex/throttle.lyx create mode 100644 test/tex/throttle.tex create mode 100644 test/tex/throttle_VK2500.tex create mode 100644 test/tex/throttle_VK2500PS.tex create mode 100644 test/tex/throttle_VK2500PS_dos_newlines.tex create mode 100644 test/tex/throttle_err1.tex create mode 100644 test/tex/throttle_err2.tex create mode 100644 test/tex/throttle_err3.tex create mode 100644 test/tex/throttle_err4.tex create mode 100644 test/tex/throttle_err5.tex create mode 100644 test/tex/throttle_err6.tex create mode 100644 test/tex/txr_parse_test.c create mode 100644 test/tex/unary_quotes.tex create mode 100755 util/update-po.sh create mode 100755 util/valadoc.sh create mode 100644 valadoc_env diff --git a/CMakeLists.txt b/CMakeLists.txt index 90ec0ab..4dbb510 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,16 +1,130 @@ +PROJECT (LAviewLatexStruct C) + CMAKE_MINIMUM_REQUIRED (VERSION 2.8) -PROJECT (LAview C) - -SET (LAVIEW_VERSION_MAJOR 0) -SET (LAVIEW_VERSION_MINOR 0) -SET (LAVIEW_VERSION_PATCH 1) -SET (LAVIEW_VERSION - ${LAVIEW_VERSION_MAJOR}.${LAVIEW_VERSION_MINOR}.${LAVIEW_VERSION_PATCH}) +SET (MAJOR 0) +SET (MINOR 0) +SET (PATCH 0) +SET (VERSION ${MAJOR}.${MINOR}.${PATCH}) LIST (APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake) +INCLUDE (MacroOptionalAddSubdirectory) +INCLUDE (CPackDetectArch) -INCLUDE (FindVala) -INCLUDE (UseVala) +SET (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -w") # supress Gcc warnings + +# configure a header file for Gettext +SET (GETTEXT_PACKAGE "laview-latex-struct") +ADD_DEFINITIONS (-DGETTEXT_PACKAGE="${GETTEXT_PACKAGE}") +IF (WIN32) + SET (LOCALEDIR "") +ELSE () + SET (LOCALEDIR "${CMAKE_INSTALL_PREFIX}/share/locale") +ENDIF () +SET (CUSTOM_LOCALEDIR "" CACHE STRING "Directory to install l10n files into") +IF (NOT CUSTOM_LOCALEDIR STREQUAL "") + SET (LOCALEDIR "${CUSTOM_LOCALEDIR}") + MESSAGE(STATUS "Using LOCALEDIR=${LOCALEDIR}") +ENDIF () +ADD_DEFINITIONS (-DLOCALEDIR="${LOCALEDIR}") +SET (LOCALE_INSTALL_DIR "share/locale") +MACRO_OPTIONAL_ADD_SUBDIRECTORY (po) + +# Avoid of "dll not found" messages +SET (CMAKE_RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/run") + +# configure a header file for Gettext +CONFIGURE_FILE ( + "${PROJECT_SOURCE_DIR}/src/gettext-config.h.in" + "${PROJECT_BINARY_DIR}/src/gettext-config.h" + ) + +IF ( CMAKE_BUILD_TYPE STREQUAL "Debug" ) + SET (VALA_DEBUG "-g") +ENDIF () + +# configure pkg-config file +IF (WIN32) + SET (prefix "") +ELSE () + SET (prefix ${CMAKE_INSTALL_PREFIX}) +ENDIF () +SET (exec_prefix "\${prefix}") +SET (libdir "\${exec_prefix}/lib") +SET (prefincludedir "\${prefix}/include") +SET (link_lib1 "\${libdir}") +SET (link_lib2 "laview-latex-struct") +CONFIGURE_FILE ( + "${PROJECT_SOURCE_DIR}/laview-latex-struct.pc.in" + "${PROJECT_BINARY_DIR}/laview-latex-struct-${MAJOR}.pc" + ) + +SET (CMAKE_C_FLAGS_DEBUG "-ggdb3 -O0 -ftest-coverage -Wcoverage-mismatch ${CMAKE_C_FLAGS_DEBUG}") +SET (CMAKE_C_FLAGS_RELEASE "-O2 ${CMAKE_C_FLAGS_RELEASE}") ADD_SUBDIRECTORY (src) +ADD_SUBDIRECTORY (test) + +## CPack configuration ## +SET (CPACK_PACKAGE_CONTACT "backbone@backbone.ws") +SET (CPACK_PACKAGE_VENDOR "backbone@backbone.ws") +SET (CPACK_NSIS_MODIFY_PATH ON) +SET (CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL ON) +INCLUDE (InstallRequiredSystemLibraries) +SET (CPACK_RESOURCE_FILE_LICENSE + "${CMAKE_CURRENT_SOURCE_DIR}/COPYING") +SET (CPACK_PACKAGE_DESCRIPTION_FILE + "${CMAKE_CURRENT_SOURCE_DIR}/README") +INSTALL (FILES "${PROJECT_BINARY_DIR}/laview-latex-struct-${MAJOR}.pc" + DESTINATION lib/pkgconfig) +INSTALL (FILES "${PROJECT_BINARY_DIR}/src/laview-latex-struct-${MAJOR}.vapi" + DESTINATION share/vala/vapi) +#SET (CPACK_NSIS_PACKAGE_NAME "${PROJECT_NAME}") +#SET (CPACK_NSIS_DISPLAY_NAME "${PROJECT_NAME}") +SET (CPACK_PACKAGE_VERSION_MAJOR "${MAJOR}") +SET (CPACK_PACKAGE_VERSION_MINOR "${MINOR}") +SET (CPACK_PACKAGE_VERSION_PATCH "${PATCH}") +SET (CPACK_PACKAGE_VERSION "${VERSION}") + +IF (UNIX) + SET (CPACK_GENERATOR "DEB;RPM;STGZ;TBZ2;TGZ;TZ;ZIP") + SET (CPACK_SOURCE_GENERATOR "DEB;RPM;STGZ;TBZ2;TGZ;TZ;ZIP") + SET (CPACK_PACKAGE_NAME "laview-latex-struct") + SET (CPACK_PACKAGE_DESCRIPTION_SUMMARY "LaTeX representation in the memory") + SET (CPACK_PACKAGE_DESCRIPTION "LaTeX representation in the memory " + "Scanner + Generator + Operations on document objects.") + + # Debian specific options + SET (CPACK_DEBIAN_PACKAGE_DEPENDS "valac (>= 0.24), libglib2.0-bin (>= 2.33)") + SET (CPACK_DEBIAN_PACKAGE_SECTION "Libraries") + # SET (CPACK_DEBIAN_PACKAGE_ARCHITECTURE "${ARCHITECTURE}") + # SET (CPACK_DEBIAN_PACKAGE_PRIORITY "optional") + SET (CPACK_DEBIAN_PACKAGE_RECOMMENDS "") + SET (CPACK_DEBIAN_PACKAGE_SUGGESTS "") + + # RPM specific options + # SET (CPACK_RPM_PACKAGE_ARCHITECTURE "${ARCHITECTURE}") + SET (CPACK_RPM_PACKAGE_LICENSE "LGPLv3+") + SET (CPACK_RPM_PACKAGE_GROUP "Applications/Text") + SET (CPACK_RPM_PACKAGE_REQUIRES "vala >= 0.24, glib >= 2.33") + SET (CPACK_RPM_PACKAGE_PROVIDES "laview-latex-struct") + + # http://public.kitware.com/Bug/view.php?id=12997 + SET(CPACK_PACKAGE_FILE_NAME + "${CPACK_PACKAGE_NAME}_${CPACK_PACKAGE_VERSION}_${ARCHITECTURE}") + +ELSEIF (WIN32) + SET (CPACK_GENERATOR "NSIS") + SET (CPACK_SOURCE_GENERATOR "NSIS") + SET (CPACK_PACKAGE_INSTALL_REGISTRY_KEY "${CMAKE_PROJECT_NAME}-${MAJOR}") + #SET (CPACK_NSIS_MENU_LINKS "${EWS_WEBSITE}" "Homepage for ${EWS_APP_NAME}") + #SET (CPACK_NSIS_INSTALLED_ICON_NAME bin\\\\${EXE_TARGET_NAME}.exe) + #SET (CPACK_NSIS_URL_INFO_ABOUT "${EWS_WEBSITE}") + #SET (CPACK_NSIS_HELP_LINK "${EWS_WEBSITE}") + SET (CPACK_PACKAGE_INSTALL_DIRECTORY "${CMAKE_PROJECT_NAME}-${MAJOR}") + SET (CPACK_UNINSTALL_NAME "LVLatStr-${MAJOR}") # <=10 symbols: https://redmine.backbone.ws/issues/83 +ENDIF () + +INCLUDE (CPack) + +INCLUDE (CTest) diff --git a/README b/README index 186e653..7db41d9 100644 --- a/README +++ b/README @@ -1,4 +1,4 @@ LaTeX representation in the memory + Parser (GScanner) + Generator. Git repo: https://git.backbone.ws/laview/latex-struct -Issue tracker: https://chili.backbone.ws/projects/latex-struct +Issue tracker: https://chili.backbone.ws/projects/latex-struct/issues diff --git a/cmake/CPackDetectArch.cmake b/cmake/CPackDetectArch.cmake new file mode 100644 index 0000000..e878179 --- /dev/null +++ b/cmake/CPackDetectArch.cmake @@ -0,0 +1,20 @@ +# Kernel of Operation System +EXECUTE_PROCESS (COMMAND uname -s COMMAND tr -d '\n' OUTPUT_VARIABLE OSKERNEL) +MESSAGE ("OSKERNEL = ${OSKERNEL}") +STRING (TOLOWER "${OSKERNEL}" OSKERNEL) + +# CPU Architecture +SET (CUSTOM_ARCHITECTURE "" CACHE STRING "Specify custom target architecutre") +SET (ARCHITECTURE "${CUSTOM_ARCHITECTURE}") +IF (ARCHITECTURE STREQUAL "") + # SET (ARCHITECTURE "${CMAKE_SYSTEM_PROCESSOR}") + # SET (ARCHITECTURE "${CMAKE_HOST_SYSTEM_PROCESSOR}") + EXECUTE_PROCESS(COMMAND uname -m COMMAND tr -d '\n' OUTPUT_VARIABLE ARCHITECTURE) + + # Replacements + STRING (REGEX REPLACE "^x86_64$" "amd64" ARCHITECTURE "${ARCHITECTURE}") + STRING (REGEX REPLACE "^i.86$" "i386" ARCHITECTURE "${ARCHITECTURE}") + STRING (REGEX REPLACE "^armv7l$" "armel" ARCHITECTURE "${ARCHITECTURE}") + +ENDIF () +MESSAGE ("ARCHITECTURE = ${ARCHITECTURE}") diff --git a/cmake/MacroOptionalAddSubdirectory.cmake b/cmake/MacroOptionalAddSubdirectory.cmake new file mode 100644 index 0000000..545048b --- /dev/null +++ b/cmake/MacroOptionalAddSubdirectory.cmake @@ -0,0 +1,31 @@ +# - MACRO_OPTIONAL_ADD_SUBDIRECTORY() combines ADD_SUBDIRECTORY() with an OPTION() +# MACRO_OPTIONAL_ADD_SUBDIRECTORY( ) +# If you use MACRO_OPTIONAL_ADD_SUBDIRECTORY() instead of ADD_SUBDIRECTORY(), +# this will have two effects +# 1 - CMake will not complain if the directory doesn't exist +# This makes sense if you want to distribute just one of the subdirs +# in a source package, e.g. just one of the subdirs in kdeextragear. +# 2 - If the directory exists, it will offer an option to skip the +# subdirectory. +# This is useful if you want to compile only a subset of all +# directories. + +# Copyright (c) 2007, Alexander Neundorf, +# +# Redistribution and use is allowed according to the terms of the BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. + + +MACRO (MACRO_OPTIONAL_ADD_SUBDIRECTORY _dir ) + GET_FILENAME_COMPONENT(_fullPath ${_dir} ABSOLUTE) + IF(EXISTS ${_fullPath}) + IF(${ARGC} EQUAL 2) + OPTION(BUILD_${_dir} "Build directory ${_dir}" ${ARGV1}) + ELSE(${ARGC} EQUAL 2) + OPTION(BUILD_${_dir} "Build directory ${_dir}" TRUE) + ENDIF(${ARGC} EQUAL 2) + IF(BUILD_${_dir}) + ADD_SUBDIRECTORY(${_dir}) + ENDIF(BUILD_${_dir}) + ENDIF(EXISTS ${_fullPath}) +ENDMACRO (MACRO_OPTIONAL_ADD_SUBDIRECTORY) diff --git a/laview-latex-struct.pc.in b/laview-latex-struct.pc.in new file mode 100644 index 0000000..40fa22e --- /dev/null +++ b/laview-latex-struct.pc.in @@ -0,0 +1,11 @@ +prefix=@prefix@ +exec_prefix=@exec_prefix@ +libdir=@libdir@ +includedir=@prefincludedir@ + +Name: LaTeX-Struct +Description: LaTeX representation in the memory + Scanner + Generator + Operations on document objects. +Version: @VERSION@ +Libs: -L@link_lib1@ -l@link_lib2@ +Libs.private: +Cflags: diff --git a/po/CMakeLists.txt b/po/CMakeLists.txt new file mode 100644 index 0000000..a588e22 --- /dev/null +++ b/po/CMakeLists.txt @@ -0,0 +1,9 @@ +find_package(Gettext REQUIRED) +if (NOT GETTEXT_MSGMERGE_EXECUTABLE) +MESSAGE(FATAL_ERROR "Please install msgmerge binary") +endif (NOT GETTEXT_MSGMERGE_EXECUTABLE) +if (NOT GETTEXT_MSGFMT_EXECUTABLE) +MESSAGE(FATAL_ERROR "Please install msgmerge binary") +endif (NOT GETTEXT_MSGFMT_EXECUTABLE) +add_subdirectory(ru) +#add_subdirectory(de) diff --git a/po/laview-latex-struct-0.pot b/po/laview-latex-struct-0.pot new file mode 100644 index 0000000..6504219 --- /dev/null +++ b/po/laview-latex-struct-0.pot @@ -0,0 +1,61 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: laview-latex-struct-0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-07-18 18:10+0400\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: /home/kolan/projects/LAview/LaTeX-Struct/src/GlobParser.vala:58 +#, c-format +msgid "Begin tag sequence '%s' without end tag pair." +msgstr "" + +#: /home/kolan/projects/LAview/LaTeX-Struct/src/GlobParser.vala:127 +#: /home/kolan/projects/LAview/LaTeX-Struct/src/TableParser.vala:582 +#, c-format +msgid ": Unexpected end tag sequence '%s' without begin tag pair." +msgstr "" + +#: /home/kolan/projects/LAview/LaTeX-Struct/src/GlobParser.vala:148 +#: /home/kolan/projects/LAview/LaTeX-Struct/src/TableParser.vala:148 +#: /home/kolan/projects/LAview/LaTeX-Struct/src/TableParser.vala:179 +#: /home/kolan/projects/LAview/LaTeX-Struct/src/TableParser.vala:188 +#: /home/kolan/projects/LAview/LaTeX-Struct/src/TableParser.vala:205 +msgid "Error parsing subdoc." +msgstr "" + +#: /home/kolan/projects/LAview/LaTeX-Struct/src/LongtableParser.vala:44 +#, c-format +msgid "Incorrect longtable parameters doesn't match '%s' regexp." +msgstr "" + +#: /home/kolan/projects/LAview/LaTeX-Struct/src/TableParser.vala:413 +#, c-format +msgid "Unexpected end external tag sequence '%s' without begin tag pair." +msgstr "" + +#: /home/kolan/projects/LAview/LaTeX-Struct/src/TableParser.vala:449 +#, c-format +msgid "Begin tag sequence '%s':%d:%d without end tag pair." +msgstr "" + +#: /home/kolan/projects/LAview/LaTeX-Struct/src/TableParser.vala:612 +msgid "\\cline parameters doesn't match {number-number} regexp." +msgstr "" + +#: /home/kolan/projects/LAview/LaTeX-Struct/src/TabularParser.vala:43 +#, c-format +msgid "Incorrect tabular parameters doesn't match '%s' regexp." +msgstr "" diff --git a/po/ru/CMakeLists.txt b/po/ru/CMakeLists.txt new file mode 100644 index 0000000..5b39538 --- /dev/null +++ b/po/ru/CMakeLists.txt @@ -0,0 +1,2 @@ +file(GLOB _po_files *.po) +GETTEXT_PROCESS_PO_FILES(ru ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} PO_FILES ${_po_files} ) diff --git a/po/ru/laview-latex-struct-0.po b/po/ru/laview-latex-struct-0.po new file mode 100644 index 0000000..0b48ef4 --- /dev/null +++ b/po/ru/laview-latex-struct-0.po @@ -0,0 +1,67 @@ +# Russian translations for laview-latex-struct package. +# Copyright (C) 2014 THE laview-latex-struct'S COPYRIGHT HOLDER +# This file is distributed under the same license as the laview-latex-struct package. +# , 2014. +# +msgid "" +msgstr "" +"Project-Id-Version: laview-latex-struct-0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-07-18 18:10+0400\n" +"PO-Revision-Date: 2014-05-28 10:50+0400\n" +"Last-Translator: \n" +"Language-Team: Russian\n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: /home/kolan/projects/LAview/LaTeX-Struct/src/GlobParser.vala:58 +#, c-format +msgid "Begin tag sequence '%s' without end tag pair." +msgstr "Стартовая последовательность тегов '%s' без соответствующей стоп-пары." + +#: /home/kolan/projects/LAview/LaTeX-Struct/src/GlobParser.vala:127 +#: /home/kolan/projects/LAview/LaTeX-Struct/src/TableParser.vala:582 +#, c-format +msgid ": Unexpected end tag sequence '%s' without begin tag pair." +msgstr "" +": Неожиданная завершающая последовательность тегов '%s' без соответствующей " +"старт-пары." + +#: /home/kolan/projects/LAview/LaTeX-Struct/src/GlobParser.vala:148 +#: /home/kolan/projects/LAview/LaTeX-Struct/src/TableParser.vala:148 +#: /home/kolan/projects/LAview/LaTeX-Struct/src/TableParser.vala:179 +#: /home/kolan/projects/LAview/LaTeX-Struct/src/TableParser.vala:188 +#: /home/kolan/projects/LAview/LaTeX-Struct/src/TableParser.vala:205 +msgid "Error parsing subdoc." +msgstr "Ошибка разбора поддокумента." + +#: /home/kolan/projects/LAview/LaTeX-Struct/src/LongtableParser.vala:44 +#, c-format +msgid "Incorrect longtable parameters doesn't match '%s' regexp." +msgstr "Неверные параметры longtable не удовлетворяют рег. выражению '%s'." + +#: /home/kolan/projects/LAview/LaTeX-Struct/src/TableParser.vala:413 +#, c-format +msgid "Unexpected end external tag sequence '%s' without begin tag pair." +msgstr "" +": Неожиданная завершающая последовательность внешних тегов '%s' без " +"соответствующей старт-пары." + +#: /home/kolan/projects/LAview/LaTeX-Struct/src/TableParser.vala:449 +#, c-format +msgid "Begin tag sequence '%s':%d:%d without end tag pair." +msgstr "" +"Стартовая последовательность тегов '%s':%d:%d без соответствующей стоп-пары." + +#: /home/kolan/projects/LAview/LaTeX-Struct/src/TableParser.vala:612 +msgid "\\cline parameters doesn't match {number-number} regexp." +msgstr "Параметры \\cline не соответствует рег. выражению {число-число}." + +#: /home/kolan/projects/LAview/LaTeX-Struct/src/TabularParser.vala:43 +#, c-format +msgid "Incorrect tabular parameters doesn't match '%s' regexp." +msgstr "Неверные параметры tabular не удовлетворяют рег. выражению '%s'." diff --git a/src/AddSpace.vala b/src/AddSpace.vala index e69de29..2fd6523 100644 --- a/src/AddSpace.vala +++ b/src/AddSpace.vala @@ -0,0 +1,45 @@ +namespace LAview { + + namespace Table { + + /** + * Vertical Space in any {@link ATable} + */ + public class AddSpace : ADoc { + + /** + * Value of the vertical space. + * + * Possible values: [0-9]+{bp,cc,cm,dd,em,ex,in,mm,pc,pt,sp} <
> + * or [0-9]+.[0-9][0-9]{\textwidth,columnwidth,paperwidth,linewidth,textheight,paperheight} + */ + public string height = ""; + + /** + * Constructs a new //AddSpace// based on value. + * + * @param height [0-9]+{bp,cc,cm,dd,em,ex,in,mm,pc,pt,sp} <
> + * or [0-9]+.[0-9][0-9]{\textwidth,columnwidth,paperwidth,linewidth,textheight,paperheight} + */ + public AddSpace.with_params (string height) { + this.height = height; + } + + private AddSpace () {} + + /** + * Gets a copy of the //AddSpace//. + */ + public override IDoc copy () { + return new AddSpace.with_params (height); + } + + /** + * Generates LaTeX string for the //AddSpace//. + */ + public override string generate () { + return height; + } + } + } +} diff --git a/src/AddSpaces.vala b/src/AddSpaces.vala index e69de29..a471dab 100644 --- a/src/AddSpaces.vala +++ b/src/AddSpaces.vala @@ -0,0 +1,61 @@ +namespace LAview { + + namespace Table { + + /** + * List of {@link AddSpace}-s. + */ + public class AddSpaces : ADocList { + + /** + * Style of the {@link AddSpace}/{@link Subtable}. + */ + public enum Style { + + /** + * Default style. + */ + DEFAULT = 0, + + /** + * Formal style. + */ + FORMAL + } + + /** + * Style of the {@link AddSpace}/{@link Subtable}. + */ + public Style style = Style.DEFAULT; + + /** + * Constructs a new empty //AddSpaces//. + */ + public AddSpaces () {} + + protected override ADocList create_default_instance () { return new AddSpaces (); } + + /** + * Gets a copy of the //AddSpaces//. + */ + public override IDoc copy () { + var clone = base.copy () as AddSpaces; + clone.style = style; + return clone; + } + + /** + * Generates LaTeX string for the //AddSpaces//. + */ + public override string generate () { + var result = new StringBuilder (); + + foreach (IDoc dociface in this) + result.append_printf (style == Style.FORMAL ? "\n\\addlinespace[%s]" + : "\n\\noalign{\\vskip%s}", dociface.generate ()); + + return result.str; + } + } + } +} diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 37e1e21..391ef48 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,18 +1,36 @@ +INCLUDE (FindVala) +INCLUDE (UseVala) + FIND_PACKAGE (PkgConfig REQUIRED) -PKG_CHECK_MODULES (GLIB REQUIRED glib-2.0) -INCLUDE_DIRECTORIES (${GLIB_INCLUDE_DIRS}) -LINK_DIRECTORIES (${GLIB_LIBRARY_DIRS}) +PKG_CHECK_MODULES (GEE REQUIRED gee-0.8) +INCLUDE_DIRECTORIES (${GEE_INCLUDE_DIRS}) FILE (GLOB_RECURSE LAviewSources RELATIVE ${CMAKE_SOURCE_DIR}/src *.vala) + VALA_PRECOMPILE (VALA_C ${LAviewSources} - PACKAGES - OPTIONS --thread + PACKAGES gee-0.8 posix + OPTIONS --thread ${VALA_DEBUG} CUSTOM_VAPIS - GENERATE_VAPI laview - GENERATE_HEADER laview + GENERATE_VAPI laview-latex-struct-${MAJOR} + GENERATE_HEADER laview-latex-struct-${MAJOR} ) -ADD_LIBRARY (laview SHARED ${VALA_C}) -TARGET_LINK_LIBRARIES (laview ${GLIB2_LIBRARIES}) -SET_TARGET_PROPERTIES (laview PROPERTIES VERSION ${LAVIEW_VERSION}) -SET_TARGET_PROPERTIES (laview PROPERTIES SOVERSION ${LAVIEW_VERSION_MAJOR}) +INCLUDE_DIRECTORIES ("${CMAKE_BINARY_DIR}") +ADD_LIBRARY (laview-latex-struct SHARED ${VALA_C} ${PROJECT_SOURCE_DIR}/src/vala_unsupported.c) +TARGET_LINK_LIBRARIES (laview-latex-struct ${GEE_LIBRARIES}) +SET_TARGET_PROPERTIES (laview-latex-struct PROPERTIES VERSION ${VERSION}) +SET_TARGET_PROPERTIES (laview-latex-struct PROPERTIES SOVERSION ${MAJOR}) +IF (WIN32) + SET_TARGET_PROPERTIES (laview-latex-struct PROPERTIES PREFIX "" IMPORT_PREFIX "" SUFFIX "-${MAJOR}.dll") +ENDIF (WIN32) + +IF (UNIX) + INSTALL (TARGETS laview-latex-struct DESTINATION lib) +ELSEIF (WIN32) + INSTALL (TARGETS laview-latex-struct + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib) +ENDIF (UNIX) + +INSTALL (FILES ${CMAKE_BINARY_DIR}/src/laview-latex-struct-${MAJOR}.h DESTINATION include) diff --git a/src/Cell.vala b/src/Cell.vala index e69de29..94ba9ad 100644 --- a/src/Cell.vala +++ b/src/Cell.vala @@ -0,0 +1,168 @@ +namespace LAview { + + namespace Table { + + /** + * Cell of any table. + */ + public class Cell : ADoc { + + /** + * Number of occupied cells. + */ + public uint ncells = 1; + + /** + * Cell's alignment. + * + * Possible values: "c", "r", "l", ">{\centering}p{0.07\paperwidth}", etc. + */ + public string align = ""; + + /** + * Number of left lines. + */ + public uint nllines; + + /** + * Number of right lines. + */ + public uint nrlines; + + /** + * Number of top lines. + */ + public uint noverlines; + + /** + * Number of bottom lines. + */ + public uint nunderlines; + + /** + * Contents of the cell. + */ + public Glob contents = new Glob (); + + /** + * Any text before the cell. + */ + public string before = ""; + + /** + * Any text after the cell. + */ + public string after = ""; + + /** + * Type of a cell indicates how much columns/rows does it occupy. + */ + public enum Multitype { + + /** + * Standard cell. + */ + SIMPLE = 0, + + /** + * Cell occupies several columns. + */ + MULTICOL, + + /** + * Cell occupies several rows. + */ + MULTIROW, + + /** + * Cell occupies several columns and rows. + */ + MULTICOLROW + } + + Multitype _multitype; + + /** + * Type of a cell indicates how much columns/rows does it occupy. + */ + public Multitype multitype { + set { + if (value != Multitype.MULTICOL && value != Multitype.MULTICOLROW) + nllines = nrlines = 0; + _multitype = value; + } + get { + return _multitype; + } + } + + /** + * Constructs a new //Cell// based on it's properties. + */ + public Cell.with_params (Multitype multitype, uint ncells, uint nllines, string align, + uint nrlines, uint noverlines, uint nunderlines, + Glob contents, string before, string after) { + this.ncells = ncells; + this.nllines = nllines; + this.align = align; + this.nrlines = nrlines; + this.noverlines = noverlines; + this.nunderlines = nunderlines; + this.contents = contents.copy () as Glob; + this.before = before; + this.after = after; + this.multitype = multitype; + } + + private Cell () {} + + /** + * Gets a copy of the //Cell//. + */ + public override IDoc copy () { + return new Cell.with_params (multitype, ncells, nllines, align, nrlines, + noverlines, nunderlines, contents, before, after); + } + + /** + * Generates LaTeX string for the //Cell//. + */ + public override string generate () { + var result = new StringBuilder (before), + params = new StringBuilder (), + contents = this.contents.generate (); + + if (align != "") { + for (uint i = 0; i < nllines; ++i) params.append_c ('|'); + params.append (align); + for (uint i = 0; i < nrlines; ++i) params.append_c ('|'); + } + + switch (multitype) { + case Multitype.SIMPLE: + result.append (contents); + break; + case Multitype.MULTICOL: + result.append_printf ("\\multicolumn{%u}{%s}{%s}", + ncells, params.str, contents); + break; + case Multitype.MULTIROW: + result.append_printf ("\\multirow{%u}{%s}{%s}", + ncells, params.str, contents); + break; + case Multitype.MULTICOLROW: + result.append_printf ("\\multicolumn{1}{%s}{\\multirow{%u}{*}{%s}}", + params.str, ncells, contents); + break; + default: + assert (multitype == Multitype.SIMPLE); + break; + } + + result.append (after); + + return result.str; + } + } + } +} diff --git a/src/ColParam.vala b/src/ColParam.vala index e69de29..9eae593 100644 --- a/src/ColParam.vala +++ b/src/ColParam.vala @@ -0,0 +1,65 @@ +namespace LAview { + + namespace Table { + + /** + * Parameter of the table's column. + */ + public class ColParam : ADoc { + + /** + * Column's alignment. + * + * Possible values: "c", "r", "l", ">{\centering}p{0.07\paperwidth}", etc. + */ + public string align = "c"; + + /** + * Number of left lines. + */ + public uint nllines = 1; + + /** + * Number of right lines. + */ + public uint nrlines; + + /** + * Constructs a new //ColParam// by it's properties. + */ + public ColParam.with_params (uint nllines = 1, + string align = "c", + uint nrlines = 0) { + this.nllines = nllines; + this.align = align; + this.nrlines = nrlines; + } + + private ColParam () {} + + /** + * Gets a copy of the //ColParam//. + */ + public override IDoc copy () { + return new ColParam.with_params (nllines, align, nrlines); + } + + /** + * Generates LaTeX string for the //ColParam//. + */ + public override string generate () { + var result = new StringBuilder (); + + for (uint i = 0; i < nllines; ++i) + result.append_c ('|'); + + result.append (align); + + for (uint i = 0; i < nrlines; ++i) + result.append_c ('|'); + + return result.str; + } + } + } +} diff --git a/src/ColParams.vala b/src/ColParams.vala index e69de29..453230b 100644 --- a/src/ColParams.vala +++ b/src/ColParams.vala @@ -0,0 +1,18 @@ +namespace LAview { + + namespace Table { + + /** + * List of Column Parameters. + */ + public class ColParams : ADocList { + + protected override ADocList create_default_instance () { return new ColParams (); } + + /** + * Constructs a new empty //ColParams//. + */ + public ColParams () {} + } + } +} diff --git a/src/Doc.vala b/src/Doc.vala deleted file mode 100644 index e69de29..0000000 diff --git a/src/DocIfaces.vala b/src/DocIfaces.vala new file mode 100644 index 0000000..cdb2b87 --- /dev/null +++ b/src/DocIfaces.vala @@ -0,0 +1,75 @@ +namespace LAview { + + /** + * Interface of any LaTeX Document. + */ + public interface IDoc : Object { + + /** + * Gets a copy of the //IDoc//. + */ + public abstract IDoc copy (); + + /** + * Generates LaTeX string for the //IDoc//. + */ + public abstract string generate (); + } + + /** + * Any non-iterable LaTeX Document. + */ + public abstract class ADoc : Object, IDoc { + + protected ADoc () {} + + /** + * Gets a copy of the //ADoc//. + */ + public virtual IDoc copy () { + return Object.new (this.get_type ()) as IDoc; + } + + /** + * Generates LaTeX string for the //ADoc//. + */ + public virtual string generate () { return ""; } + } + + /** + * Any iterable LaTeX Document. + */ + public abstract class ADocList : Gee.ArrayList, IDoc { + + protected ADocList () {} + + /** + * Object.new (this.get_type ()) doesn't work for me for ArrayList. + */ + protected abstract ADocList create_default_instance (); + + /** + * Gets a copy of the //ADocList//. + */ + public virtual IDoc copy () { + var clone = create_default_instance (); + + foreach (IDoc dociface in this) + clone.add (dociface.copy () as IDoc); + + return clone; + } + + /** + * Generates LaTeX string for the //ADocList//. + */ + public virtual string generate () { + var result = new StringBuilder (); + + foreach (IDoc dociface in this) + result.append (dociface.generate ()); + + return result.str; + } + } +} diff --git a/src/Glob.vala b/src/Glob.vala index e69de29..aa427b3 100644 --- a/src/Glob.vala +++ b/src/Glob.vala @@ -0,0 +1,15 @@ +namespace LAview { + + /** + * List of any LaTeX documents except Glob documents. + */ + public class Glob : ADocList { + + protected override ADocList create_default_instance () { return new Glob (); } + + /** + * Constructs a new empty //Glob//. + */ + public Glob () {} + } +} diff --git a/src/GlobParser.vala b/src/GlobParser.vala new file mode 100644 index 0000000..00ecf88 --- /dev/null +++ b/src/GlobParser.vala @@ -0,0 +1,191 @@ +namespace LAview { + + namespace Parsers { + + class GlobParser : Parser { + + public GlobParser (Array links) { + base (links); + } + + enum TagKind { + NONE = 0, + START, + STOP + } + + TokenType scan_tex_symbol (Glob document) throws ParseError { + + uint tag; + var matched_tag_length = fifo_is_tag (tokens, out tag); + TagKind tag_kind = TagKind.NONE; + + if (matched_tag_length != 0) { + tag_kind = TagKind.START; + } else { + matched_tag_length = fifo_is_tag (stop_tokens, out tag); + + if (matched_tag_length != 0) { + tag_kind = TagKind.STOP; + } else if (in_child_params) { + count_branches (); + + if (!in_child_params) { + tag_kind = TagKind.STOP; + tag = child_tag; + matched_tag_length = 1; + } + } + } + + var token = TokenType.NONE; + + uint matched_tag_abspos_left; + uint matched_tag_abspos_right; + uint matched_tag_line; + long matched_tag_pos; + + switch (tag_kind) { + case TagKind.NONE: + fifo_pop (); + + if (fifo_peek_head().token == TokenType.EOF) { + /* without end pair */ + if (child_tag != 0 || child_level != 0) { + assert (child_tag != 0 && child_level != 0); + string message = string.joinv (null, links.index (child_tag).begin); + /// Translators: please leave the '%s' construction without any changes. + prefix_error (subdoc_start, _("Begin tag sequence '%s' without end tag pair."), message); + token = TokenType.ERROR; + throw new ParseError.ORPHAN_BEGIN (err_str); + + } else { + var subcontents = contents.offset (subdoc_start.abspos); + var subparser = links.index (0).create (links); + var subdoc = subparser.parse (subcontents, subdoc_start.line, subdoc_start.pos); + document.add (subdoc); + token = TokenType.EOF; + } + } + break; + + case TagKind.START: + matched_tag_abspos_left = fifo_peek_head ().abspos; + matched_tag_abspos_right = fifo_peek_nth (matched_tag_length - 1).abspos + + fifo_peek_nth (matched_tag_length - 1).length; + matched_tag_line = fifo_peek_head ().line; + matched_tag_pos = fifo_peek_head ().pos; + + for (var i = 0; i < matched_tag_length; ++i) + fifo_pop (); + + if (child_tag != 0 || child_level != 0) { + assert (child_tag != 0 && child_level != 0); + if (links.index (tag).end.length != 0) + ++child_level; + } else { + assert (child_tag == 0 && child_level == 0); + var subcontents = contents[subdoc_start.abspos:matched_tag_abspos_left]; + var subparser = links.index (0).create (links); + var subdoc = subparser.parse (subcontents, subdoc_start.line, subdoc_start.pos); + document.add (subdoc); + + if (links.index (tag).end.length != 0) { + child_tag = tag; + child_level = 1; + } else if (fifo_peek_head ().token == TokenType.LEFT_CURLY + || fifo_peek_head ().token == TokenType.LEFT_BRACE) { + in_child_params = true; + child_tag = tag; + child_level = 1; + } + subdoc_start.abspos = matched_tag_abspos_right; + subdoc_start.line = matched_tag_line; + subdoc_start.pos = matched_tag_pos; + } + break; + + case TagKind.STOP: + matched_tag_abspos_left = fifo_peek_head ().abspos; + matched_tag_abspos_right = fifo_peek_nth (matched_tag_length - 1).abspos + + fifo_peek_nth (matched_tag_length - 1).length; + matched_tag_line = fifo_peek_head ().line; + matched_tag_pos = fifo_peek_head ().pos; + + if (links.index (tag).end.length == 0) + ++matched_tag_abspos_left; + + for (var i = 0; i < matched_tag_length; ++i) + fifo_pop (); + + /* without begin pair */ + if (child_tag == 0 || child_level == 0) { + assert (child_tag == 0 && child_level == 0); + var message = string.joinv (null, links.index (tag).end); + /// Translators: please leave the '%s' construction without any changes. + prefix_error (last_symb_pos, + _(": Unexpected end tag sequence '%s' without begin tag pair."), + message); + token = TokenType.ERROR; + throw new ParseError.ORPHAN_END (err_str); + } else { + assert (child_level != 0); + --child_level; + + if (tag == child_tag) { + if (child_level == 0) { + child_tag = 0; + var subcontents = contents[subdoc_start.abspos:matched_tag_abspos_left]; + var subparser = links.index (tag).create (links); + /* parse subdoc */ + var subdoc = subparser.parse (subcontents, subdoc_start.line, + subdoc_start.pos); + + if (subdoc != null) { + document.add (subdoc); + } else { + prefix_error (subdoc_start, + _("Error parsing subdoc.")); + token = TokenType.ERROR; + } + + subdoc_start.abspos = matched_tag_abspos_right; + subdoc_start.line = matched_tag_line; + subdoc_start.pos = matched_tag_pos; + } + } + } + break; + } + + return token; + } + + + public override IDoc parse (string contents, size_t line, long position) throws ParseError { + + this.contents = contents; + this.line = line; + this.position = position; + + scanner.input_text (contents, contents.length); + + TokenType expected_token = 0; + var doc = new Glob (); + + do { + expected_token = scan_tex_symbol (doc); + + } while (expected_token == TokenType.NONE + && fifo_peek_head().token != TokenType.EOF + && fifo_peek_head().token != TokenType.ERROR); + + if (expected_token == TokenType.ERROR) + scanner.unexp_token (expected_token, null, "symbol", null, null, true); + + return doc; + } + } + } +} + diff --git a/src/GlobScanner.vala b/src/GlobScanner.vala deleted file mode 100644 index e69de29..0000000 diff --git a/src/Graphics.vala b/src/Graphics.vala index e69de29..76c2a69 100644 --- a/src/Graphics.vala +++ b/src/Graphics.vala @@ -0,0 +1,93 @@ +namespace LAview { + + /** + * Graphics in the LaTeX document. + * + * Specified by '\includegraphics' tag in the LaTeX code. + */ + public class Graphics : ADoc { + + /** + * All unknown parameters. + */ + public string rest_params = ""; + + /** + * Path to the image on the disk. + */ + public string path = ""; + + /** + * Width of the image. + * + * For ex: 3.22, 128 + */ + public double width; + + /** + * Width units of the image. + * + * For ex: bp, cc, cm, dd, em, ex, in, mm, pc, pt, sp <
> + * or \textwidth, \columnwidth, \pagewidth, + * \linewidth, \textwidth, \paperwidth + */ + public string width_unit = ""; + + /** + * Height of the image. + * + * For ex: 3.22, 128 + */ + public double height; + + /** + * Height units of the image. + * + * For ex: bp, cc, cm, dd, em, ex, in, mm, pc, pt, sp <
> + * or \textwidth, \columnwidth, \pagewidth, + * \linewidth, \textwidth, \paperwidth + */ + public string height_unit = ""; + + /** + * Constructs a new //Graphics// by it's properties. + * + * @param path path to the image on the disk. + */ + public Graphics.with_params (string path = "") { + this.path = path; + } + + private Graphics () {} + + /** + * Gets a copy of the //Graphics//. + */ + public override IDoc copy () { + var clone = new Graphics.with_params (path); + clone.width = width; + clone.height = height; + clone.width_unit = width_unit; + clone.height_unit = height_unit; + clone.rest_params = rest_params; + return clone; + } + + /** + * Generates LaTeX string for the //Graphics//. + */ + public override string generate () { + var str = new StringBuilder ("\\includegraphics["); + if (width != 0) + str.append_printf ("width=%f%s,", width, width_unit); + if (height != 0) + str.append_printf ("height=%f%s,", height, height_unit); + if (rest_params != "") + str.append_printf ("%s,", rest_params); + if (str.str[str.len - 1] == ',') + str.len -= 1; + str.append_printf ("]{%s}", path); + return str.str; + } + } +} diff --git a/src/GraphicsParser.vala b/src/GraphicsParser.vala new file mode 100644 index 0000000..ed9b994 --- /dev/null +++ b/src/GraphicsParser.vala @@ -0,0 +1,153 @@ +namespace LAview { + + namespace Parsers { + + class GraphicsParser : Parser { + + public GraphicsParser (Array links) { + base (links); + } + + void remove_duplicate_params (List parlist) { + for (unowned List elem1 = parlist.first (); elem1 != null; elem1 = elem1.next) + for (unowned List elem2 = elem1.next; elem2 != null; elem2 = elem2.next) { + var eq_pos1 = elem1.data.index_of_char ('='), + eq_pos2 = elem2.data.index_of_char ('='); + size_t min_len = 0; + + if (-1 != eq_pos1) + min_len = eq_pos1; + + if (-1 != eq_pos2) + min_len = size_t.min (min_len, eq_pos2); + + if (0 != min_len && 0 == Posix.strncmp (elem1.data, elem2.data, min_len)) { + elem2.delete_link (elem2); + if (elem2 == null) break; + } + } + } + + string param_get_nvalue (string param) { + int i; + for (i = 0; param[i] != '\0' && param[i] != '='; ++i); + if (param[i] == '\0') return ""; + while (param[++i].isspace ()); + if (!param[i].isdigit ()) return ""; + return param.offset (i); + } + + string param_get_units (string param) { + int i; + for (i = 0; param[i] != '\0' && param[i] != '='; ++i); + if (param[i] == '\0') return ""; + while (param[++i].isspace ()); + if (!param[i].isdigit ()) return ""; + while (param[++i].isdigit ()); + if (param[i] == '.') + while (param[++i].isdigit ()); + while (param[i].isspace ()) ++i; + if (param[i] == '\0') return ""; + return param.offset (i); + } + + List split_params (string param_str) { + var parlist = new List (); + var vstr = param_str.split (","); + foreach (var str in vstr) { + str = str.strip (); + + if (str != "") + parlist.prepend (str); + } + + parlist.reverse (); + + remove_duplicate_params (parlist); + + return parlist; + } + + string concat_rest_params (List parlist) { + var str = new StringBuilder (); + + for (unowned List elem = parlist.first (); elem != null; elem = elem.next) { + str.append (elem.data); + if (elem.next != null) + str.append_c (','); + } + + return str.str; + } + + static int find_param_delegate (string a, string b) { + return Posix.strncmp (a, b, int.min (a.length, b.length)); + } + + void fill_known_params (Graphics graphics, string param_str) { + var parlist = split_params (param_str); + + unowned List elem; + + if (null != (elem = parlist.find_custom ("width", find_param_delegate))) { + string tmps1 = param_get_nvalue (elem.data); + string tmps2 = param_get_units (elem.data); + + if (tmps1 != "" && tmps2 != "") { + graphics.width = double.parse (tmps1); + graphics.width_unit = tmps2; + } + + parlist.delete_link (elem); + } + + if (null != (elem = parlist.find_custom ("height", find_param_delegate))) { + string tmps1 = param_get_nvalue (elem.data); + string tmps2 = param_get_units (elem.data); + + if (tmps1 != "" && tmps2 != "") { + graphics.height = double.parse (tmps1); + graphics.height_unit = tmps2; + } + + parlist.delete_link (elem); + } + + graphics.rest_params = concat_rest_params (parlist); + } + + public override IDoc parse (string contents, size_t line, long position) throws ParseError { + /* set TeX graphics contents */ + this.contents = contents; + this.line = line; + this.position = position; + + var graphics = new Graphics.with_params (); + + try { + var regex = new Regex ("\\[[^[\\]{}]+\\]"); + MatchInfo match_info; + regex.match (contents, 0, out match_info); + + if (match_info.matches ()) { + var word = match_info.fetch (0); + fill_known_params (graphics, word[1:word.length - 1]); + } + } catch (RegexError e) {} + + try { + var regex = new Regex ("\\{[^[\\]{}]+\\}"); + MatchInfo match_info; + regex.match (contents, 0, out match_info); + + if (match_info.matches ()) { + var word = match_info.fetch (0); + graphics.path = word[1:word.length - 1].compress (); + } + } catch (RegexError e) {} + + return graphics; + } + } + } +} diff --git a/src/GraphicsScanner.vala b/src/GraphicsScanner.vala deleted file mode 100644 index e69de29..0000000 diff --git a/src/Longtable.vala b/src/Longtable.vala index e69de29..ea89314 100644 --- a/src/Longtable.vala +++ b/src/Longtable.vala @@ -0,0 +1,64 @@ +namespace LAview { + + namespace Table { + + /** + * Longtable in the LaTeX document. + * + * Specified by '\begin{longtable}' tag in the LaTeX code. + */ + public class Longtable : ATable { + + /** + * Constructs a new //Longtable// with default parameters. + */ + public Longtable () {} + + /** + * Gets a copy of the //Longtable//. + */ + public override IDoc copy () { + return base.copy (); + } + + /** + * Generates LaTeX string for the //Longtable//. + */ + public override string generate () { + var s = new StringBuilder (); + + if (params.size == 0) return ""; + + s.append ("\\begin{longtable}"); + + if (align != '\0') + s.append_printf ("[%c]", align); + + s.append_c ('{'); + s.append (params.generate ()); + s.append_c ('}'); + + first_header.style = style; + header.style = style; + footer.style = style; + last_footer.style = style; + table.style = style; + + string tmps; + tmps = first_header.generate (); + if (tmps != "") s.append (tmps + "\\endfirsthead"); + tmps = header.generate (); + if (tmps != "") s.append (tmps + "\\endhead"); + tmps = footer.generate (); + if (tmps != "") s.append (tmps + "\\endfoot"); + tmps = last_footer.generate (); + if (tmps != "") s.append (tmps + "\\endlastfoot"); + s.append (table.generate ()); + + s.append ("\\end{longtable}"); + + return s.str; + } + } + } +} diff --git a/src/LongtableParser.vala b/src/LongtableParser.vala new file mode 100644 index 0000000..63880ad --- /dev/null +++ b/src/LongtableParser.vala @@ -0,0 +1,119 @@ +namespace LAview { + + namespace Parsers { + + using Table; + + class LongtableParser : TableParser { + + public LongtableParser (Array links) { + base (links); + } + + public override IDoc parse (string contents, size_t line, long position) throws ParseError { + + /* create empty longtable */ + var longtable = new Longtable (); + + /* set TeX longtable contents */ + this.contents = contents; + this.line = line; + this.position = position; + + /* get parameters string */ + var param_regex = "^(\\[(c|l|r)])?\\{[^{}]*([^{}]*\\{[^{}]*\\}[^{}]*)*\\}"; + + string params = ""; + + try { + var regex = new Regex (param_regex); + + MatchInfo match_info; + regex.match (contents, 0, out match_info); + + uint start_pos = 0, stop_pos = 0; + + if (match_info.matches ()) { + match_info.fetch_pos (0, out start_pos, out stop_pos); + /* set TeX document contents */ + this.contents = contents.offset (stop_pos); + params = match_info.fetch (0); + } else { + /// Translators: please leave the '%s' construction without any changes. + prefix_error (subdoc_start, + _("Incorrect longtable parameters doesn't match '%s' regexp."), + param_regex); + throw new ParseError.SUBDOC (err_str); + } + } catch (RegexError e) {} + + /* longtable align: [c], [l], [r] */ + if (params[0] == '[') { + longtable.align = params[1]; + params = params.offset (3); + } + + /* remove bound '{' '}' from params */ + params = params.substring (1, params.length - 2).reverse (); + var col_params = new ColParams (); + + /* match reversed params so '|' will be snapped to the right column */ + try { + var regex = new Regex ("(" + + "\\|*}[^{}]+{(p\\|*|m\\|*|b\\|*)(}[^{}]+{>(\\|+$|\\||)|\\|)?" + + "|" + + "\\|*(r|c|l)(}[^{}]+{@(p\\|*|m\\|*|b\\|*) (r|c|l))?(\\|+$|\\||)" + + ")"); + MatchInfo match_info; + regex.match_full (params, -1, 0, 0, out match_info); + while (match_info.matches ()) { + var col_param = new ColParam.with_params (0, "", 0); + var word = match_info.fetch (0).reverse ().compress (); + int nllines, nrlines; + for (nllines = 0; '|' == word[nllines]; ++nllines); + for (nrlines = word.length - 1; nrlines != 0 && '|' == word[nrlines]; --nrlines); + var wlen = word.length; + word = word[0:nrlines + 1]; + col_param.align = word.offset (nllines); + col_param.nllines = nllines; + col_param.nrlines = wlen - 1 - nrlines; + col_params.insert (0, col_param); + match_info.next (); + } + } catch (RegexError e) {} + + longtable.params = col_params; + + /* === Parsing subtables === */ + + /* feed in the text */ + scanner.input_text (this.contents, this.contents.length); + + row_abs_pos = 0; + row = new Row (); + subtable = new Subtable (); + in_caption = false; + cell_abs_pos = 0; + + TokenType expected_token = TokenType.NONE; + + /* scanning loop, we scan the input until it's end is reached, + * the self encountered a lexing err, or our sub routine came + * across invalid syntax + */ + do { + expected_token = scan_tex_symbol (longtable); + + } while (expected_token == TokenType.NONE + && fifo_peek_head ().token != TokenType.EOF + && fifo_peek_head ().token != TokenType.ERROR); + + /* give an err message upon syntax errors */ + if (expected_token == TokenType.ERROR) + scanner.unexp_token (expected_token, null, "symbol", null, null, true); + + return longtable; + } + } + } +} diff --git a/src/LongtableScanner.vala b/src/LongtableScanner.vala deleted file mode 100644 index e69de29..0000000 diff --git a/src/Object.vala b/src/Object.vala deleted file mode 100644 index e69de29..0000000 diff --git a/src/ObjectList.vala b/src/ObjectList.vala deleted file mode 100644 index e69de29..0000000 diff --git a/src/Parser.vala b/src/Parser.vala new file mode 100644 index 0000000..bd797e2 --- /dev/null +++ b/src/Parser.vala @@ -0,0 +1,358 @@ +namespace LAview { + + /** + * LaTeX Parsers. + */ + namespace Parsers { + + /** + * LaTeX Parser Error Type. + */ + public errordomain ParseError { + + /** + * Undefined Error. + */ + UNDEFINED, + + /** + * Cann't find end of subdoc. + */ + ORPHAN_BEGIN, + + /** + * End tag without begin tag. + */ + ORPHAN_END, + + /** + * Error in subdoc parsing. + */ + SUBDOC, + } + + abstract class Parser : Object { + + protected string err_str = ""; + + /* links to group of scanners */ + protected unowned Array links = null; + + /* escaped TeX document */ + protected unowned string contents = null; + + /* standard GLib Scanner */ + protected Scanner scanner = new Scanner (null); + + /* tokens_sequence->class table */ + protected Node tokens = new Node (); + protected Node stop_tokens = new Node (); + + /* local tokens_sequence->class table */ + protected Node local_tokens_to_class_start = new Node (); + protected Node local_tokens_to_class_stop = new Node (); + + /* contents location in global document */ + protected size_t line = 0; + protected long position = 0; + + /* fifo-queue of tokens */ + protected Queue symb_fifo = new Queue (); + + protected struct SymbPos { + public TokenType token; + public uint line; + public long pos; + public uint abspos; + public uint length; + } + + /* Last symbol position pushed to fifo */ + protected SymbPos last_symb_pos; + + /* Last symbol position pushed to fifo */ + protected SymbPos subdoc_start; + + /* child class and level */ + protected uint child_tag = 0; + protected uint child_level = 0; + protected bool in_child_params = false; + protected uint child_param_branch_level = 0; + + /* back-slash counter for one-line comments */ + protected uint back_slash_counter = 0; + + public Parser (Array links) { + + /* initializing scanner links */ + this.links = links; + + /* adjust lexing behaviour to suit our needs */ + scanner.config.cset_skip_characters = ""; + scanner.config.cset_identifier_first = CharacterSet.a_2_z + CharacterSet.DIGITS + "\\"; + scanner.config.cset_identifier_nth = CharacterSet.a_2_z + CharacterSet.A_2_Z + CharacterSet.DIGITS; + scanner.config.cpair_comment_single = "%\n"; + scanner.config.scan_float = false; + scanner.config.symbol_2_token = true; + scanner.config.scan_string_sq = false; // See bug #448 + scanner.config.scan_string_dq = false; // See bug #448 + + /* set custom error message handler */ + scanner.msg_handler = null; + + /* load symbols into the self using GLib Quarks */ + load_symbols (links); + + /* generate tokens table (tree) */ + build_tree (ref tokens, links, false); + + /* generate stop_tokens table (tree) */ + build_tree (ref stop_tokens, links, true); + + /* give the error handler an idea on how the input is named */ + scanner.input_name = "TeX text"; + } + + public abstract IDoc parse (string contents, size_t line, long position) throws ParseError; + + void vprefix_error (SymbPos symb_pos, string format, va_list args) { + err_str = "\n" + err_str; + + var line = symb_pos.line; + long position = symb_pos.pos; + + + if (line == 0) + position += this.position; + + size_t nlines; long i; + for (i = 0, nlines = 0; contents[i] != '\0' && nlines < line; ++i) + if ('\n' == contents[i] || '\r' == contents[i]) + ++nlines; + + var unparsed_str = contents[i:contents.length].split ("\n"); // FIXME: MacOS newline '\r' characters... + var str = unparsed_str[0][0:position]; + var compressed = str.compress (); + position = compressed.length + 1; + var arrow_str = string.nfill (position - 1, ' ') + "^"; + compressed = unparsed_str[0].compress (); + + str = format.vprintf (args); + err_str = "%s:%lu:%lu: %s\n%s\n%s\n%s".printf (get_type().name(), + this.line + line + 1, + position, + str, + compressed, + arrow_str, + err_str); + } + + protected void prefix_error (SymbPos symb_pos, string format, ...) { + var list = va_list (); + vprefix_error (symb_pos, format, list); + } + + protected void load_symbols (Array links) { + for (var i = 1; i < links.length; ++i) { + for (var j = 0; j < links.index (i).begin.length; ++j) + if (links.index (i).begin[j].length > 1) + scanner.scope_add_symbol (0, links.index (i).begin[j], (void*)(Quark.from_string (links.index (i).begin[j]) + TokenType.LAST)); + + for (var j = 0; j < links.index (i).end.length; ++j) + if (links.index (i).end[j].length > 1) + scanner.scope_add_symbol (0, links.index (i).end[j], (void*)(Quark.from_string (links.index (i).end[j]) + TokenType.LAST)); + } + } + + protected void build_tree (ref Node tokens, Array links, bool stop_tree) { + + /* generate tokens table (tree) */ + tokens = new Node (); + + for (var i = 1; i < links.length; ++i) { + + /* if current class has no begin tags */ + if (!stop_tree && links.index (i).begin.length == 0 + || stop_tree && links.index (i).end.length == 0) + continue; + + unowned Node parent_node = tokens; + + unowned string[] symb_seq = stop_tree ? links.index (i).end: links.index (i).begin; + + Quark symb_quark; + unowned Node child_node; + + /* insert begin tags of all links into tree */ + for (var j = 0; j < symb_seq.length; ++j) { + assert (symb_seq[j] != null && symb_seq.length != 0); + + if (symb_seq[j].length > 1) + symb_quark = Quark.from_string(symb_seq[j]) + TokenType.LAST; + else + symb_quark = symb_seq[j][0]; + + child_node = parent_node.find_child (TraverseFlags.NON_LEAVES, symb_quark); + + /* append node with symb_quark token */ + if (child_node == null) + child_node = parent_node.append_data (symb_quark); + + parent_node = child_node; + } + + /* check for identical tokens lists and be shure that we create leaf for class id */ + assert (parent_node.first_child () == null); + + /* append leaf with class id */ + parent_node.append_data (i); + } + } + + protected void count_branches () { + if (in_child_params) { + switch (fifo_peek_head ().token) { + case TokenType.LEFT_CURLY: + case TokenType.LEFT_BRACE: + ++child_param_branch_level; + break; + + case TokenType.RIGHT_CURLY: + case TokenType.RIGHT_BRACE: + --child_param_branch_level; + break; + + default: + break; + } + + if (child_param_branch_level == 0 + && TokenType.LEFT_CURLY != fifo_peek_nth(1).token + && TokenType.LEFT_BRACE != fifo_peek_nth(1).token) + in_child_params = false; + } + } + + protected uint fifo_is_tag (Node tokens, out uint tag) { + uint match_length; + + tag = 0; + + /* search for tokens subsequence in tokens tree */ + for (match_length = 0; ; ++match_length) { + if (tokens == null + || TokenType.ERROR == fifo_peek_nth (match_length).token + || TokenType.EOF == fifo_peek_nth (match_length).token) { + match_length = 0; + break; + } + + tokens = tokens.find_child (TraverseFlags.NON_LEAVES, + fifo_peek_nth (match_length).token); + + if (tokens != null && tokens.first_child().is_leaf()) { + tag = tokens.first_child().data; + ++match_length; + break; + } + } + + return match_length; + } + + protected void fifo_pop () { + var ret = fifo_peek_head (); + + if (ret.token != TokenType.ERROR && ret.token != TokenType.EOF) + symb_fifo.pop_head (); + } + + protected SymbPos fifo_peek_head () { + if (symb_fifo.length == 0) + fifo_push (); + return symb_fifo.peek_head(); + } + + protected SymbPos fifo_peek_nth (uint n) { + unowned SymbPos ret; + + while (n >= symb_fifo.length && fifo_push ()); + + if (n < symb_fifo.length) + ret = symb_fifo.peek_nth (n); + else + ret = symb_fifo.peek_tail (); + + return ret; + } + + bool fifo_push () { + var p = contents.offset (last_symb_pos.abspos); + + scanner.get_next_token (); + + if ('\\' == scanner.token) { + ++back_slash_counter; + + if (back_slash_counter % 4 == 0) + scanner.config.cpair_comment_single = "%\n"; + else if (back_slash_counter % 2 == 0) + scanner.config.cpair_comment_single = null; + + } else { + back_slash_counter = 0; + } + + scanner.peek_next_token (); + + if (scanner.token == TokenType.ERROR + || scanner.token == TokenType.EOF) { + if (symb_fifo.length == 0) { + var sp = SymbPos (); + sp.token = scanner.token; + symb_fifo.push_tail (sp); + } + + return false; + } + + var sp = SymbPos (); + + sp.token = scanner.token; + last_symb_pos.token = scanner.token; + sp.line = scanner.cur_line () - 1; + sp.pos = scanner.cur_position (); + sp.length = 1; + + if (scanner.token > 255 && ((Quark)(scanner.token - TokenType.LAST)).to_string() != null) { + sp.length = ((Quark)(scanner.token - TokenType.LAST)).to_string().length; + sp.pos -= sp.length; + } else if (sp.pos != 0) { + --sp.pos; + } + + last_symb_pos.length = sp.length; + + /* current scanner's abspos evaluation */ + while (last_symb_pos.line < sp.line + || last_symb_pos.line == sp.line && last_symb_pos.pos < sp.pos) { + if ('\n' == p[0] || '\r' == p[0]) { + ++last_symb_pos.line; + last_symb_pos.pos = 0; + } else { + ++last_symb_pos.pos; + } + + ++last_symb_pos.abspos; + p = p.offset (1); + } + + sp.abspos = last_symb_pos.abspos; + + symb_fifo.push_tail (sp); + + return true; + } + } + } +} diff --git a/src/ParserFactory.vala b/src/ParserFactory.vala new file mode 100644 index 0000000..5e1d333 --- /dev/null +++ b/src/ParserFactory.vala @@ -0,0 +1,55 @@ +namespace LAview { + + namespace Parsers { + + delegate Parser ParserDelegate (Array links); + + class Link { + + public string[] begin; + public string[] end; + public unowned ParserDelegate create; + + public Link (string[] begin, string[] end, ParserDelegate? create = null) { + this.begin = begin; this.end = end; this.create = create; + } + } + + class ParserFactory { + + public Array group = new Array (); + + public virtual TextParser make_text_parser (Array links) { + return new TextParser (links); + } + + public virtual LongtableParser make_longtable_parser (Array links) { + return new LongtableParser (links); + } + + public virtual GraphicsParser make_graphics_parser (Array links) { + return new GraphicsParser (links); + } + + public virtual TabularParser make_tabular_parser (Array links) { + return new TabularParser (links); + } + + public ParserFactory () { + group.append_val (new Link ({}, {}, + links => { return make_text_parser (links); })); + group.append_val (new Link ({"\\", "\\begin", "{", "longtable", "}"}, + {"\\", "\\end", "{", "longtable", "}"}, + links => { return make_longtable_parser (links); })); + group.append_val (new Link ({"\\", "\\includegraphics"}, {}, + links => { return make_graphics_parser (links); })); + group.append_val (new Link ({"\\", "\\begin", "{", "tabular", "}"}, + {"\\", "\\end", "{", "tabular", "}"}, + links => { return make_tabular_parser (links); })); + group.append_val (new Link ({"\\", "\\begin", "{", "tabular", "*", "}"}, + {"\\", "\\end", "{", "tabular", "*", "}"}, + links => { return make_tabular_parser (links); })); + } + } + } +} diff --git a/src/Row.vala b/src/Row.vala index e69de29..c6d5d59 100644 --- a/src/Row.vala +++ b/src/Row.vala @@ -0,0 +1,439 @@ +namespace LAview { + + namespace Table { + + /** + * Row in the {@link Subtable}. + */ + public class Row : ADocList { + + /** + * Expands {@link AddSpaces.Style}. + */ + public enum Style { + + /** + * Default style. + */ + DEFAULT = 0, + + /** + * Formal style for the first //Row// in the {@link Subtable}. + */ + FORMAL_FIRST, + + /** + * Formal style for the middle //Row// in the {@link Subtable}. + */ + FORMAL_REST, + + /** + * Formal style for the last //Row// in the {@link Subtable}. + */ + FORMAL_LAST, + + /** + * Formal style for a single //Row// in the {@link Subtable}. + */ + FORMAL_SINGLE + } + + /** + * Style of any operation on {@link ATable}/{@link Subtable} or //Row// + * for lines preserving/creation. + */ + public enum OpLineStyle { + + /** + * Do not anything with lines, "store as is". + */ + DEFAULT = 0, + + /** + * Preserve vertical border. + */ + HBORDER = 1, + + /** + * Preserve horizontal border. + */ + VBORDER = 2, + + /** + * Preserve both vertical and horizontal borders. + */ + BORDER = 3, + + /** + * Remove horizontal double lines. + */ + HDBLLINES = 4, + + /** + * Remove vertical double lines. + */ + VDBLLINES = 8, + + /** + * Remove both horizontal and vertical double lines. + */ + DBLLINES = 12, + + /** + * Preserve any borders and remove any double lines. + */ + BORDER_DBLLINES = 15, + } + + /** + * Any text before the //Row//. + */ + public string before = ""; + + /** + * Style of any operation on {@link ATable}/{@link Subtable} or //Row// + * for lines preserving/creation. + */ + public Style style; + + /** + * Top vertical spaces. + */ + public AddSpaces top = new AddSpaces (); + + /** + * Bottom vertical spaces. + */ + public AddSpace bottom = new AddSpace.with_params (""); + + /** + * Vertical spaces inside the {@link Subtable} + */ + public AddSpaces between = new AddSpaces (); + + /** + * Type of horizontal lines for the //Row//. + */ + public enum LinesType { + + /** + * //Row// has no horizontal lines. + */ + NONE = 0, + + /** + * //Row// has continuous horizontal line on the top. + */ + HLINE, + + /** + * //Row// has noncontinuous horizontal line on the top. + */ + CLINES + } + + /** + * Constructs a new empty //Row//. + */ + public Row () {} + + protected override ADocList create_default_instance () { return new Row (); } + + /** + * Gets a copy of the //Row//. + */ + public override IDoc copy () { + var clone = base.copy () as Row; + clone.before = before; + clone.style = style; + clone.top = top; + clone.bottom = bottom.copy () as AddSpace; + clone.between = between.copy () as AddSpaces; + return clone; + } + + enum Where { SEARCH_BEGIN = 0, SEARCH_END = 1 } + + string row_to_lines (bool overline) { + var s = new StringBuilder (); + var lcount_row = copy () as Row; + LinesType lines_type = LinesType.HLINE; + + while (lines_type != LinesType.NONE) { + lines_type = LinesType.NONE; + + foreach (var cell in lcount_row as Gee.ArrayList) { + if (overline && cell.noverlines != 0 + || !overline && cell.nunderlines != 0) { + if (lines_type == LinesType.NONE) { + if (lcount_row.index_of (cell) == 0) + lines_type = LinesType.HLINE; + else + lines_type = LinesType.CLINES; + } + } else { + if (lines_type == LinesType.HLINE) + lines_type = LinesType.CLINES; + } + } + + if (lines_type != LinesType.NONE) + s.append_c ('\n'); + + if (lines_type == LinesType.HLINE) { + string line_style = ""; + + switch (lcount_row.style) { + case Style.FORMAL_FIRST: + line_style = overline ? "\\toprule" : "\\midrule"; + break; + case Style.FORMAL_LAST: + line_style = overline ? "\\midrule" : "\\bottomrule"; + break; + case Style.FORMAL_SINGLE: + line_style = overline ? "\\toprule" : "\\bottomrule"; + break; + case Style.FORMAL_REST: + line_style = "\\midrule"; + break; + default: + line_style = "\\hline"; + break; + } + + s.append (line_style); + } else if (lines_type == LinesType.CLINES) { + var clines_added = false; + + uint cline_begin = 0, cline_end = 0; + var where = Where.SEARCH_BEGIN; + for (var idx = 0, max_idx = lcount_row.size; idx < max_idx; ++idx) { + var cell = lcount_row[idx] as Cell; + + switch (where) { + case Where.SEARCH_BEGIN: + if (overline && cell.noverlines != 0 + || !overline && cell.nunderlines != 0) { + + if (idx + 1 < max_idx + && (overline && (lcount_row[idx + 1] as Cell).noverlines != 0 + || !overline && (lcount_row[idx + 1] as Cell).nunderlines != 0)) { + cline_end = cline_begin + cell.ncells; + where = Where.SEARCH_END; + } else { + if (clines_added) + s.append_c (' '); + s.append_printf (lcount_row.style != Style.DEFAULT ? + "\\cmidrule{%d-%d}" : "\\cline{%d-%d}", + cline_begin + 1, + cline_begin + cell.ncells); + cline_begin += cell.ncells; + clines_added = true; + } + } else { + cline_begin += cell.ncells; + } + break; + case Where.SEARCH_END: + if (idx + 1 >= max_idx + || overline && (lcount_row[idx + 1] as Cell).noverlines == 0 + || !overline && (lcount_row[idx + 1] as Cell).nunderlines == 0) { + if (clines_added) + s.append_c (' '); + s.append_printf (lcount_row.style != Style.DEFAULT ? + "\\cmidrule{%d-%d}" : "\\cline{%d-%d}", + cline_begin + 1, + cline_end + cell.ncells); + cline_begin = cline_end + cell.ncells; + clines_added = true; + where = Where.SEARCH_BEGIN; + } else { + cline_end += cell.ncells; + } + break; + default: + assert (where == Where.SEARCH_BEGIN); + break; + } + } + } + + foreach (var cell in lcount_row as Gee.ArrayList) { + if (overline && cell.noverlines != 0 + || !overline && cell.nunderlines != 0) { + if (overline) + --cell.noverlines; + else + --cell.nunderlines; + } + } + } + + return s.str; + } + + void process_opline_insert (Cell cell, + int index, + OpLineStyle line_style) { + if (size == 0) return; + + if ((line_style & OpLineStyle.VBORDER) != 0) { + if (index < 0 || index >= size) { + var last_cell = get (size - 1) as Cell; + if (last_cell.multitype == Cell.Multitype.MULTICOL + || last_cell.multitype == Cell.Multitype.MULTICOLROW) + cell.nrlines = last_cell.nrlines; + } else if (index == 0) { + if ((get (index) as Cell).multitype == Cell.Multitype.MULTICOL + || (get (index) as Cell).multitype == Cell.Multitype.MULTICOLROW) + cell.nllines = (get (index) as Cell).nllines; + } + } + + if ((line_style & OpLineStyle.VDBLLINES) != 0) { + var prev_index = index - 1; + + if (index >= 0 && index < size) { // next == [index] + var idx_cell = get (index) as Cell; + if (idx_cell.multitype == Cell.Multitype.MULTICOL + || idx_cell.multitype == Cell.Multitype.MULTICOLROW ) { + idx_cell.nllines = cell.nrlines != 0 || idx_cell.nllines != 0 ? 1 : 0; + cell.nrlines = 0; + } + } else { + prev_index = size - 1; + } + + if (prev_index >= 0 && prev_index < size + && (cell.multitype == Cell.Multitype.MULTICOL + || cell.multitype == Cell.Multitype.MULTICOLROW)) { + var idx_cell = get (prev_index) as Cell; + cell.nllines = idx_cell.nrlines != 0 || cell.nllines != 0 ? 1 : 0; + idx_cell.nrlines = 0; + } + } + } + + /** + * Removes a {@link Cell} from the //Row//. + * + * @param cell {@link Cell} to remove. + * @param line_style {@link Row.OpLineStyle} of the operation. + */ + public new bool remove (Cell cell, Row.OpLineStyle line_style = Row.OpLineStyle.BORDER_DBLLINES) { + var index = index_of (cell); + if (index < 0 || index >= size) return false; + remove_at (index); + return true; + } + + /** + * Removes a {@link Cell} from the //Row// at specified position. + * + * @param index position of the {@link Cell} to remove. + * @param line_style {@link Row.OpLineStyle} of the operation. + */ + public new Cell remove_at (int index, Row.OpLineStyle line_style = Row.OpLineStyle.BORDER_DBLLINES) { + var cell = get (index) as Cell; + if ((line_style & OpLineStyle.VBORDER) != 0 + && (cell.multitype == Cell.Multitype.MULTICOL + || cell.multitype == Cell.Multitype.MULTICOLROW)) { + if (size > 1) { + if (index == 0) + (get (1) as Cell).nllines = cell.nllines; + else if (index == size - 1) + (get (size - 2) as Cell).nrlines = cell.nrlines; + } + + if ((line_style & OpLineStyle.VDBLLINES) != 0) { + if (index > 0 && index + 1 < size) { + var prev = get (index - 1) as Cell, + next = get (index + 1) as Cell; + if (next.multitype == Cell.Multitype.MULTICOL + || next.multitype == Cell.Multitype.MULTICOLROW) { + next.nllines = prev.nrlines != 0 || next.nllines != 0 ? 1 : 0; + prev.nrlines = 0; + } + } + } + } + + return base.remove_at (index) as Cell; + } + + /** + * Inserts a {@link Cell} to the //Row// to specified position. + * + * @param index position to insert the {@link Cell}. + * @param cell {@link Cell} to insert. + * @param line_style {@link Row.OpLineStyle} of the operation. + */ + public new void insert (int index, Cell cell, OpLineStyle line_style = OpLineStyle.BORDER_DBLLINES) { + process_opline_insert (cell, index, line_style); + base.insert (index, cell); + } + + /** + * Adds a {@link Cell} to the //Row//. + * + * @param cell {@link Cell} to add. + * @param line_style {@link Row.OpLineStyle} of the operation. + */ + public new bool add (Cell cell, OpLineStyle line_style = OpLineStyle.BORDER_DBLLINES) { + process_opline_insert (cell, -1, line_style); + return base.add (cell); + } + + /** + * Generates LaTeX string for the //Row//. + */ + public override string generate () { + var s = new StringBuilder (); + + /* {c,h}lines */ + string tmps = row_to_lines (true); + s.append (tmps); + + /* "top" additional space */ + if (top.size != 0) { + top.style = style == Style.DEFAULT ? AddSpaces.Style.DEFAULT + : AddSpaces.Style.FORMAL; + s.append (top.generate ()); + } + + /* spaces before self */ + if (before != "") + s.append (before); + + /* rows contents */ + foreach (var cell in this) { + if (this.index_of (cell) != 0) s.append_c ('&'); + s.append (cell.generate ()); + } + + s.append ("\\tabularnewline"); + + /* "bottom" additional space */ + if ((tmps = bottom.generate ()) != "") { + if (style == Style.DEFAULT) + s.append_printf ("[%s]", tmps); + else + s.append_printf ("\\addlinespace[%s]", tmps); + } + + /* "between" additional space */ + if (between.size != 0) { + between.style = style == Style.DEFAULT ? AddSpaces.Style.DEFAULT + : AddSpaces.Style.FORMAL; + s.append (between.generate ()); + } + + /* {c,h}lines */ + tmps = row_to_lines (false); + s.append (tmps); + + return s.str; + } + } + } +} diff --git a/src/Scanner.vala b/src/Scanner.vala deleted file mode 100644 index e69de29..0000000 diff --git a/src/Subtable.vala b/src/Subtable.vala index e69de29..3ef62e8 100644 --- a/src/Subtable.vala +++ b/src/Subtable.vala @@ -0,0 +1,353 @@ +namespace LAview { + + namespace Table { + + /** + * Subtable in the {@link ATable}. + */ + public class Subtable : ADocList { + + /** + * Caption of the table. + */ + public string caption = ""; + + /** + * Any text before the //Subtable//. + */ + public string before = ""; + + /** + * Any text after the //Subtable//. + */ + public string after = ""; + + /** + * Style of the table (Default/Formal). + */ + public AddSpaces.Style style; + + protected override ADocList create_default_instance () { return new Subtable (); } + + /** + * Constructs a new empty //Subtable//. + */ + public Subtable () {} + + /** + * Gets a copy of the //Subtable//. + */ + public override IDoc copy () { + var clone = base.copy () as Subtable; + clone.caption = caption; + clone.before = before; + clone.after = after; + clone.style = style; + return clone; + } + + void process_border_lines (Row dest_row, Row src_row, bool is_first) { + var si = 0, di = 0, max_si = src_row.size, max_di = dest_row.size; + uint dncells = 0, sncells = 0; + + while (si < max_si && di < max_di) { + var scell = src_row.get (si) as Cell; + var dcell = dest_row.get (di) as Cell; + + dncells = dncells != 0 ? dncells + : uint.max (1, dcell.multitype == Cell.Multitype.MULTICOL ? + dcell.ncells : 1); + sncells = sncells != 0 ? sncells + : uint.max (1, scell.multitype == Cell.Multitype.MULTICOL ? + scell.ncells : 1); + + if (is_first) + dcell.noverlines = scell.noverlines; + else + dcell.nunderlines = scell.nunderlines; + + if (--dncells == 0) ++di; + if (--sncells == 0) ++si; + } + } + + void process_double_lines (Row top_row, Row bottom_row) { + var ti = 0, bi = 0, max_ti = top_row.size, max_bi = bottom_row.size; + uint tncells = 0, bncells = 0; + + while (ti < max_ti && bi < max_bi) { + var tcell = top_row.get (ti) as Cell; + var bcell = bottom_row.get (bi) as Cell; + + tncells = tncells != 0 ? tncells + : uint.max (1, tcell.multitype == Cell.Multitype.MULTICOL ? + 1 : 0) != 0 ? tcell.ncells : 1; + bncells = bncells != 0 ? bncells + : uint.max (1, bcell.multitype == Cell.Multitype.MULTICOL ? + bcell.ncells : 1); + + bcell.noverlines = tcell.nunderlines + bcell.noverlines != 0 ? 1 : 0; + tcell.nunderlines = 0; + + if (--tncells == 0) ++ti; + if (--bncells == 0) ++bi; + } + } + + void process_opline_insert (Row row, Row? row2, Row.OpLineStyle line_style) { + if (size == 0) return; + + if ((line_style & Row.OpLineStyle.HBORDER) != 0) { + if (row2 == null) + process_border_lines (row, get (size - 1) as Row, false); + else if (index_of (row2) == 0) + process_border_lines (row, row2, true); + } + + if ((line_style & Row.OpLineStyle.HDBLLINES) != 0) { + Row prev = null; + + if (row2 != null) { // next == iter + prev = get (index_of (row2) - 1) as Row; + process_double_lines (row, row2); + } else { + prev = get (size - 1) as Row; + } + + if (prev != null) + process_double_lines (prev, row); + } + } + + /** + * Removes {@link Cell}-s in the column by specified index. + * + * @param index index of column to remove. + * @param line_style {@link Row.OpLineStyle} of the operation. + */ + public void remove_col (uint index, Row.OpLineStyle line_style = Row.OpLineStyle.BORDER_DBLLINES) { + foreach (Row row in this as Gee.ArrayList) { + uint mindx = 0; + + foreach (var cell in row as Gee.ArrayList) { + uint ncells = 1; + + if (cell.multitype == Cell.Multitype.MULTICOL) + ncells = cell.ncells; + + if (mindx + ncells > index) { + if (ncells == 1) + row.remove (cell, line_style); + else + cell.ncells--; + break; + } + + mindx += ncells; + } + } + } + + /** + * Clones column of {@link Cell}-s by specified indexes. + * + * @param src_index source position of the column. + * @param dest_index destination to clone the column. + * @param multicol preserve multicolumn property or not. + * @param line_style {@link Row.OpLineStyle} of the operation. + */ + public void clone_col (uint src_index, uint dest_index, + bool multicol, Row.OpLineStyle line_style = Row.OpLineStyle.BORDER_DBLLINES) { + foreach (var row in this as Gee.ArrayList) { + uint mindx = 0; + var sidx = -1; + var didx = -1; + + foreach (var cell in row as Gee.ArrayList) { + uint ncells = 1; + + if (cell.multitype == Cell.Multitype.MULTICOL) + ncells = cell.ncells; + + if (sidx == -1 && mindx + ncells > src_index) + sidx = row.index_of (cell); + + if (didx == -1 && mindx + ncells > dest_index) + didx = row.index_of (cell); + + if (sidx != -1 && didx != -1) { + var cell2 = row.get (sidx).copy () as Cell; + if (!multicol && cell2.multitype == Cell.Multitype.MULTICOL) + cell2.ncells = 1; + row.insert (didx, cell2, line_style); + + sidx = -1; + break; + } + + mindx += ncells; + } + + if (sidx != -1 && mindx <= dest_index) { + var empty_global_doc = new Glob (); + Cell cell; + + while (mindx < dest_index) { + var row_size = row.size; + cell = row.get (row_size - 1).copy () as Cell; + cell.contents = empty_global_doc; + cell.ncells = 1; + row.add (cell, line_style); + mindx++; + } + + cell = row.get (sidx).copy () as Cell; + if (!multicol && cell.multitype == Cell.Multitype.MULTICOL) + cell.ncells = 1; + row.add (cell, line_style); + } + } + } + + /** + * Removes {@link Row} from from //Subtable//. + * + * @param row {@link Row} to remove. + * @param line_style {@link Row.OpLineStyle} of the operation. + */ + public new bool remove (Row row, Row.OpLineStyle line_style = Row.OpLineStyle.BORDER_DBLLINES) { + var index = index_of (row); + if (index < 0 || index >= size) return false; + remove_at (index); + return true; + } + + /** + * Removes a {@link Row} from the //Subtable// at specified position. + * + * @param index position of the {@link Row} to remove. + * @param line_style {@link Row.OpLineStyle} of the operation. + */ + public new Row remove_at (int index, Row.OpLineStyle line_style = Row.OpLineStyle.BORDER_DBLLINES) { + if (size > 1 && 0 != line_style & Row.OpLineStyle.HBORDER) { + if (index == 0) + process_border_lines (get (1) as Row, get (index) as Row, true); + else if (index == size - 1) + process_border_lines (get (size - 2) as Row, get (index) as Row, false); + } + + if ((line_style & Row.OpLineStyle.HDBLLINES) != 0) + if (index > 0 && index + 1 < size) + process_double_lines (get (index + 1) as Row, + get (index - 1) as Row); + + return base.remove_at (index) as Row; + } + + /** + * Inserts a {@link Row} to the //Subtable// to specified position. + * + * @param index position to insert the {@link Row}. + * @param row {@link Row} to insert. + * @param line_style {@link Row.OpLineStyle} of the operation. + */ + public new void insert (int index, Row row, Row.OpLineStyle line_style = Row.OpLineStyle.BORDER_DBLLINES) { + process_opline_insert (row, get (index) as Row, line_style); + base.insert (index, row); + } + + /** + * Adds a {@link Row} to the //Subtable//. + * + * @param row {@link Row} to add. + * @param line_style {@link Row.OpLineStyle} of the operation. + */ + public new bool add (Row row, Row.OpLineStyle line_style = Row.OpLineStyle.BORDER_DBLLINES) { + process_opline_insert (row, null, line_style); + return base.add (row); + } + + enum RowPos { DEFAULT = 0, FIRST, LAST } + + Row rm_extra_lines (Row row) { + var ret = row.copy () as Row; + + var row_pos = RowPos.DEFAULT; + + if (index_of (row) == 0) + row_pos = RowPos.FIRST; + else if (index_of (row) == size - 1) + row_pos = RowPos.LAST; + else + row_pos = RowPos.DEFAULT; + + uint min_olines = 0, min_ulines = 0; + + foreach (var cell in row as Gee.ArrayList) { + min_olines = uint.min (min_olines, cell.noverlines); + min_ulines = uint.min (min_ulines, cell.nunderlines); + } + + foreach (var cell in row as Gee.ArrayList) { + switch (row_pos) { + case RowPos.FIRST: + cell.noverlines = uint.min (min_olines + 1, cell.noverlines); + cell.nunderlines = uint.min (min_ulines, cell.nunderlines); + break; + case RowPos.LAST: + cell.noverlines = uint.min (1, cell.noverlines); + cell.nunderlines = uint.min (min_ulines + 1, cell.nunderlines); + break; + default: + cell.noverlines = uint.min (1, cell.noverlines); + cell.nunderlines = uint.min (min_ulines, cell.nunderlines); + break; + } + } + + return ret; + } + + /** + * Generates LaTeX string for the //Subtable//. + */ + public override string generate () { + var s = new StringBuilder (); + + s.append (before); + + if (caption != "") { + s.append (caption); + if (size != 0) + s.append ("\\tabularnewline"); + } + + foreach (var row in this as Gee.ArrayList) { + var row_style = Row.Style.DEFAULT; + + if (style != AddSpaces.Style.DEFAULT) { + var len = size; + + if (len > 1 && index_of (row) == 0) + row_style = Row.Style.FORMAL_FIRST; + else if (len > 1 && index_of (row) == size - 1) + row_style = Row.Style.FORMAL_LAST; + else if (len == 1) + row_style = Row.Style.FORMAL_SINGLE; + else + row_style = Row.Style.FORMAL_REST; + } + + row.style = row_style; + var tmprow = rm_extra_lines (row); + var tmps = tmprow.generate (); + s.append (tmps); + } + + s.append (after); + + return s.str; + } + } + } +} diff --git a/src/Table.vala b/src/Table.vala new file mode 100644 index 0000000..c565863 --- /dev/null +++ b/src/Table.vala @@ -0,0 +1,181 @@ +namespace LAview { + + /** + * Tables and its components in the document. + */ + namespace Table { + + /** + * Any Table in the LaTeX document. + */ + public abstract class ATable : ADoc { + + /** + * Align of the table. + * + * Possible values: 't', 'b'. + */ + public char align; + + /** + * Style of the {@link AddSpace}/{@link Subtable}. + */ + public AddSpaces.Style style; + + /** + * Parameters of columns. + */ + public ColParams params = new ColParams (); + + /** + * Main sutable. + */ + public Subtable table = new Subtable (); + + /** + * First Header. + */ + public Subtable first_header = new Subtable (); + + /** + * Header. + */ + public Subtable header = new Subtable (); + + /** + * Footer. + */ + public Subtable footer = new Subtable (); + + /** + * Last Footer. + */ + public Subtable last_footer = new Subtable (); + + protected ATable () {} + + /** + * Gets a copy of the //Table//. + */ + public override IDoc copy () { + var clone = Object.new (this.get_type ()) as ATable; + + clone.align = align; + clone.style = style; + clone.params = params.copy () as ColParams; + clone.table = table.copy () as Subtable; + clone.first_header = first_header.copy () as Subtable; + clone.header = header.copy () as Subtable; + clone.footer = footer.copy () as Subtable; + clone.last_footer = last_footer.copy () as Subtable; + + return clone; + } + + /** + * Generates LaTeX string for the //Table//. + */ + public override string generate () { + assert (false); + return ""; + } + + /** + * Removes {@link Cell}-s in the column by specified index. + * + * @param index index of column to remove. + * @param line_style {@link Row.OpLineStyle} of the operation. + */ + public void remove_col (int index, Row.OpLineStyle line_style + = Row.OpLineStyle.BORDER_DBLLINES) { + if (index >= params.size) return; + + var param = params.get (index) as ColParam; + + if ((line_style & Row.OpLineStyle.VBORDER) != 0 && param.align != "") { + if (params.size > 1) { + if (index == 0) + (params.get (1) as ColParam).nllines = param.nllines; + else if (index == params.size - 1) + (params.get (params.size - 2) as ColParam).nrlines = param.nrlines; + } + } + + if ((line_style & Row.OpLineStyle.VDBLLINES) != 0) { + if (index > 0 && index < params.size - 1) { + var prev = params.get (index - 1) as ColParam, + next = params.get (index + 1) as ColParam; + next.nllines = prev.nrlines != 0 || next.nllines != 0 ? 1 : 0; + prev.nrlines = 0; + } + } + + params.remove_at (index); + + first_header.remove_col (index, line_style); + header.remove_col (index, line_style); + footer.remove_col (index, line_style); + last_footer.remove_col (index, line_style); + table.remove_col (index, line_style); + } + + /** + * Clones column of {@link Cell}-s by specified indexes. + * + * @param src_index source position of the column. + * @param dest_index destination to clone the column. + * @param multicol preserve multicolumn property or not. + * @param line_style {@link Row.OpLineStyle} of the operation. + */ + public void clone_col (int src_index, int dest_index, bool multicol, + Row.OpLineStyle line_style + = Row.OpLineStyle.BORDER_DBLLINES) { + if (src_index >= params.size || dest_index > params.size) return; + + var param = params.get (src_index).copy () as ColParam; + + if ((Row.OpLineStyle.VBORDER & line_style) != 0) { + if (dest_index >= params.size) { + var last_param = params.get (params.size - 1) as ColParam; + if (last_param.align != "") + param.nrlines = last_param.nrlines; + } else { + var first_param = params.get (0) as ColParam; + if (dest_index == 0 && first_param.align != "") + param.nllines = first_param.nllines; + } + } + + if ((Row.OpLineStyle.VDBLLINES & line_style) != 0) { + int prev_index; + bool prev_edit = false; + + if (dest_index < params.size) { + prev_index = dest_index > 0 ? dest_index - 1 : 0; + if (prev_index > 0) prev_edit = true; + var dest_param = params.get (dest_index) as ColParam; + dest_param.nllines = param.nrlines != 0 || dest_param.nllines != 0 ? 1 : 0; + param.nrlines = 0; + } else { + prev_edit = true; + prev_index = params.size - 1; + } + + if (prev_edit) { + var prev_param = params.get (prev_index) as ColParam; + param.nllines = prev_param.nrlines != 0 || param.nllines != 0 ? 1 : 0; + prev_param.nrlines = 0; + } + } + + params.insert (dest_index, param); + + first_header.clone_col (src_index, dest_index, multicol, line_style); + header.clone_col (src_index, dest_index, multicol, line_style); + footer.clone_col (src_index, dest_index, multicol, line_style); + last_footer.clone_col (src_index, dest_index, multicol, line_style); + table.clone_col (src_index, dest_index, multicol, line_style); + } + } + } +} diff --git a/src/TableParser.vala b/src/TableParser.vala new file mode 100644 index 0000000..17a82ec --- /dev/null +++ b/src/TableParser.vala @@ -0,0 +1,674 @@ +namespace LAview { + + namespace Parsers { + + using Table; + + abstract class TableParser : Parser { + + protected uint row_abs_pos; + protected Row row = new Row (); + protected Subtable subtable; + + protected Array group = new Array (); + + protected Row.LinesType lines_type; + protected List clines; + protected int nhlines; + protected uint cell_abs_pos; + + protected bool in_caption = false; + + public TableParser (Array links) { + base (links); + + group.append_val (new Link ({}, {})); + + group.append_val (new Link ({"\\", "\\caption"}, {})); + group.append_val (new Link ({"\\", "\\endfirsthead"}, {})); + group.append_val (new Link ({"\\", "\\endhead"}, {})); + group.append_val (new Link ({"\\", "\\endfoot"}, {})); + group.append_val (new Link ({"\\", "\\endlastfoot"}, {})); + + group.append_val (new Link ({"\\", "\\hline"}, {})); + group.append_val (new Link ({"\\", "\\cline"}, {})); + group.append_val (new Link ({"\\", "\\tabularnewline"}, {})); + group.append_val (new Link ({"\\", "\\", "\\", "\\"}, {})); + group.append_val (new Link ({"&"}, {})); + group.append_val (new Link ({"\\", "\\toprule"}, {})); + group.append_val (new Link ({"\\", "\\midrule"}, {})); + group.append_val (new Link ({"\\", "\\cmidrule"}, {})); + group.append_val (new Link ({"\\", "\\bottomrule"}, {})); + group.append_val (new Link ({"\\", "\\noalign"}, {})); + group.append_val (new Link ({"\\", "\\addlinespace"}, {})); + + /* load local symbols */ + load_symbols (group); + + /* generate local tokens table (tree) */ + build_tree (ref local_tokens_to_class_start, group, false); + + /* generate local stop_tokens table (tree) */ + build_tree (ref local_tokens_to_class_stop, group, true); + } + + public override IDoc parse (string contents, size_t line, long position) throws ParseError { + assert (false); + + return new Text (""); + } + + protected bool process_tabularnewline (uint tag, uint tag_left_abspos, + string subcontents, + uint matched_tag_abspos_right) throws ParseError { + // TODO: Similar ro TabularParser::process_tabularnewline (), make a template method? + if (in_caption) { + subtable.caption = contents[row_abs_pos:tag_left_abspos].compress (); + in_caption = false; + } else { + TokenType token = add_cell (subcontents); + + if (token == TokenType.ERROR) + return false; + + if (fifo_peek_head().token == TokenType.LEFT_BRACE) { + local_count_branches (tag); + } else { + subtable.add (row, Row.OpLineStyle.DEFAULT); + row = new Row (); + } + } + + lines_type = Row.LinesType.NONE; + clines = new List (); + nhlines = 0; + + row_abs_pos = matched_tag_abspos_right; + + return true; + } + + protected TokenType add_cell (string subcontents) throws ParseError { + /* remove leading linebreak and \newpage tag in first cell of row */ + if (row.size == 0) { + try { + var regex = new Regex ("^([ \t\r]|\\\\\\\\newpage)*\\n" + + "([ \t\r\n]*\\\\\\\\newpage[ \t\r\n]*)*"); + MatchInfo match_info; + regex.match (subcontents, 0, out match_info); + if (match_info.matches ()) { + var word = match_info.fetch (0); + uint stop_pos = 0; + match_info.fetch_pos (0, null, out stop_pos); + subcontents = subcontents.offset (stop_pos); + row.before = word.compress (); + } + } catch (RegexError e) { } + } + + var mtype = Cell.Multitype.SIMPLE; + var before = "", align = ""; + var ncells = 0; + var cell_contents = ""; + var after = ""; + + /* check cell for multi{column|row} */ + if (Regex.match_simple ("^[ \t\r\n]*\\\\\\\\multicolumn\\{1\\}\\{[^{}]+\\}" + + "\\{[ \t\r\n]*\\\\\\\\multirow\\{[0-9]+\\}" + + "\\{\\*\\}\\{", subcontents)) { + // Multitype.MULTICOLROW + mtype = Cell.Multitype.MULTICOLROW; + before = subcontents[0:subcontents.index_of_char('\\')]; + var pstart = subcontents.offset (subcontents.index_of_char ('{') + 1); + pstart = pstart.offset (pstart.index_of_char ('{')); + var len = pstart.index_of_char ('}'); + var pend = pstart.offset (len); + align = pstart[1:len].compress (); + pstart = pend.offset (pend.index_of_char ('{') + 1); + pstart = pstart.offset (pstart.index_of_char ('{')); + ncells = int.parse (pstart.offset (1)); + pstart = pstart.offset (1); + pstart = pstart.offset (pstart.index_of_char ('{') + 1); + pstart = pstart.offset (pstart.index_of_char ('{')); + var lev = 1; + len = 1; + pend = pstart.offset (1); + for (var max_len = pstart.length; len < max_len && lev != 0; ++len) { + switch (pstart[len]) { + case '{': ++lev; + break; + case '}': --lev; + break; + default: + break; + } + pend = pend.offset (1); + } + if (lev != 0) { + prefix_error (subdoc_start, _("Error parsing subdoc.")); + throw new ParseError.SUBDOC (err_str); + } + cell_contents = pstart.substring (1, len - 2); + after = pend.offset (1); + } else if (Regex.match_simple ("^[ \t\r\n]*\\\\\\\\multi(column|row)\\{[0-9]+\\}\\{", + subcontents)) { + // Multitype.MULTICOL + if (Regex.match_simple ("^[ \t\r\n]*\\\\\\\\multicolumn", subcontents)) + mtype = Cell.Multitype.MULTICOL; + else if (Regex.match_simple ("^[ \t\r\n]*\\\\\\\\multirow", subcontents)) + mtype = Cell.Multitype.MULTIROW; + + before = subcontents[0:subcontents.index_of_char ('\\')]; + var pstart = subcontents.offset (subcontents.index_of_char ('{')); + ncells = int.parse (pstart.offset (1)); + pstart = pstart.offset (1); + pstart = pstart.offset (pstart.index_of_char ('{')); + var lev = 1; + var len = 1; + for (var max_len = pstart.length; len < max_len && lev != 0; ++len) { + switch (pstart[len]) { + case '{': ++lev; + break; + case '}': --lev; + break; + default: + break; + } + } + if (lev != 0) { + prefix_error (subdoc_start, _("Error parsing subdoc.")); + throw new ParseError.SUBDOC (err_str); + } + + align = pstart.substring (1, len - 2).compress (); + pstart = pstart.offset (len); + pstart = pstart.offset (pstart.index_of_char ('{')); + + if (pstart == "") { + prefix_error (subdoc_start, _("Error parsing subdoc.")); + throw new ParseError.SUBDOC (err_str); + } + + lev = 1; + len = 1; + for (var max_len = pstart.length; len < max_len && lev != 0; ++len) { + switch (pstart[len]) { + case '{': ++lev; + break; + case '}': --lev; + break; + default: + break; + } + } + if (lev != 0) { + prefix_error (subdoc_start, _("Error parsing subdoc.")); + throw new ParseError.SUBDOC (err_str); + } + + cell_contents = pstart.substring (1, len - 2); + after = pstart.offset (len); + } else { + // Multitype.SIMPLE + ncells = 1; + mtype = Cell.Multitype.SIMPLE; + cell_contents = subcontents; + } + + var nllines = 0, nrlines = 0; + + if (align != "") { + var alen = align.length; + nllines = nrlines = 0; + + for (nllines = 0; nllines < alen && '|' == align[nllines]; ++nllines); + for (nrlines = alen - 1; nrlines > nllines && '|' == align[nrlines]; --nrlines); + + align = align[nllines:nrlines + 1]; + nrlines = alen - nrlines - 1; + } + + var subparserGlobal = new GlobParser (links); + var subdoc = subparserGlobal.parse (cell_contents, subdoc_start.line, subdoc_start.pos); + + unowned List clines_p = clines.first (); + foreach (var cell in row as Gee.ArrayList) { + if (clines_p == null) break; + + for (var i = 0, max_i = cell.ncells; i < max_i; ++i) { + if (clines_p == null) break; + clines_p = clines_p.next; + } + } + + var overline = nhlines + ((lines_type == Row.LinesType.CLINES && clines_p != null) ? + clines_p.data : 0) ; + var underline = 0; + + var cell = new Cell.with_params (mtype, ncells, nllines, align, nrlines, overline, + underline, subdoc as Glob, before, after); + row.add (cell, Row.OpLineStyle.DEFAULT); + + return TokenType.NONE; + } + + protected void lines_to_last_row () { + bool clear_lines = false; + + switch (lines_type) { + case Row.LinesType.HLINE: + if (subtable.size != 0) { + foreach (var cell in subtable.get (subtable.size - 1) as Gee.ArrayList) { + cell.nunderlines += nhlines; + clear_lines = true; + } + } + break; + case Row.LinesType.CLINES: + var tmp_row = row.size != 0 ? row : subtable.get (subtable.size - 1) as Row; + unowned List clines_p = clines.first (); + foreach (var cell in tmp_row as Gee.ArrayList) { + if (clines_p == null) break; + + if (clines_p != null && clines_p.data != 0) + ++cell.nunderlines; + + for (var i = 0; clines_p != null && i < cell.ncells; ++i) + clines_p = clines_p.next; + + clear_lines = true; + } + break; + } + + lines_type = Row.LinesType.NONE; + if (clear_lines) { + nhlines = 0; + clines = new List (); + } + } + + protected void local_count_branches (uint tag) { + if (group.index (tag).end.length != 0) { + child_tag = tag + links.length; + child_level = 1; + } else if (fifo_peek_head().token == TokenType.LEFT_CURLY + || fifo_peek_head().token == TokenType.LEFT_BRACE) { + in_child_params = true; + child_tag = tag + links.length; + child_level = 1; + } + } + + protected void process_spaces (Row.Style style, string subcontents) { + if (style == Row.Style.DEFAULT + && !Regex.match_simple ("\\\\vskip", subcontents)) + return; + + var tmp = subcontents.compress ()[0:-1]; + var add_space = new AddSpace.with_params (tmp.offset (style != Row.Style.DEFAULT ? 1 : 7)); + + Row last_row; + if (subtable.size != 0) + last_row = subtable.get(subtable.size-1) as Row; + else + last_row = new Row (); + + if (subtable.size != 0 && last_row.bottom.height == "" && subcontents != "") { + last_row.bottom = add_space; + } else if (row.top.size == 0 || subtable.size == 0) { + row.top.add (add_space); + } else if (row.top.size == 1 && subtable.size != 0) { + last_row.between.add (row.top.get (0) as AddSpace); + row.top.remove_at (0); + row.top.add (add_space); + } + } + + protected void spaces_to_last_row () { + var top = row.top; + if (top.size == 1 && subtable.size != 0) { + (subtable.get (subtable.size - 1) as Row).between.add (top.get (0) as AddSpace); + top.remove_at (0); + } + } + + enum TagKind { + NONE = 0, START_LOCAL, STOP_LOCAL, START_GLOBAL, STOP_GLOBAL + } + + enum TableTagType { + TEXT = 0, CAPTION, ENDFIRSTHEAD, ENDHEAD, ENDFOOT, ENDLASTFOOT, + HLINE, CLINE, TABULARNEWLINE, DBLBACKSLASHES, AMPERSAND, + TOPRULE, MIDRULE, CMIDRULE, BOTTOMRULE, NOALIGN, ADDLINESPACE + } + + void end_subtable (Table.ATable table, + TableTagType subtable_type, uint tag_left_abspos) { + if (in_caption) { + subtable.caption = contents[row_abs_pos:tag_left_abspos].compress (); + in_caption = false; + } else { + subtable.after = contents[row_abs_pos:tag_left_abspos]; + } + + lines_to_last_row (); + + switch (subtable_type) { + case TableTagType.ENDFIRSTHEAD: + table.first_header = subtable; + break; + + case TableTagType.ENDHEAD: + table.header = subtable; + break; + + case TableTagType.ENDFOOT: + table.footer = subtable; + break; + + case TableTagType.ENDLASTFOOT: + table.last_footer = subtable; + break; + + case TableTagType.TEXT: + table.table = subtable; + break; + + default: + break; + } + + subtable = new Subtable (); + } + + protected TokenType scan_tex_symbol (Table.ATable table) throws ParseError { + var tag = 0U; + var matched_tag_length = fifo_is_tag (local_tokens_to_class_start, out tag); + var message = ""; + TagKind tag_kind = TagKind.NONE; + + if (matched_tag_length != 0 && child_level == 0) { + tag_kind = TagKind.START_LOCAL; + } else { + matched_tag_length = fifo_is_tag (local_tokens_to_class_stop, out tag); + if (matched_tag_length != 0) { + tag_kind = TagKind.STOP_LOCAL; + } else { + matched_tag_length = fifo_is_tag (tokens, out tag); + + if (matched_tag_length != 0) { + tag_kind = TagKind.START_GLOBAL; + + if (links.index (tag).end.length != 0) + ++child_level; + for (var i = 0; i < matched_tag_length; ++i) fifo_pop (); + } else { + matched_tag_length = fifo_is_tag (stop_tokens, out tag); + if (matched_tag_length != 0) { + if (child_level == 0) { + message = string.joinv (null, links.index (tag).end); + /// Translators: please leave the '%s' construction without any changes. + prefix_error (last_symb_pos, + _("Unexpected end external tag sequence '%s' without begin tag pair."), + message); + throw new ParseError.ORPHAN_END (err_str); + } else { + tag_kind = TagKind.STOP_GLOBAL; + --child_level; + for (var i = 0; i < matched_tag_length; ++i) fifo_pop (); + } + } else if (in_child_params) { + count_branches (); + if (!in_child_params) { + tag_kind = TagKind.STOP_LOCAL; + tag = child_tag - links.length; + matched_tag_length = 1; + } + } + } + } + } + + var subcontents = ""; + + switch (tag_kind) { + case TagKind.NONE: + fifo_pop (); + + /* without end pair */ + if (fifo_peek_head ().token == TokenType.EOF + && (child_tag != 0 || child_level != 0)) { + assert (child_tag != 0 && child_level != 0); + if (child_tag < links.length) + message = string.joinv (null, links.index (child_tag).begin); + else + message = string.joinv (null, group.index (child_tag - links.length).begin); + /// Translators: please leave the '%s':%d:%d construction without any changes. + prefix_error (subdoc_start, + _("Begin tag sequence '%s':%d:%d without end tag pair."), + message, subdoc_start.line + 1, subdoc_start.pos + 1); + throw new ParseError.ORPHAN_BEGIN (err_str); + } + break; + + case TagKind.START_LOCAL: + var tag_left_abspos = fifo_peek_head ().abspos; + var matched_tag_abspos_right = fifo_peek_nth (matched_tag_length - 1).abspos + + fifo_peek_nth (matched_tag_length - 1).length; + var matched_tag_line = fifo_peek_head ().line; + var matched_tag_pos = fifo_peek_head ().pos; + for (var i = 0; i < matched_tag_length; ++i) fifo_pop (); + + if (child_tag != 0) { // inside local tags + assert (child_level != 0); + ++child_level; + } else if (child_level == 0) { // outside local tags + assert (child_tag == 0); + subcontents = contents[subdoc_start.abspos:tag_left_abspos]; + + var update_subdoc_start = true; + + switch (tag) { + case TableTagType.CAPTION: + in_caption = true; + local_count_branches (tag); + break; + + case TableTagType.ENDFIRSTHEAD: + end_subtable (table, TableTagType.ENDFIRSTHEAD, tag_left_abspos); + break; + + case TableTagType.ENDHEAD: + end_subtable (table, TableTagType.ENDHEAD, tag_left_abspos); + break; + + case TableTagType.ENDFOOT: + end_subtable (table, TableTagType.ENDFOOT, tag_left_abspos); + break; + + case TableTagType.ENDLASTFOOT: + end_subtable (table, TableTagType.ENDLASTFOOT, tag_left_abspos); + break; + + case TableTagType.TOPRULE: + case TableTagType.MIDRULE: + case TableTagType.BOTTOMRULE: + case TableTagType.HLINE: + if (tag == TableTagType.TOPRULE + || tag == TableTagType.MIDRULE + || tag == TableTagType.BOTTOMRULE) + table.style = AddSpaces.Style.FORMAL; + + switch (lines_type) { + case Row.LinesType.CLINES: + clines = new List (); + break; + case Row.LinesType.HLINE: + lines_to_last_row (); + break; + default: + break; + } + lines_type = Row.LinesType.HLINE; + ++nhlines; + + row_abs_pos = matched_tag_abspos_right; + break; + + case TableTagType.DBLBACKSLASHES: + case TableTagType.TABULARNEWLINE: + if (tag == TableTagType.DBLBACKSLASHES) { + var row_length = row.size; + + var col_param = ""; + if (row_length < table.params.size) + col_param = (table.params.get (row_length) as ColParam).align; + if (col_param != "" + && (col_param.index_of_char ('p') != -1 + || col_param.index_of_char ('b') != -1 + || col_param.index_of_char ('m') != -1)) { + update_subdoc_start = false; + break; + } + } + + if (!process_tabularnewline (tag, tag_left_abspos, subcontents, + matched_tag_abspos_right)) { + throw new ParseError.SUBDOC (err_str); + } + break; + + case TableTagType.AMPERSAND: + if (add_cell (subcontents) == TokenType.ERROR) + throw new ParseError.SUBDOC (err_str); + break; + + default: + /* do nothing */ + local_count_branches (tag); + break; + } + + if (update_subdoc_start) { + subdoc_start.abspos = matched_tag_abspos_right; + subdoc_start.line = matched_tag_line; + subdoc_start.pos = matched_tag_pos; + } + } else { // (!child_tag && child_level) - inside global tags + assert (tag_kind != 0 && child_level != 0); + if ((tag < links.length && links.index (tag).end.length != 0) + || (tag >= links.length && group.index (tag).end.length != 0)) // do not count NULL-end-tag objects + ++child_level; + } + break; + + case TagKind.STOP_LOCAL: + var tag_left_abspos = fifo_peek_head ().abspos; + var matched_tag_abspos_right = fifo_peek_nth (matched_tag_length - 1).abspos + + fifo_peek_nth (matched_tag_length - 1).length; + var matched_tag_line = fifo_peek_head ().line; + var matched_tag_pos = fifo_peek_head ().pos; + if (group.index (tag).end.length == 0) + ++tag_left_abspos; // '}' ']' is a part of NULL-end-object contents + for (var i = 0; i < matched_tag_length; ++i) fifo_pop (); + + /* without begin pair */ + if (child_tag == 0 || child_level == 0) { + assert (child_tag == 0 && child_level == 0); + message = string.joinv (null, group.index (tag).end); + /// Translators: please leave the '%s' construction without any changes. + prefix_error (last_symb_pos, + _(": Unexpected end tag sequence '%s' without begin tag pair."), + message); + throw new ParseError.ORPHAN_END (err_str); + } else if (tag + links.length == child_tag) { + assert (child_level != 0); + --child_level; + + if (child_level == 0) { + child_tag = 0; + subcontents = contents[subdoc_start.abspos:tag_left_abspos]; + + switch (tag) { + case TableTagType.CMIDRULE: + case TableTagType.CLINE: + if (tag == TableTagType.CMIDRULE) table.style = AddSpaces.Style.FORMAL; + + /* check is \cline's subcontents match {number-number} */ + if (Regex.match_simple ("^\\{[0-9]+-[0-9]+\\}$", subcontents)) { + if (Row.LinesType.CLINES != lines_type) + lines_to_last_row (); + lines_type = Row.LinesType.CLINES; + var cline_begin = int.parse (subcontents.offset (1)) - 1; + var cline_end = int.parse (subcontents.offset ( + subcontents.index_of_char ('-') + 1)) - 1; + while (clines.length () < cline_begin) + clines.append (0); + while (clines.length () <= cline_end) + clines.append (1); + } else { + prefix_error (subdoc_start, + _("\\cline parameters doesn't match {number-number} regexp.")); + throw new ParseError.SUBDOC (err_str); + } + break; + + case TableTagType.DBLBACKSLASHES: + case TableTagType.TABULARNEWLINE: + if (subcontents != "") { + var tmp = subcontents.compress (); + row.bottom = new AddSpace.with_params (tmp[1:-1]); + } + + subtable.add (row, Row.OpLineStyle.DEFAULT); + row = new Row (); + break; + + case TableTagType.NOALIGN: + process_spaces (Row.Style.DEFAULT, subcontents); + break; + + case TableTagType.ADDLINESPACE: + process_spaces (Row.Style.FORMAL_REST, subcontents); + break; + + default: + /* do nothing */ + break; + } + + subdoc_start.abspos = matched_tag_abspos_right; + subdoc_start.line = matched_tag_line; + subdoc_start.pos = matched_tag_pos; + } + } else { // (child_tag && child_level && tag+scanner->priv->nlinks != scanner->priv->child_tag) - global end + assert (child_level == 0); + + --child_level; + } + + break; + + default: + break; + } + + /* end of tabular */ + if (fifo_peek_head ().token == TokenType.EOF) { + subtable.after = contents.offset (subdoc_start.abspos).compress (); + + lines_to_last_row (); + + spaces_to_last_row (); + + table.table = subtable; + subtable = new Subtable (); + } + + return TokenType.NONE; + } + + } + } +} diff --git a/src/Tabular.vala b/src/Tabular.vala index e69de29..10cb847 100644 --- a/src/Tabular.vala +++ b/src/Tabular.vala @@ -0,0 +1,63 @@ +namespace LAview { + + namespace Table { + + /** + * Tabular in the LaTeX document. + * + * Specified by '\begin{tabular}' tag in the LaTeX code. + */ + public class Tabular : ATable { + + /** + * Constructs a new //Tabular// with default parameters. + */ + public Tabular () {} + + /** + * Width of the table. + * + * Possible values: [0-9]+(\.[0-9]+)?{bp,cc,cm,dd,em,ex,in,mm,pc,pt,sp, + * \textwidth,\columnwidth,\pagewidth,\linewidth, + * \textheight,\columnheight,\pageheight,\lineheight}. + */ + public string width = ""; + + /** + * Gets a copy of the //Tabular//. + */ + public override IDoc copy () { + var clone = base.copy () as Tabular; + clone.width = width; + return clone; + } + + /** + * Generates LaTeX string for the //Tabular//. + */ + public override string generate () { + var s = new StringBuilder (); + + if (params.size != 0) { + s.append_printf ("\\begin{tabular%s}", width != "" ? "*" : ""); + if (width != "") + s.append_printf ("{%s}", width); + else if (align != '\0') + s.append_printf ("[%c]", align); + + s.append_c ('{'); + s.append (params.generate ()); + s.append_c ('}'); + + table.style = style; + + s.append (table.generate ()); + + s.append_printf ("\\end{tabular%s}", width != "" ? "*" : ""); + } + + return s.str; + } + } + } +} diff --git a/src/TabularParser.vala b/src/TabularParser.vala new file mode 100644 index 0000000..d11061e --- /dev/null +++ b/src/TabularParser.vala @@ -0,0 +1,137 @@ +namespace LAview { + + namespace Parsers { + + using Table; + + class TabularParser : TableParser { + + public TabularParser (Array links) { + base (links); + } + + public override IDoc parse (string contents, size_t line, long position) throws ParseError { + + /* create empty tabular */ + var tabular = new Tabular (); + + /* set TeX tabular contents */ + this.contents = contents; + this.line = line; + this.position = position; + + /* get parameters string */ + var PARAM_REGEX_FIGBRANCHES = "\\{[^{}]*([^{}]*\\{[^{}]*\\}[^{}]*)*\\}"; + var param_regex = "^(\\[(t|b)])?" + PARAM_REGEX_FIGBRANCHES + "(" + + PARAM_REGEX_FIGBRANCHES + ")?"; + + string params = ""; + uint start_pos = 0, stop_pos = 0; + + try { + var regex = new Regex (param_regex); + + MatchInfo match_info; + regex.match (contents, 0, out match_info); + + if (match_info.matches ()) { + match_info.fetch_pos (0, out start_pos, out stop_pos); + params = match_info.fetch (0); + } else { + /// Translators: please leave the '%s' construction without any changes. + prefix_error (subdoc_start, + _("Incorrect tabular parameters doesn't match '%s' regexp."), + param_regex); + throw new ParseError.SUBDOC (err_str); + } + } catch (RegexError e) {} + + /* tabular align: [t], [b] */ + if (params[0] == '[') { + tabular.align = params[1]; + params = params.offset (3); + + } + + /* width */ + try { + if (Regex.match_simple (PARAM_REGEX_FIGBRANCHES + PARAM_REGEX_FIGBRANCHES, params)) { + var regex = new Regex (PARAM_REGEX_FIGBRANCHES); + MatchInfo match_info; + regex.match (params, 0, out match_info); + match_info.fetch_pos (0, out start_pos, out stop_pos); + var tmps = match_info.fetch (0); + tmps = tmps[1:tmps.length - 1]; + tmps = tmps.compress (); + tabular.width = tmps; + params = params.offset (stop_pos); + } + } catch (RegexError e) {} + + /* remove bound '{' '}' from params */ + params = params[1:params.length - 1]; + var col_params = new ColParams (); + + /* match reversed params so '|' will be snapped to the right column */ + try { + var regex = new Regex ("(" + + "\\|*}[^{}]+{(p\\|*|m\\|*|b\\|*)(}[^{}]+{>(\\|+$|\\||)|\\|)?" + + "|" + + "\\|*(r|c|l)(}[^{}]+{@(p\\|*|m\\|*|b\\|*) (r|c|l))?(\\|+$|\\||)" + + ")"); + params = params.reverse (); + MatchInfo match_info; + regex.match_full (params, -1, 0, 0, out match_info); + while (match_info.matches ()) { + var col_param = new ColParam.with_params (0, "", 0); + var word = match_info.fetch (0).reverse ().compress (); + int nllines, nrlines; + for (nllines = 0; '|' == word[nllines]; ++nllines); + for (nrlines = word.length - 1; nrlines != 0 && '|' == word[nrlines]; --nrlines); + var wlen = word.length; + word = word[0:nrlines + 1]; + col_param.align = word.offset (nllines); + col_param.nllines = nllines; + col_param.nrlines = wlen - 1 - nrlines; + col_params.insert (0, col_param); + match_info.next (); + } + } catch (RegexError e) {} + + /* === Parsing subtables === */ + tabular.params = col_params; + + /* set TeX document contents */ + this.contents = contents.offset (stop_pos); + + /* feed in the text */ + scanner.input_text (this.contents, this.contents.length); + + row_abs_pos = 0; + row = new Row (); + subtable = new Subtable (); + clines = new List (); + cell_abs_pos = 0; + + TokenType expected_token = TokenType.NONE; + + /* scanning loop, we scan the input until it's end is reached, + * the self encountered a lexing err, or our sub routine came + * across invalid syntax + */ + do { + expected_token = scan_tex_symbol (tabular); + + } while (expected_token == TokenType.NONE + && fifo_peek_head ().token != TokenType.EOF + && fifo_peek_head ().token != TokenType.ERROR); + + /* give an err message upon syntax errors */ + if (expected_token == TokenType.ERROR) + scanner.unexp_token (expected_token, null, "symbol", null, null, true); + + return tabular; + } + } + } +} diff --git a/src/TabularScanner.vala b/src/TabularScanner.vala deleted file mode 100644 index e69de29..0000000 diff --git a/src/Text.vala b/src/Text.vala index e69de29..6bb1995 100644 --- a/src/Text.vala +++ b/src/Text.vala @@ -0,0 +1,36 @@ +namespace LAview { + + /** + * Text in the LaTeX document. + */ + public class Text : ADoc { + + /** + * Plain text in UTF-8 string. + */ + public string text = ""; + + /** + * Constructs a new //Text//. + * + * @param text UTF-8 string. + */ + public Text (string text) { + this.text = text; + } + + /** + * Gets a copy of the //Text//. + */ + public override IDoc copy () { + return new Text (text); + } + + /** + * Generates LaTeX string for the //Text//. + */ + public override string generate () { + return text; + } + } +} diff --git a/src/TextParser.vala b/src/TextParser.vala new file mode 100644 index 0000000..3d5e224 --- /dev/null +++ b/src/TextParser.vala @@ -0,0 +1,21 @@ +namespace LAview { + + namespace Parsers { + + class TextParser : Parser { + + public TextParser (Array links) { + base (links); + } + + public override IDoc parse (string contents, size_t line, long position) throws ParseError { + + this.contents = contents; + this.line = line; + this.position = position; + + return new Text (contents.compress ()); + } + } + } +} diff --git a/src/TextScanner.vala b/src/TextScanner.vala deleted file mode 100644 index e69de29..0000000 diff --git a/src/gettext-config.h.in b/src/gettext-config.h.in new file mode 100644 index 0000000..e88d6ba --- /dev/null +++ b/src/gettext-config.h.in @@ -0,0 +1,11 @@ +#ifndef LAVIEW_LATEX_STRUCT_H +#define LAVIEW_LATEX_STRUCT_H + +#define GETTEXT_PACKAGE "laview-latex-struct-@LAVIEW_LATEX_STRUCT_VERSION_MAJOR@" +#include + +#ifdef WIN32 +#define _(String) dgettext (GETTEXT_PACKAGE, String) +#endif + +#endif // LAVIEW_LATEX_STRUCT_H diff --git a/src/main.vala b/src/main.vala index 82ff429..1f13b86 100644 --- a/src/main.vala +++ b/src/main.vala @@ -1,15 +1,99 @@ +/** + * LaTeX view. + * + * Public system of data view in the LaTeX format. + */ namespace LAview { - public errordomain ParseError { - UNEXPECTED_SYMBOL, - } - public void parse(string text) throws ParseError { - print("TeX successfully parsed!\n"); - if (0 != 0) - throw new ParseError.UNEXPECTED_SYMBOL("Parsing error!"); - } + string dos2unix (string dos_string) { + var unistring = new StringBuilder (); - public string plain_to_tex(string text) { - return "Parsed text here..."; + for (var i = 0; dos_string[i] != '\0'; ) { + if ('\r' == dos_string[i]) { + switch (dos_string[i + 1]) { + case '\r': + if ('\n' == dos_string[i + 2]) + i += 3; + break; + + case '\n': + i += 2; + break; + + default: + ++i; + break; + } + + unistring.append_c ('\n'); + } else { + unistring.append_c (dos_string[i++]); + } + } + + return unistring.str; + } + + /** + * Parses LaTeX plain text from UTF-8 string. + * + * @throws ParseError any error when parsing. + */ + public Glob parse(string text) throws Parsers.ParseError { + + /* escaping TeX document */ + var escaped_text = text.escape (" \n\r\t"); + + /* line breaks: dos -> unix */ + var u_escaped_text = dos2unix (escaped_text); + + /* TeX scanner initialization */ + var group = new Parsers.ParserFactory (); + var parser = new Parsers.GlobParser (group.group); + + /* parse TeX */ + var doc = parser.parse (u_escaped_text, 0, 0); + + return doc as Glob; + } + + /** + * Converts plain text string to LaTeX string. + */ + public string plain_to_tex(string text) { + var str = new StringBuilder (); + + for (var i = 0; text[i] != '\0'; ++i) { + switch (text[i]) { + case '$': + case '&': + case '%': + case '#': + case '_': + case '{': + case '}': + str.append_c ('\\'); + str.append_c (text[i]); + break; + + case '\\': + str.append ("\\textbackslash "); + break; + + case '~': + str.append ("\\~{}"); + break; + + case '^': + str.append ("\\^{}"); + break; + + default: + str.append_c (text[i]); + break; + } + } + + return str.str; } } diff --git a/src/vala_unsupported.c b/src/vala_unsupported.c new file mode 100644 index 0000000..5f69d31 --- /dev/null +++ b/src/vala_unsupported.c @@ -0,0 +1,34 @@ +#if defined(_WIN32) +#include +#endif + +#include "gettext-config.h" + +#if defined(_WIN32) +BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved) +#elif defined (__GNUC__) +void __attribute__ ((constructor)) laview_latex_struct_load (void) +#endif +{ +#if defined(_WIN32) + gchar dllPath[FILENAME_MAX], + *dllDir, + *localePath; + + GetModuleFileName (hInstance, dllPath, FILENAME_MAX); + dllDir = g_path_get_dirname (dllPath); + localePath = g_build_filename (dllDir, "../share/locale", NULL); + g_free (dllDir); + bindtextdomain (GETTEXT_PACKAGE, localePath); + g_free (localePath); +#endif + +#if (!GLIB_CHECK_VERSION (2, 36, 0)) + g_type_init (); + + (void) dwReason; + (void) lpReserved; + return TRUE; +#endif +} + diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt new file mode 100644 index 0000000..6fac8b4 --- /dev/null +++ b/test/CMakeLists.txt @@ -0,0 +1,390 @@ +INCLUDE (FindVala) +INCLUDE (UseVala) + +FIND_PACKAGE (PkgConfig REQUIRED) + +PKG_CHECK_MODULES (GEE REQUIRED gee-0.8) +INCLUDE_DIRECTORIES (${GEE_INCLUDE_DIRS}) + +INCLUDE_DIRECTORIES ("${CMAKE_BINARY_DIR}") +INCLUDE_DIRECTORIES ("${CMAKE_BINARY_DIR}/src") + +# add the executable +FILE (GLOB_RECURSE ParseTestSources RELATIVE ${CMAKE_SOURCE_DIR}/test ParseTest.vala) +VALA_PRECOMPILE (ParseTest_C ${ParseTestSources} + PACKAGES gee-0.8 posix + OPTIONS --thread ${VALA_DEBUG} + CUSTOM_VAPIS ${PROJECT_BINARY_DIR}/src/laview-latex-struct-${MAJOR}.vapi + GENERATE_VAPI + GENERATE_HEADER + ) +ADD_EXECUTABLE (ParseTest ${ParseTest_C}) +TARGET_LINK_LIBRARIES (ParseTest laview-latex-struct ${GEE_LIBRARIES}) + +# add ltable_test executable +FILE (GLOB_RECURSE LTableTestSources RELATIVE ${CMAKE_SOURCE_DIR}/test LTableTest.vala) +VALA_PRECOMPILE (LTableTest_C ${LTableTestSources} + PACKAGES gee-0.8 posix + OPTIONS --thread ${VALA_DEBUG} + CUSTOM_VAPIS ${PROJECT_BINARY_DIR}/src/laview-latex-struct-${MAJOR}.vapi + GENERATE_VAPI + GENERATE_HEADER + ) +ADD_EXECUTABLE (LTableTest ${LTableTest_C}) +TARGET_LINK_LIBRARIES (LTableTest laview-latex-struct ${GEE_LIBRARIES}) + +# parsing test macro +MACRO (do_parse_test testname table_path etalon_path regexp) + IF ("${etalon_path}" STREQUAL "") + SET (extra_args "") + ELSE () + SET (extra_args --etalon ${etalon_path}) + ENDIF () + ADD_TEST (ParseTest-${testname} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/ParseTest --table ${table_path} ${extra_args}) + SET_TESTS_PROPERTIES (ParseTest-${testname} + PROPERTIES PASS_REGULAR_EXPRESSION ${regexp} + FAIL_REGULAR_EXPRESSION "CRITICAL;WARNING") +ENDMACRO (do_parse_test) + +# test throttle.tex +do_parse_test (throttleList ${PROJECT_SOURCE_DIR}/test/tex/throttle.tex "" +"list all objects +LAviewText +LAviewTableLongtable +LAviewText +LAviewTableTabular +LAviewText +end of objects + +") + +# test throttle.tex +do_parse_test (includegraphicsWalk ${PROJECT_SOURCE_DIR}/test/tex/includegraphics.tex "" +"Walk through all objects +LAviewText +LAviewGraphics + width=0.000000. height=3.000000pt. path=174. + gen..=.includegraphics.height=3.000000pt.angle=25.scale=3.{174} +resized gen.. = .includegraphics.width=0.500000pt.height=6.000000dd.angle=25.scale=3.{174} +LAviewText +LAviewGraphics + width=12.000000cm. height=25.000000cm. path=151. + gen..=.includegraphics.width=12.000000cm.height=25.000000cm.{151} +resized gen.. = .includegraphics.width=0.500000pt.height=50.000000dd.{151} +LAviewText +end of objects + +") + +# test throttle.tex +do_parse_test (throttleCmp ${PROJECT_SOURCE_DIR}/test/tex/throttle.tex "" +"Original and generated text are EQUAL .-.") + +# test throttle.tex +do_parse_test (throttleErr1 ${PROJECT_SOURCE_DIR}/test/tex/throttle_err1.tex "" +"Error parsing TeX document: LAviewParsersGlobParser:33:15: : Unexpected end tag sequence '..end{longtable}' without begin tag pair. +.end{longtable} + .") + +# test throttle.tex +do_parse_test (throttleErr2 ${PROJECT_SOURCE_DIR}/test/tex/throttle_err2.tex "" +"Error parsing TeX document: LAviewParsersGlobParser:33:1: Begin tag sequence '..begin{longtable}' without end tag pair. +.begin{longtable} +. +") + +# test throttle.tex +do_parse_test (throttleErr3 ${PROJECT_SOURCE_DIR}/test/tex/throttle_err3.tex "" +"Error parsing TeX document: LAviewParsersGlobParser:34:1: Error parsing subdoc. +.begin{longtable} +. +LAviewParsersLongtableParser:55:46: Stop external tag sequence '..end{longtable}' without begin tag pair. +.multicolumn{2}{|l|}{ЗМГ} & & .end{longtable} & & & & .tabularnewline + . +") + +# test throttle.tex +do_parse_test (throttleErr4 ${PROJECT_SOURCE_DIR}/test/tex/throttle_err4.tex "" +"Error parsing TeX document: LAviewParsersGlobParser:33:13: : Unexpected end tag sequence '..end{tabular}' without begin tag pair. +.end{tabular} + .") + +# test throttle.tex +do_parse_test (throttleErr5 ${PROJECT_SOURCE_DIR}/test/tex/throttle_err5.tex "" +"Error parsing TeX document: LAviewParsersGlobParser:33:1: Begin tag sequence '..begin{tabular}' without end tag pair. +.begin{tabular} +. +") + +# test throttle.tex +do_parse_test (throttleErr6 ${PROJECT_SOURCE_DIR}/test/tex/throttle_err6.tex "" +"Error parsing TeX document: LAviewParsersGlobParser:34:1: Error parsing subdoc. +.begin{tabular} +. +LAviewParsersTabularParser:55:46: Stop external tag sequence '..end{tabular}' without begin tag pair. +.multicolumn{2}{|l|}{ЗМГ} & & .end{tabular} & & & & .tabularnewline + . +") + +# test formular.tex +do_parse_test (formularList ${PROJECT_SOURCE_DIR}/test/tex/formular.tex "" +"list all objects +LAviewText +LAviewTableLongtable +LAviewText +LAviewTableLongtable +LAviewText +LAviewTableLongtable +LAviewText +LAviewTableTabular +LAviewText +LAviewTableTabular +LAviewText +LAviewTableTabular +LAviewText +end of objects + +") + +# test formular.tex +do_parse_test (formularWalk ${PROJECT_SOURCE_DIR}/test/tex/formular.tex "" +"Walk through all objects +LAviewText +LAviewTableLongtable +LAviewText +LAviewTableLongtable +LAviewText +LAviewTableLongtable +LAviewText +LAviewTableTabular +LAviewText +LAviewTableTabular +LAviewText +LAviewTableTabular +LAviewText +end of objects + +") + +# test formular.tex +do_parse_test (formularCmp ${PROJECT_SOURCE_DIR}/test/tex/formular.tex "" +"Original and generated text are EQUAL .-.") + +# test formular.tex +do_parse_test (formularErr1 ${PROJECT_SOURCE_DIR}/test/tex/formular_err1.tex "" +"Error parsing TeX document: LAviewParsersGlobParser:192:15: : Unexpected end tag sequence '..end{longtable}' without begin tag pair. +.end{longtable} + .") + +# test formular.tex +do_parse_test (formularErr2 ${PROJECT_SOURCE_DIR}/test/tex/formular_err2.tex "" +"Error parsing TeX document: LAviewParsersGlobParser:44:1: Begin tag sequence '..begin{longtable}' without end tag pair. +.begin{longtable} +. +") + +# test for caption in all_subtables.tex +do_parse_test (captionTest ${PROJECT_SOURCE_DIR}/test/tex/all_subtables.tex "" +".begin{document} +.begin{longtable}{.c.c.} +.caption{Caption of the table} +") + +# test all_subtables.tex +do_parse_test (all_subtablesCmp ${PROJECT_SOURCE_DIR}/test/tex/all_subtables.tex "" +"Original and generated text are EQUAL .-.") + +# test all_subtables.tex +do_parse_test (linesCmp ${PROJECT_SOURCE_DIR}/test/tex/lines.tex ${PROJECT_SOURCE_DIR}/test/tex/lines.etalon.tex +"Original and generated text are EQUAL .-.") + +# test ltable_embedded.tex +do_parse_test (ltable_embedded ${PROJECT_SOURCE_DIR}/test/tex/ltable_embedded.tex "" +"Original and generated text are EQUAL .-.") + +# test ltable_double_embedded.tex +do_parse_test (ltable_double_embedded ${PROJECT_SOURCE_DIR}/test/tex/ltable_double_embedded.tex "" +"Original and generated text are EQUAL .-.") + +# test throttle_VK2500.tex +do_parse_test (throttle_VK2500Cmp ${PROJECT_SOURCE_DIR}/test/tex/throttle_VK2500.tex "" +"Original and generated text are EQUAL .-.") + +# test throttle_VK2500.tex +do_parse_test (throttle_VK2500PSCmp ${PROJECT_SOURCE_DIR}/test/tex/throttle_VK2500PS.tex "" +"Original and generated text are EQUAL .-.") + +# test throttle_VK2500_dos_newlines_.tex +do_parse_test (throttle_VK2500PS_dos_newlines_ListWalk ${PROJECT_SOURCE_DIR}/test/tex/throttle_VK2500PS_dos_newlines.tex "" +"list all objects +LAviewText +LAviewTableLongtable +LAviewText +LAviewTableLongtable +LAviewText +LAviewTableLongtable +LAviewText +LAviewTableLongtable +LAviewText +LAviewTableLongtable +LAviewText +end of objects + +Walk through all objects +LAviewText +LAviewTableLongtable +LAviewText +LAviewTableLongtable +LAviewText +LAviewTableLongtable +LAviewText +LAviewTableLongtable +LAviewText +LAviewTableLongtable +LAviewText +end of objects +") + +# test graph_in_ltable.tex +do_parse_test (graph_in_ltable ${PROJECT_SOURCE_DIR}/test/tex/graph_in_ltable.tex "" +" +list all objects +LAviewText +LAviewTableTabular +LAviewText +LAviewTableTabular +LAviewText +LAviewTableTabular +LAviewText +LAviewTableLongtable + LAviewTableLongtable +LAviewText +LAviewTableLongtable + LAviewGraphics + LAviewTableLongtable +LAviewText +end of objects + +Walk through all objects +LAviewText +LAviewTableTabular +LAviewText +LAviewTableTabular +LAviewText +LAviewTableTabular +LAviewText +LAviewTableLongtable +LAviewText +LAviewTableLongtable +LAviewText +end of objects +") + +# test ltable_square_arg.tex +do_parse_test (ltable_square_arg ${PROJECT_SOURCE_DIR}/test/tex/ltable_square_arg.tex "" +"Original and generated text are EQUAL .-.") + +# test table_in_table.tex +do_parse_test (table_in_table ${PROJECT_SOURCE_DIR}/test/tex/table_in_table.tex "" +" +list all objects +") + +# test unary_quotes.tex +do_parse_test (unary_quotes ${PROJECT_SOURCE_DIR}/test/tex/unary_quotes.tex "" +" +list all objects +LAviewText +LAviewTableTabular +LAviewText +LAviewTableTabular +LAviewText +LAviewTableTabular +LAviewText +LAviewTableTabular +LAviewText +end of objects + +Walk through all objects +LAviewText +LAviewTableTabular +LAviewText +LAviewTableTabular +LAviewText +LAviewTableTabular +LAviewText +LAviewTableTabular +LAviewText +end of objects +") + +# test back_slashes_in_a_table.tex +do_parse_test (back_slashes_in_a_table ${PROJECT_SOURCE_DIR}/test/tex/back_slashes_in_a_table.tex ${PROJECT_SOURCE_DIR}/test/tex/back_slashes_in_a_table.etalon.tex +"Original and generated text are EQUAL .-.") + +# ltable_test macro +macro (ltable_test testname tex_path1 tex_path2 operation regexp) + add_test (ltable_test-${testname} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/LTableTest ${tex_path1} ${tex_path2} ${operation}) +set_tests_properties (ltable_test-${testname} + PROPERTIES PASS_REGULAR_EXPRESSION ${regexp} + FAIL_REGULAR_EXPRESSION "CRITICAL;WARNING") +endmacro (ltable_test) + +# ltable_test rm0row +ltable_test (rm0row ${PROJECT_SOURCE_DIR}/test/tex/formular.tex ${PROJECT_SOURCE_DIR}/test/tex/ltable_rm0row.tex rm0row +"Etalon and generated text are EQUAL .-.") + +# ltable_test rm1row +ltable_test (rm1row ${PROJECT_SOURCE_DIR}/test/tex/formular.tex ${PROJECT_SOURCE_DIR}/test/tex/ltable_rm1row.tex rm1row +"Etalon and generated text are EQUAL .-.") + +# ltable_test rm1000row +ltable_test (rm1000row ${PROJECT_SOURCE_DIR}/test/tex/formular.tex ${PROJECT_SOURCE_DIR}/test/tex/ltable_rm1000row.tex rm1000row +"Etalon and generated text are EQUAL .-.") + +# ltable_test rm_last_row +ltable_test (rm_last_row ${PROJECT_SOURCE_DIR}/test/tex/formular.tex ${PROJECT_SOURCE_DIR}/test/tex/ltable_rm_last_row.tex rm_last_row +"Etalon and generated text are EQUAL .-.") + +# ltable_test clone_0_0 +ltable_test (clone_0_0 ${PROJECT_SOURCE_DIR}/test/tex/formular.tex ${PROJECT_SOURCE_DIR}/test/tex/ltable_clone_0_0.tex clone_0_0 +"Etalon and generated text are EQUAL .-.") + +# ltable_test clone_0_1 +ltable_test (clone_0_1 ${PROJECT_SOURCE_DIR}/test/tex/formular.tex ${PROJECT_SOURCE_DIR}/test/tex/ltable_clone_0_1.tex clone_0_1 +"Etalon and generated text are EQUAL .-.") + +# ltable_test clone_1_0 +ltable_test (clone_1_0 ${PROJECT_SOURCE_DIR}/test/tex/formular.tex ${PROJECT_SOURCE_DIR}/test/tex/ltable_clone_1_0.tex clone_1_0 +"Etalon and generated text are EQUAL .-.") + +# ltable_test clone_0_last +ltable_test (clone_0_last ${PROJECT_SOURCE_DIR}/test/tex/formular.tex ${PROJECT_SOURCE_DIR}/test/tex/ltable_clone_0_last.tex clone_0_last +"Etalon and generated text are EQUAL .-.") + +# ltable_test clone_last_0 +ltable_test (clone_last_0 ${PROJECT_SOURCE_DIR}/test/tex/formular.tex ${PROJECT_SOURCE_DIR}/test/tex/ltable_clone_last_0.tex clone_last_0 +"Etalon and generated text are EQUAL .-.") + +# ltable_test clone_0_lastp1 +ltable_test (clone_0_lastp1 ${PROJECT_SOURCE_DIR}/test/tex/formular.tex ${PROJECT_SOURCE_DIR}/test/tex/ltable_clone_0_lastp1.tex clone_0_lastp1 +"Etalon and generated text are EQUAL .-.") + +# ltable_test clone_lastp1_0 +ltable_test (clone_lastp1_0 ${PROJECT_SOURCE_DIR}/test/tex/formular.tex ${PROJECT_SOURCE_DIR}/test/tex/ltable_clone_lastp1_0.tex clone_lastp1_0 +"Etalon and generated text are EQUAL .-.") + +# ltable_test clone_0_1000 +ltable_test (clone_0_1000 ${PROJECT_SOURCE_DIR}/test/tex/formular.tex ${PROJECT_SOURCE_DIR}/test/tex/ltable_clone_0_1000.tex clone_0_1000 +"Etalon and generated text are EQUAL .-.") + +# ltable_test clone_1000_0 +ltable_test (clone_1000_0 ${PROJECT_SOURCE_DIR}/test/tex/formular.tex ${PROJECT_SOURCE_DIR}/test/tex/ltable_clone_1000_0.tex clone_1000_0 +"Etalon and generated text are EQUAL .-.") + +# ltable_test append_row0 +ltable_test (append_row0 ${PROJECT_SOURCE_DIR}/test/tex/table_rows.tex ${PROJECT_SOURCE_DIR}/test/tex/table_rows.etalon.tex append_row0 +"Etalon and generated text are EQUAL .-.") + +# enable testing +ENABLE_TESTING () diff --git a/test/LTableTest.vala b/test/LTableTest.vala new file mode 100644 index 0000000..2e25d86 --- /dev/null +++ b/test/LTableTest.vala @@ -0,0 +1,122 @@ +using LAview; + +public class Main : Object { + public static int main (string[] args) { + + Intl.setlocale (LocaleCategory.ALL, ""); + + assert (args.length == 4 || args.length == 5); + + /* load file contents */ + string contents; + try { + FileUtils.get_contents (args[1], out contents); + } catch (FileError e) { + stderr.printf ("error: %s\n", e.message); + return -1; + } + assert (contents != null && contents != ""); + + /* load etalon */ + string generated_etalon; + try { + FileUtils.get_contents (args[2], out generated_etalon); + } catch (FileError e) { + stderr.printf ("error: %s\n", e.message); + return -1; + } + assert (generated_etalon != null && generated_etalon != ""); + + /* parse TeX */ + Glob doc; + try { + doc = LAview.parse (contents); + stdout.printf ("TeX document successfully parsed\n"); + + } catch (Parsers.ParseError e) { + stderr.printf ("error: %s\n", e.message); + return -1; + } + + /* Perform several col/row operations */ + stdout.printf ("Walk through all objects\n"); + + foreach (var subdoc in doc) { + stdout.printf ("%s\n", subdoc.get_type ().name ()); + + if (subdoc.get_type ().name () == "LAviewTableLongtable") { + var ltable = subdoc as Table.Longtable; + + if (args[3] == "rm0row") { + ltable.remove_col (0); + } else if (args[3] == "rm1row") { + ltable.remove_col (1); + } else if (args[3] == "rm1000row") { + ltable.remove_col (1000); + } else if (args[3] == "rm_last_row") { + ltable.remove_col (ltable.params.size - 1); + } else if (args[3] == "clone_0_0") { + ltable.clone_col (0, 0, true); + } else if (args[3] == "clone_0_1") { + ltable.clone_col (0, 0, false); + } else if (args[3] == "clone_1_0") { + ltable.clone_col (1, 0, true); + } else if (args[3] == "clone_0_last") { + ltable.clone_col (0, ltable.params.size - 1, false); + } else if (args[3] == "clone_last_0") { + ltable.clone_col (ltable.params.size - 1, 0, true); + } else if (args[3] == "clone_0_lastp1") { + ltable.clone_col (0, ltable.params.size, false); + } else if (args[3] == "clone_lastp1_0") { + ltable.clone_col (ltable.params.size, 0, true); + } else if (args[3] == "clone_0_1000") { + ltable.clone_col (0, 1000, false); + } else if (args[3] == "clone_1000_0") { + ltable.clone_col (1000, 0, true); + } else if (args[3] == "append_row0") { + var table = ltable.table; + table.add (table.get (0).copy () as Table.Row); + } else { + stdout.printf ("Incorrect operation '%s' specified.\n", args[3]); + return -1; + } + } else if (subdoc.get_type ().name () == "LAviewTableTabular") { + if (args[3] == "append_row0") { + var tabular = subdoc as Table.Tabular; + var table = tabular.table; + table.add (table.get (0).copy () as Table.Row); + } + } + } + + /* generate plain-TeX document */ + var generated = doc.generate (); + + if (args[2] != null) { + try { + FileUtils.get_contents (args[2], out contents); + } catch (FileError e) { + stderr.printf ("error: %s\n", e.message); + return -1; + } + } + + if (contents == generated) + stdout.printf ("Etalon and generated text are EQUAL ;-)\n"); + else + stdout.printf ("Etalon and generated text are NOT EQUAL ;-(\n"); + + stdout.printf ("--- Generated plain-TeX (generated) ---\n%s", generated); + + if (args[4] != null ) { + try { + FileUtils.set_contents (args[4], generated); + } catch (FileError e) { + stderr.printf ("error: %s\n", e.message); + return -1; + } + } + + return 0; + } +} diff --git a/test/ParseTest.vala b/test/ParseTest.vala new file mode 100644 index 0000000..b4283a0 --- /dev/null +++ b/test/ParseTest.vala @@ -0,0 +1,141 @@ +using LAview; + +public class Main : Object { + + static string fname_table = ""; + static string fname_etalon = ""; + static string fname_write = ""; + + const OptionEntry [] options = { + { "table", 't', 0, OptionArg.FILENAME, ref fname_table, "File with a table", null }, + { "etalon", 'e', 0, OptionArg.FILENAME, ref fname_etalon, "File with etalon table", null }, + { "write", 'w', 0, OptionArg.FILENAME, ref fname_write, "File to write", null }, + { null } + }; + + public static int main (string[] args) { + + Intl.setlocale (LocaleCategory.ALL, ""); + + /* commandline arguments processing */ + try { + var opt_context = new OptionContext ("- tests LaTeX parser"); + opt_context.set_help_enabled (true); + opt_context.add_main_entries (options, null); + opt_context.parse (ref args); + } catch (OptionError e) { + stderr.printf ("error: %s\n", e.message); + stderr.printf ("Run '%s --help' to see a full list of available command line options.\n", args[0]); + return -1; + } + + /* read table */ + if (fname_table == null) { + stderr.printf ("Specify file with a table or read help (%s --help)", args[0]); + return -1; + } + + /* load file contents */ + string contents; + try { + FileUtils.get_contents (fname_table, out contents); + } catch (FileError e) { + stderr.printf ("error: %s\n", e.message); + return -1; + } + + /* parse TeX */ + Glob doc; + try { + doc = LAview.parse (contents); + stdout.printf ("TeX document successfully parsed\n"); + + } catch (Parsers.ParseError e) { + stderr.printf ("Error parsing TeX document: %s\n", e.message); + return -1; + } + + /* list all objects */ + stdout.printf ("list all objects\n"); + foreach (var subdoc in doc) { + stdout.printf ("%s\n", subdoc.get_type ().name ()); + + if (subdoc.get_type ().name () == "LAviewTableTabular" + || subdoc.get_type ().name () == "LAviewTableLongtable") { + + unowned Table.Subtable subtable = null; + + if (subdoc.get_type ().name () == "LAviewTableTabular") + subtable = (subdoc as Table.Tabular).table; + else + subtable = (subdoc as Table.Longtable).table; + + foreach (var row in subtable) { + foreach (var cell in (row as Table.Row)) { + var glob = (cell as Table.Cell).contents; + + foreach (var glob_subdoc in glob) { + if (glob_subdoc.get_type ().name () != "LAviewText") { + stdout.printf (" %s\n", glob_subdoc.get_type ().name ()); + } + } + } + } + } + } + stdout.printf ("end of objects\n\n"); + + /* walk through all objects */ + stdout.printf ("Walk through all objects\n"); + foreach (var subdoc in doc) { + stdout.printf ("%s\n", subdoc.get_type ().name ()); + + if (subdoc.get_type ().name () == "LAviewGraphics") { + var graphics = subdoc as Graphics; + stdout.printf (" width=%f%s, height=%f%s, path=%s,\n gen()=%s\n", + graphics.width, graphics.width_unit, graphics.height, graphics.height_unit, + graphics.path, graphics.generate ()); + + graphics = graphics.copy () as Graphics; + graphics.width = 1; + graphics.width /= 2; + graphics.width_unit = "pt"; + graphics.height *= 2; + graphics.height_unit = "dd"; + stdout.printf ("resized gen() = %s\n", graphics.generate ()); + } + } + stdout.printf ("end of objects\n\n"); + + /* generate plain-TeX document */ + var generated = doc.generate (); + + /* load etalon file */ + if (fname_etalon != null) { + try { + FileUtils.get_contents (fname_etalon, out contents); + } catch (FileError e) { + stderr.printf ("error: %s\n", e.message); + return -1; + } + } + + if (contents == generated) + stdout.printf ("Original and generated text are EQUAL ;-)\n"); + else + stdout.printf ("Original and generated text are NOT EQUAL ;-(\n"); + + stdout.printf ("--- Generated plain-TeX (generated) ---\n%s", generated); + + /* write to file */ + if (fname_write != null ) + try { + FileUtils.set_contents (fname_write, generated); + } catch (FileError e) { + stderr.printf ("error: %s\n", e.message); + return -1; + } + + return 0; + } +} diff --git a/test/tex/151.bmp b/test/tex/151.bmp new file mode 100644 index 0000000000000000000000000000000000000000..985844e1d4c307baf9a708bcb007f49114287110 GIT binary patch literal 7254 zcmd6r>u(!r6~@mySKpn)jvdFjJ9d(Gcgvz>7X+X9j>H%EkC6C;gjQmqXg?wZNPwui zxhL&zTG8fedwh#+HEEMLapE`^x0{sG;d$S2lBVqzA$7V~zdSi}=5n4nbKbG!AOGa% zT_ipqLx=JAqvn4`9U|X{{Qw`i_JxAHWbmuB-cgySU-HzaBDnErP}_Xft+O zGWKKawWaslQuUx9l&XVpvK|4;wc!12-|aQWL?M1+M)ytsTEkhWdGocl;z6)@7%CnH zGJBvk%kgLTe7Sc*w&u^&{l-D7Ado%)VL?~65n9^wezmSlzw%UBtx;-APFI}S zU0-3pRkR(Qx6o4+Re%F*MNMw&D^-1E*SXAb34BYtpd)+SvaqAhmN7Qr$EL6POe*eE zdJDFd%#I^d1-|0JIiAviTi`4m*owP&=vh7X6dFE3OQF%0Zv^sdrZ~F5oveA1wYJQm>wbl1 ziZqt-Ju&s#2|cV)u>x4BsuZj8>JIcAsaQqc02XE=$JMtR9>Uf8a>#ewF*6e|IH?)O)76(P}-oPos=F@dA&*Lp;UUP6gRZh zO*h)OvQBe3nlV~VO|AYlt?g1_gL0d+x{V2u3ssie7E~#}%_&qY!v^{m&B>6OuI&Dpz zwxl_&>638sG-501Cy~o^CQrInPGgzpUH2acCab<18{NBR`?~4MoT!V3+Wetw@z^te zdEiE7;kb1kG;Gu3)`g=>%pV8lkGqpkgLe)*qmPuol>?`y zvu@JHV=C`cd5@KAa%m5IJFuCR?Wy;dD5+LvdL+1TXd3AlV>h^?6ot9Fn|y<{3xg(WfL@ zlG(BaW63jn*41z>9+N%F`(R-`P2OP+Dk^D`=Fw!L8CgFfd5`Fk)n{=4OfJdN5(8|R z;F+7WIsg@Jk+BPuvnrmMX9h_rQj;X#6P~A;-XN()gk@M3BZQm6DZ=n;Jmbb~^_(PW zndBv|*7Jp7&SlT)*Tm{XScVU<48<&=hnGF`=YNL7Uow}TGW*VMY=1|Euu-k z@1N05Ly@OdWya&aLo}|bvxuRu;!tN@cH&lMz0#K)`L-9aI^$KRz50aLG3s&NaOr>7 z)IZ769}@5V<%5rI1R}p}>-emr=W}21(_rWCKzsE1YYBH=kJv}#_tB2en;`DI9*uq$ z?fOl$`_pL8uOr>R3Ppbz?ED33Kb71+Bl?)=dqm$CirCsj<{k5i@BkYK0IGjP^j)Iw z2>pQQDroEeL9q9S#DCFiC+ZZ6I7}4!mO$zA>aYX?L~SB~wt(nByepOoAc@C{uJS`<)>H(qAj!-=6p2}AB6v~JO?b3)C_Xrxh~r3PoVo^8 zWeNIbUcACvjBzOrBUJ>iC__&bVz3OXkuviCu49B|_^sFeX$+35B4F zLW)G1Lg=bClo*Z=4a*XIGN;3ZV>MN0vVzQO6-iq`T^S$f1)3~rXHP(9q(^%@qy1g~ zWfa~#D0c5XUxhrtT4Vhqy|JtP^(CStde7j~+Vuv- z!myP$ls?-P?g;kwM=|J_Xopk9kXW%K^UO=yyrWmv^Ea*Y|2Z#Q@uKGlV{qc~Xu6BZ z=&ejwVpl%-@Z-KnU#xrJ>fqJ>Xx~uZ&`^IO-V=}a4!)$Z-ogIfcyHfeuRV&3$6jU- zMPq#fJ<;xt_ORdU)fA;KG;l5cVRxW67Ky(fyEfRFxZ3~zmA?0ex<_6m(K9mGGcsT& biS8>G^o*clqGuRf8@`t4O+*469?kt94>YLn literal 0 HcmV?d00001 diff --git a/test/tex/174.jpg b/test/tex/174.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f9134142ed474faad3de245a61f174d132e18416 GIT binary patch literal 1068 zcmex=rNm5Eg zMpH#wOG8CnUDwFLT-U(XKwaI!$I{l>)x*<6+sr@I&n?8k-NO}R2qOc1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!&lGL(g_U}zk+RE+VA}p&Z&QNFV6{&Em!K_ z->Uyua{fnjl>DDxuk63Swg0i}b%l&mSwYHY<$a%*{QLgWeXjcV{az31ALeG%e}28< zKg0bk{}~>=_|MR~b>V-8^XnG>XQ;dUpP_s4tBC$5iD&wLpPT&q{!+P;`S<>6H)5*# zCw8sp`V;K7wj~3Z~*tW&~=U0dm zOa1D*tV|{wb7%jNj{w=WnKZBg9{p}z5 zPp9A6e}SIKF6`9o#hc8@c}(p3nbhlkxBV;d-5YPyZ$UZS4G)@%R0o zo~q2((eW@dSKK + + + + + +\begin_inset Text + +\begin_layout Plain Layout +firsthead +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +firsthead +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +head +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +head +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Caption + +\begin_layout Plain Layout +Caption of the table +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +foot +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +foot +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +lastfoot +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +lastfoot +\end_layout + +\end_inset + + + + +\end_inset + + +\end_layout + +\end_body +\end_document diff --git a/test/tex/all_subtables.tex b/test/tex/all_subtables.tex new file mode 100644 index 0000000..8584508 --- /dev/null +++ b/test/tex/all_subtables.tex @@ -0,0 +1,129 @@ +%% LyX 2.0.3 created this file. For more info, see http://www.lyx.org/. +%% Do not edit unless you really know what you are doing. +\documentclass[english]{article} +\usepackage[T1]{fontenc} +\usepackage[latin9]{inputenc} +\usepackage{longtable} + +\makeatletter + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LyX specific LaTeX commands. +%% Because html converters don't know tabularnewline +\providecommand{\tabularnewline}{\\} + +\makeatother + +\usepackage{babel} +\begin{document} +\begin{longtable}{|c|c|} +\caption{Caption of the table} +\tabularnewline +\hline +firsthead & firsthead\tabularnewline +\endfirsthead +\hline +head & head\tabularnewline +\endhead +foot & foot\tabularnewline +\hline +\endfoot +\hline +lastfoot & lastfoot\tabularnewline +\hline +\endlastfoot +\hline + & \tabularnewline +\hline + & \tabularnewline +\hline + & \tabularnewline +\hline + & \tabularnewline +\hline + & \tabularnewline +\hline + & \tabularnewline +\hline + & \tabularnewline +\hline + & \tabularnewline +\hline + & \tabularnewline +\hline + & \tabularnewline +\hline + & \tabularnewline +\hline + & \tabularnewline +\hline + & \tabularnewline +\hline + & \tabularnewline +\hline + & \tabularnewline +\hline + & \tabularnewline +\hline + & \tabularnewline +\hline + & \tabularnewline +\hline + & \tabularnewline +\hline + & \tabularnewline +\hline + & \tabularnewline +\hline + & \tabularnewline +\hline + & \tabularnewline +\hline + & \tabularnewline +\hline + & \tabularnewline +\hline + & \tabularnewline +\hline + & \tabularnewline +\hline + & \tabularnewline +\hline + & \tabularnewline +\hline + & \tabularnewline +\hline + & \tabularnewline +\hline + & \tabularnewline +\hline + & \tabularnewline +\hline + & \tabularnewline +\hline + & \tabularnewline +\hline + & \tabularnewline +\hline + & \tabularnewline +\hline + & \tabularnewline +\hline + & \tabularnewline +\hline + & \tabularnewline +\hline + & \tabularnewline +\hline + & \tabularnewline +\hline + & \tabularnewline +\hline + & \tabularnewline +\hline + & \tabularnewline +\hline + & \tabularnewline +\hline + & \tabularnewline +\end{longtable} +\end{document} diff --git a/test/tex/back_slashes_in_a_table.etalon.tex b/test/tex/back_slashes_in_a_table.etalon.tex new file mode 100644 index 0000000..708caae --- /dev/null +++ b/test/tex/back_slashes_in_a_table.etalon.tex @@ -0,0 +1,48 @@ +\documentclass[russian]{report} +\usepackage{array} + +\begin{document} + +% use of \tabularnewline +\begin{tabular}{|>{\centering}p{0.08\paperwidth}|>{\centering}b{0.08\paperwidth}|>{\centering}m{0.08\paperwidth}|} +\hline +A1 \\ aa A1 & B1 \\ aa B1 & C1 \\ aa C1 \tabularnewline +\hline +A1 & B1 & C1 \tabularnewline +\hline +A2 & B2 & C2 \tabularnewline +\hline +\end{tabular} + +% old style row endings +\begin{tabular}{|c|c|c|} +A \tabularnewline & B \tabularnewline & C \tabularnewline +A & B & C \tabularnewline C +\end{tabular} +\begin{tabular}{|c|c|c|} +A & B & C \tabularnewline +A & B & C \tabularnewline +\end{tabular} + +% use of \tabularnewline +\begin{longtable}{|>{\centering}p{0.08\paperwidth}|>{\centering}b{0.08\paperwidth}|>{\centering}m{0.08\paperwidth}|} +\hline +A1 \\ aa A1 & B1 \\ aa B1 & C1 \\ aa C1 \tabularnewline +\hline +A1 & B1 & C1 \tabularnewline +\hline +A2 & B2 & C2 \tabularnewline +\hline +\end{longtable} + +% old style row endings +\begin{longtable}{|c|c|c|} +A \tabularnewline & B \tabularnewline & C \tabularnewline +A & B & C \tabularnewline C +\end{longtable} +\begin{longtable}{|c|c|c|} +A & B & C \tabularnewline +A & B & C \tabularnewline +\end{longtable} + +\end{document} diff --git a/test/tex/back_slashes_in_a_table.tex b/test/tex/back_slashes_in_a_table.tex new file mode 100644 index 0000000..3be5d3a --- /dev/null +++ b/test/tex/back_slashes_in_a_table.tex @@ -0,0 +1,50 @@ +\documentclass[russian]{report} +\usepackage{array} + +\begin{document} + +% use of \tabularnewline +\begin{tabular}{|>{\centering}p{0.08\paperwidth}|>{\centering}b{0.08\paperwidth}|>{\centering}m{0.08\paperwidth}|} +\hline +A1 \\ aa A1 & B1 \\ aa B1 & C1 \\ aa C1 \tabularnewline +\hline +A1 & B1 & C1 \tabularnewline +\hline +A2 & B2 & C2 \tabularnewline +\hline +\end{tabular} + +% old style row endings +\begin{tabular}{|c|c|c|} +A \\ & B \\ & C \\ +A & B & C \\ +A & B & C +\end{tabular} +\begin{tabular}{|c|c|c|} +A & B & C \\ +A & B & C \\ +\end{tabular} + +% use of \tabularnewline +\begin{longtable}{|>{\centering}p{0.08\paperwidth}|>{\centering}b{0.08\paperwidth}|>{\centering}m{0.08\paperwidth}|} +\hline +A1 \\ aa A1 & B1 \\ aa B1 & C1 \\ aa C1 \tabularnewline +\hline +A1 & B1 & C1 \tabularnewline +\hline +A2 & B2 & C2 \tabularnewline +\hline +\end{longtable} + +% old style row endings +\begin{longtable}{|c|c|c|} +A \\ & B \\ & C \\ +A & B & C \\ +A & B & C +\end{longtable} +\begin{longtable}{|c|c|c|} +A & B & C \\ +A & B & C \\ +\end{longtable} + +\end{document} diff --git a/test/tex/formular.lyx b/test/tex/formular.lyx new file mode 100644 index 0000000..e6f0602 --- /dev/null +++ b/test/tex/formular.lyx @@ -0,0 +1,4377 @@ +#LyX file created by tex2lyx 2.0.3 +\lyxformat 413 +\begin_document +\begin_header +\textclass article +\begin_preamble +\usepackage{multirow} + + + +\usepackage{babel} + + + + + + + +\usepackage{babel} + + + + + + + +\usepackage{babel} + + + + + + +\usepackage{babel} + + + + + +\usepackage{babel} + +\end_preamble +\use_default_options false +\language russian +\language_package default +\inputencoding utf8x +\fontencoding T1 +\font_roman default +\font_sans default +\font_typewriter default +\font_default_family default +\font_sc false +\font_osf false +\font_sf_scale 100 +\font_tt_scale 100 +\graphics default +\paperfontsize default +\spacing single +\use_hyperref 0 +\papersize default +\use_geometry true +\use_amsmath 1 +\use_esint 1 +\use_mhchem 0 +\use_mathdots 0 +\cite_engine basic +\use_bibtopic false +\use_indices false +\paperorientation portrait +\suppress_date false +\use_refstyle 0 +\secnumdepth 3 +\tocdepth 3 +\paragraph_separation indent +\paragraph_indentation default +\quotes_language french +\papercolumns 1 +\papersides 1 +\paperpagestyle default +\tracking_changes false +\output_changes false +\html_math_output 0 +\html_css_as_file 0 +\html_be_strict false +\end_header + +\begin_body + +\begin_layout Standard +\align right + +ф. 07-726А +\end_layout + +\begin_layout Standard +\align center + + +\series bold +Формулярные данные по 06В.00.0100ВТУ +\series default + +\end_layout + +\begin_layout Standard +\align center + +двигателя ТВ7-117В № +\begin_inset CommandInset line +LatexCommand rule +offset "-1pt" +width "3.5cm" +height "0.4pt" + +\end_inset + + Температура наружного воздуха +\begin_inset Formula $t_{\text{н}}$ +\end_inset + +, +\begin_inset CommandInset line +LatexCommand rule +offset "-1pt" +width "1cm" +height "0.4pt" + +\end_inset + +, +\begin_inset Formula $\,^{\circ}\mbox{C}$ +\end_inset + + +\end_layout + +\begin_layout Standard + +от__________ +\begin_inset Quotes ard +\end_inset + + +\begin_inset CommandInset line +LatexCommand rule +offset "-1pt" +width "1.1cm" +height "0.4pt" + +\end_inset + + +\begin_inset Quotes ald +\end_inset + + +\begin_inset CommandInset line +LatexCommand rule +offset "-1pt" +width "2.5cm" +height "0.4pt" + +\end_inset + + 20 +\begin_inset space ~ + +\end_inset + + +\begin_inset space ~ + +\end_inset + + +\begin_inset space ~ + +\end_inset + + +\begin_inset space ~ + +\end_inset + +г. +\begin_inset space ~ + +\end_inset + + +\begin_inset space ~ + +\end_inset + + +\begin_inset space ~ + +\end_inset + + +\begin_inset space ~ + +\end_inset + + +\begin_inset space ~ + +\end_inset + + +\begin_inset space ~ + +\end_inset + +Давление наружного воздуха, +\begin_inset Formula $P_{\text{Н}}$ +\end_inset + + +\begin_inset CommandInset line +LatexCommand rule +offset "-1pt" +width "1cm" +height "0.4pt" + +\end_inset + + мм. рт. ст. +\end_layout + +\begin_layout Standard + +Drossel55.Table1 +\end_layout + +\begin_layout Standard + + +\begin_inset Tabular + + + + + + + + + + + +\begin_inset Text + +\begin_layout Standard + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +multirow +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{ +\end_layout + +\end_inset + +2 +\begin_inset ERT +status collapsed + +\begin_layout Standard + +} +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{ +\end_layout + +\end_inset + +0.11 +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +paperwidth +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +} +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{ +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +centering +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{} +\end_layout + +\end_inset + + +\begin_inset Newline linebreak +\end_inset + + Режим работы двигателя +\begin_inset ERT +status collapsed + +\begin_layout Standard + +} +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +multirow +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{ +\end_layout + +\end_inset + +2 +\begin_inset ERT +status collapsed + +\begin_layout Standard + +} +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{ +\end_layout + +\end_inset + +0.1 +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +paperwidth +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +} +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{ +\end_layout + +\end_inset + + +\series bold + +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +centering +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{} +\end_layout + +\end_inset + + +\series default + +\begin_inset Newline linebreak +\end_inset + + Мощность на выводном валу +\series bold +N л.с. +\series default + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +} +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +Частота вращения ротора +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +multirow +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{ +\end_layout + +\end_inset + +2 +\begin_inset ERT +status collapsed + +\begin_layout Standard + +} +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{ +\end_layout + +\end_inset + +0.1 +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +paperwidth +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +} +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{ +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +centering +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{} +\end_layout + +\end_inset + +Температура газа перед свободнойтурбиной не более +\series bold +t +\begin_inset Formula $_{4}$ +\end_inset + + +\series default +, +\begin_inset Formula $\,^{\circ}\mbox{C}$ +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +} +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +multirow +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{ +\end_layout + +\end_inset + +2 +\begin_inset ERT +status collapsed + +\begin_layout Standard + +} +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{ +\end_layout + +\end_inset + +0.09 +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +paperwidth +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +} +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{ +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +centering +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{} +\end_layout + +\end_inset + +Удельный расход топлива не более +\series bold +C +\begin_inset Formula $_{R\text{ пр}}$ +\end_inset + + +\series default +г/л.с.ч. +\begin_inset ERT +status collapsed + +\begin_layout Standard + +} +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +турбо-компрессора не более +\series bold +n +\begin_inset Formula $_{\text{тк пр}}$ +\end_inset + + +\series default +, % +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +свободной турбины +\series bold +n +\begin_inset Formula $_{\lyxmathsym{ст}}$ +\end_inset + + +\series default +, % +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + + + +\begin_inset Text + +\begin_layout Standard + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +multirow +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{ +\end_layout + +\end_inset + +2 +\begin_inset ERT +status collapsed + +\begin_layout Standard + +} +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{ +\end_layout + +\end_inset + +0.11 +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +paperwidth +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +} +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{ +\end_layout + +\end_inset + +*2,5-минутной мощности +\begin_inset ERT +status collapsed + +\begin_layout Standard + +} +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +ТУ +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +101,0 +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +98 +\begin_inset Formula $\pm$ +\end_inset + +0,5 +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +805 +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +- +\end_layout + +\end_inset + + + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +Факт +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + + + +\begin_inset Text + +\begin_layout Standard + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +multirow +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{ +\end_layout + +\end_inset + +2 +\begin_inset ERT +status collapsed + +\begin_layout Standard + +} +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{ +\end_layout + +\end_inset + +0.11 +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +paperwidth +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +} +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{ +\end_layout + +\end_inset + +30-минутной мощности +\begin_inset ERT +status collapsed + +\begin_layout Standard + +} +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +ТУ +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +3000 +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +98,5 +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +98 +\begin_inset Formula $\pm$ +\end_inset + +0,5 +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +795 +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +- +\end_layout + +\end_inset + + + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +Факт +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + + + +\begin_inset Text + +\begin_layout Standard + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +multirow +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{ +\end_layout + +\end_inset + +2 +\begin_inset ERT +status collapsed + +\begin_layout Standard + +} +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{ +\end_layout + +\end_inset + +0.11 +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +paperwidth +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +} +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{ +\end_layout + +\end_inset + +ВЗЛ +\begin_inset ERT +status collapsed + +\begin_layout Standard + +} +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +ТУ +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +2800 +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +97,5 +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +98 +\begin_inset Formula $\pm$ +\end_inset + +0,5 +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +775 +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +205 +\end_layout + +\end_inset + + + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +Факт +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + + + +\begin_inset Text + +\begin_layout Standard + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +multirow +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{ +\end_layout + +\end_inset + +2 +\begin_inset ERT +status collapsed + +\begin_layout Standard + +} +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{ +\end_layout + +\end_inset + +0.11 +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +paperwidth +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +} +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{ +\end_layout + +\end_inset + +МП +\begin_inset ERT +status collapsed + +\begin_layout Standard + +} +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +ТУ +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +2100 +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +94,0 +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +98 +\begin_inset Formula $\pm$ +\end_inset + +0,5 +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +705 +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +- +\end_layout + +\end_inset + + + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +Факт +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + + + +\begin_inset Text + +\begin_layout Standard + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +multirow +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{ +\end_layout + +\end_inset + +2 +\begin_inset ERT +status collapsed + +\begin_layout Standard + +} +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{ +\end_layout + +\end_inset + +0.11 +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +paperwidth +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +} +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{ +\end_layout + +\end_inset + +МКр +\begin_inset ERT +status collapsed + +\begin_layout Standard + +} +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +ТУ +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +1900 +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +93,0 +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +98 +\begin_inset Formula $\pm$ +\end_inset + +0,5 +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +680 +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +221 +\end_layout + +\end_inset + + + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +Факт +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + + + +\begin_inset Text + +\begin_layout Standard + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +multirow +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{ +\end_layout + +\end_inset + +2 +\begin_inset ERT +status collapsed + +\begin_layout Standard + +} +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{ +\end_layout + +\end_inset + +0.11 +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +paperwidth +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +} +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{ +\end_layout + +\end_inset + +* ЗМГ +\begin_inset ERT +status collapsed + +\begin_layout Standard + +} +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +ТУ +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +- +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +- +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +80 +\begin_inset Formula $\pm$ +\end_inset + +0,5 +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +- +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +- +\end_layout + +\end_inset + + + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +Факт +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + + + +\end_inset + + +\end_layout + +\begin_layout Standard +\align left + +* - измеренные параметры +\begin_inset space \hspace*{} +\length 1in +\end_inset + + +\series bold + +\shape smallcaps +Настроечные параметры +\shape default + +\series default + +\end_layout + +\begin_layout Standard +\align left + +Drossel55.Table2 +\lang english + +\lang english + +\begin_inset Tabular + + + + + + + + + +\begin_inset Text + +\begin_layout Standard + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +centering +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{} +\end_layout + +\end_inset + + +\series bold +Параметр +\series default + +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +multirow +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{ +\end_layout + +\end_inset + +2 +\begin_inset ERT +status collapsed + +\begin_layout Standard + +} +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{ +\end_layout + +\end_inset + +0.1 +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +paperwidth +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +} +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{ +\end_layout + +\end_inset + + +\series bold + +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +centering +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{} +\end_layout + +\end_inset + +Обозначение +\series default + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +} +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +multirow +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{ +\end_layout + +\end_inset + +2 +\begin_inset ERT +status collapsed + +\begin_layout Standard + +} +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{ +\end_layout + +\end_inset + +0.1 +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +paperwidth +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +} +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{ +\end_layout + +\end_inset + + +\series bold + +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +centering +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{} +\end_layout + +\end_inset + +Режим +\series default + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +} +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +multirow +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{ +\end_layout + +\end_inset + +2 +\begin_inset ERT +status collapsed + +\begin_layout Standard + +} +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{ +\end_layout + +\end_inset + +0.1 +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +paperwidth +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +} +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{ +\end_layout + +\end_inset + + +\series bold + +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +centering +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{} +\end_layout + +\end_inset + +Значение, полученное при испытании +\series default + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +} +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Standard + + +\series bold +Наименование и единица измерения +\series default + +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + + + +\begin_inset Text + +\begin_layout Standard + + 1 +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +2 +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +3 +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +4 +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Standard + + +\begin_inset Box Frameless +position "t" +hor_pos "c" +has_inner_box 1 +inner_pos "t" +use_parbox 0 +use_makebox 0 +width "45col%" +special "none" +height "1in" +height_special "totalheight" +status open + + +\begin_layout Plain Layout + +Настроечная величина частоты вращения +\end_layout + +\begin_layout Plain Layout + +ротора турбокомпрессора, % +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +centering +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{} +\end_layout + +\end_inset + + +\begin_inset Formula $n_{\text{тк\_мг}}0$ +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +МГ +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + + + +\begin_inset Text + +\begin_layout Standard + + +\begin_inset Box Frameless +position "t" +hor_pos "c" +has_inner_box 1 +inner_pos "t" +use_parbox 0 +use_makebox 0 +width "45col%" +special "none" +height "1in" +height_special "totalheight" +status open + + +\begin_layout Plain Layout + +Настроечная величина частоты вращения +\end_layout + +\begin_layout Plain Layout + +ротора турбокомпрессора, % +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +centering +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{} +\end_layout + +\end_inset + + +\begin_inset Formula $n_{\text{тк\_взл}}0$ +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + + +\begin_inset Quotes ard +\end_inset + +Взлёт +\begin_inset Quotes ald +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + + + +\begin_inset Text + +\begin_layout Standard + + +\begin_inset Box Frameless +position "c" +hor_pos "c" +has_inner_box 1 +inner_pos "c" +use_parbox 0 +use_makebox 0 +width "45col%" +special "none" +height "1in" +height_special "totalheight" +status open + + +\begin_layout Plain Layout + +Настроечная величина минимальной частоты вращения ротора турбокомпрессора, % +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +centering +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{} +\end_layout + +\end_inset + + +\begin_inset Formula $n_{\text{тк\_мин}}0$ +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +МГ +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + + + +\begin_inset Text + +\begin_layout Standard + + +\begin_inset Box Frameless +position "t" +hor_pos "c" +has_inner_box 1 +inner_pos "t" +use_parbox 0 +use_makebox 0 +width "45col%" +special "none" +height "1in" +height_special "totalheight" +status open + + +\begin_layout Plain Layout + +Настроечная величина перестройки частоты вращения ротора турбокомпрессора при +\begin_inset Quotes ard +\end_inset + +Разрешении РПМ +\begin_inset Quotes ald +\end_inset + +,% +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +centering +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{} +\end_layout + +\end_inset + + +\begin_inset Formula $\Delta n_{\text{тк\_взл}}0$ +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + + +\begin_inset Quotes ard +\end_inset + +Взлёт +\begin_inset Quotes ald +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + + + +\begin_inset Text + +\begin_layout Standard + + +\begin_inset Box Frameless +position "t" +hor_pos "c" +has_inner_box 1 +inner_pos "t" +use_parbox 0 +use_makebox 0 +width "45col%" +special "none" +height "1in" +height_special "totalheight" +status open + + +\begin_layout Plain Layout + +Настроечная величина перестройки частоты вращения ротора турбокомпрессора по команде +\begin_inset Quotes ard +\end_inset + +Тренировочный режим +\begin_inset Quotes ald +\end_inset + +, % +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +centering +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{} +\end_layout + +\end_inset + + +\begin_inset Formula $\Delta n_{\text{тк\_тр}}0$ +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + + +\begin_inset Quotes ard +\end_inset + +Взлёт +\begin_inset Quotes ald +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + + + +\begin_inset Text + +\begin_layout Standard + + +\begin_inset Box Frameless +position "t" +hor_pos "c" +has_inner_box 1 +inner_pos "t" +use_parbox 0 +use_makebox 0 +width "45col%" +special "none" +height "1in" +height_special "totalheight" +status open + + +\begin_layout Plain Layout + +Расходный коэффициент 1-го контура форсунок +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +centering +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{} +\end_layout + +\end_inset + + +\begin_inset Formula $\Psi_{(\mu F)}$ +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +- +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + + + +\begin_inset Text + +\begin_layout Standard + + +\begin_inset Box Frameless +position "t" +hor_pos "c" +has_inner_box 1 +inner_pos "t" +use_parbox 0 +use_makebox 0 +width "45col%" +special "none" +height "1in" +height_special "totalheight" +status open + + +\begin_layout Plain Layout + +Программный расход топлива в РС, кг/ч +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +centering +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{} +\end_layout + +\end_inset + + +\begin_inset Formula $G_{\text{т прог РС МГ}}$ +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +- +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + + + +\begin_inset Text + +\begin_layout Standard + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +multirow +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{ +\end_layout + +\end_inset + +2 +\begin_inset ERT +status collapsed + +\begin_layout Standard + +} +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{ +\end_layout + +\end_inset + +0.15 +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +paperwidth +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +} +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{ +\end_layout + +\end_inset + +Параметры измерителя крутящего момента +\lang english + +\lang english + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +} +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +Начальное смещение, град +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +centering +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{} +\end_layout + +\end_inset + + +\begin_inset Formula $\phi_{\text{икм}}0$ +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +multirow +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{ +\end_layout + +\end_inset + +2 +\begin_inset ERT +status collapsed + +\begin_layout Standard + +} +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{ +\end_layout + +\end_inset + +0.1 +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +paperwidth +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +} +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{ +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +centering +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{} +\end_layout + +\end_inset + +- +\begin_inset ERT +status collapsed + +\begin_layout Standard + +} +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +Коэффициент характеристики +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +centering +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{} +\end_layout + +\end_inset + + +\begin_inset Formula $K$ +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + + + +\end_inset + + +\end_layout + +\begin_layout Standard + +Расход масла, л/ч +\begin_inset CommandInset line +LatexCommand rule +offset "-1pt" +width "2cm" +height "0.4pt" + +\end_inset + + (не более 0,2) +\end_layout + +\begin_layout Standard +\align left + + +\series bold +Зависимость между положением дозирующей иглы и расходом топлива +\begin_inset Formula $G_{\text{т}}=f(\alpha_{\text{дк}})$ +\end_inset + + +\series default + +\end_layout + +\begin_layout Standard +\align left + +Drossel55.Table3 +\end_layout + +\begin_layout Standard +\align left + + +\begin_inset Tabular + + + + + + + + + + + + + + + + +\begin_inset Text + +\begin_layout Standard + +Параметр +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +Значение, полученное при испытании +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + + + +\begin_inset Text + +\begin_layout Standard + +Наименование и единица измерения +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +Обозначение +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +1 +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +2 +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +3 +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +4 +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +5 +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +6 +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +7 +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +8 +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +9 +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +10 +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Standard + +Положение дозирующей иглы, град +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + + +\begin_inset Formula $(\alpha_{\text{дк}})$ +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + + + +\begin_inset Text + +\begin_layout Standard + +Расход топлива, кг/ч +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + + +\begin_inset Formula $G_{\text{Т}}$ +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + + + +\begin_inset Text + +\begin_layout Standard + +Исполнитель +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +Инженер по испытаниям +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + + +\begin_inset Box Frameless +position "t" +hor_pos "c" +has_inner_box 1 +inner_pos "t" +use_parbox 0 +use_makebox 0 +width "10col%" +special "none" +height "1in" +height_special "totalheight" +status open + + +\begin_layout Plain Layout + +Начальник БТК ИК +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + + +\begin_inset Box Frameless +position "t" +hor_pos "c" +has_inner_box 1 +inner_pos "t" +use_parbox 0 +use_makebox 0 +width "15col%" +special "none" +height "1in" +height_special "totalheight" +status open + + +\begin_layout Plain Layout + +Начальник участка ИД +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + + +\begin_inset Box Frameless +position "t" +hor_pos "c" +has_inner_box 1 +inner_pos "t" +use_parbox 0 +use_makebox 0 +width "15col%" +special "none" +height "1in" +height_special "totalheight" +status open + + +\begin_layout Plain Layout + +Представитель заказчика +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + + + +\end_inset + + +\end_layout + +\begin_layout Standard + + +\begin_inset Graphics + filename 151.eps + width 12cm + height 25cm + +\end_inset + + +\end_layout + +\end_body +\end_document diff --git a/test/tex/formular.tex b/test/tex/formular.tex new file mode 100644 index 0000000..c71d52a --- /dev/null +++ b/test/tex/formular.tex @@ -0,0 +1,359 @@ +%% LyX 2.0.3 created this file. For more info, see http://www.lyx.org/. +%% Do not edit unless you really know what you are doing. +\documentclass[english,russian]{article} +\usepackage[T1]{fontenc} +\usepackage[utf8x]{inputenc} +\usepackage{geometry} +\geometry{verbose} +\usepackage{array} +\usepackage{longtable} +\usepackage{textcomp} +\usepackage{amstext} +\usepackage{graphicx} + +\makeatletter + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LyX specific LaTeX commands. +\DeclareRobustCommand{\cyrtext}{% + \fontencoding{T2A}\selectfont\def\encodingdefault{T2A}} +\DeclareRobustCommand{\textcyr}[1]{\leavevmode{\cyrtext #1}} +\AtBeginDocument{\DeclareFontEncoding{T2A}{}{}} + +\newcommand{\lyxmathsym}[1]{\ifmmode\begingroup\def\b@ld{bold} + \text{\ifx\math@version\b@ld\bfseries\fi#1}\endgroup\else#1\fi} + +%% Because html converters don't know tabularnewline +\providecommand{\tabularnewline}{\\} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands. +\usepackage{multirow} + + + +\usepackage{babel} + + + + + + +\usepackage{babel} + + + + + + +\usepackage{babel} + + + + + +\usepackage{babel} + + +\makeatother + +\usepackage{babel} +\begin{document} +\begin{flushright} +ф. 07-726А +\par\end{flushright} + +\begin{center} +\textbf{Формулярные данные по 06В.00.0100ВТУ} +\par\end{center} + +\begin{center} +двигателя ТВ7-117В №\rule[-1pt]{3.5cm}{0.4pt} Температура наружного +воздуха $t_{\text{н}}$, \rule[-1pt]{1cm}{0.4pt}, $\,^{\circ}\mbox{C}$ +\par\end{center} + +от\_\_\_\_\_\_\_\_\_\_ <<\rule[-1pt]{1.1cm}{0.4pt}>> \rule[-1pt]{2.5cm}{0.4pt} +20~~~~г.~~~~~~Давление наружного воздуха, $P_{\text{Н}}$\rule[-1pt]{1cm}{0.4pt} +мм. рт. ст. + +Drossel55.Table1 + +\begin{longtable}{|>{\raggedright}m{0.11\paperwidth}|>{\centering}m{0.04\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.09\paperwidth}|>{\centering}m{0.09\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.09\paperwidth}|} +\hline + \newpage +\multirow{2}{0.11\paperwidth}{\centering{}\linebreak{} + Режим работы двигателя} & & \multirow{2}{0.1\paperwidth}{\textbf{\centering{}}\linebreak{} + Мощность на выводном валу \textbf{N л.с.} } & \multicolumn{2}{c|}{Частота вращения ротора} & \multirow{2}{0.1\paperwidth}{\centering{}Температура газа +перед свободнойтурбиной не более \textbf{t$_{4}$},$\,^{\circ}\mbox{C}$} & \multirow{2}{0.09\paperwidth}{\centering{}Удельный расход +топлива не более \textbf{C$_{R\text{ пр}}$}г/л.с.ч.}\tabularnewline +\hline + & & & турбо-компрессора не более \textbf{n$_{\text{тк пр}}$}, \% & свободной турбины \textbf{n$_{\lyxmathsym{ст}}$}, \% & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{{*}2,5-минутной мощности} & ТУ & & 101,0 & 98$\pm$0,5 & 805 & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{30-минутной мощности} & ТУ & 3000 & 98,5 & 98$\pm$0,5 & 795 & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{ВЗЛ} & ТУ & 2800 & 97,5 & 98$\pm$0,5 & 775 & 205\tabularnewline +\hline +\newpage & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{МП} & ТУ & 2100 & 94,0 & 98$\pm$0,5 & 705 & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{МКр} & ТУ & 1900 & 93,0 & 98$\pm$0,5 & 680 & 221\tabularnewline +\hline \newpage + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{{*} ЗМГ} & ТУ & - & - & 80$\pm$0,5 & - & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\end{longtable} + +\begin{flushleft} +{*} - измеренные параметры\hspace*{1in}\textbf{\textsc{Настроечные +параметры}} +\par\end{flushleft} + +\begin{flushleft} +Drossel55.Table2\foreignlanguage{english}{}% +\begin{longtable}{|>{\centering}m{0.15\paperwidth}|>{\centering}m{0.15\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\raggedright}m{0.19\paperwidth}|} +\hline +\multicolumn{2}{|>{\centering}m{0.2\paperwidth}|}{\centering{}\textbf{Параметр} } & \multirow{2}{0.1\paperwidth}{\textbf{\centering{}Обозначение}} & \multirow{2}{0.1\paperwidth}{\textbf{\centering{}Режим}} & \multirow{2}{0.1\paperwidth}{\textbf{\centering{}Значение, +полученное при испытании}} \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.2\paperwidth}|}{ \textbf{Наименование и единица измерения} } & & & \tabularnewline +\endhead +\hline\newpage +\multicolumn{2}{|c|}{ 1 } & 2 & 3 & 4 \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.2\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина частоты вращения + +ротора турбокомпрессора, \%% +\end{minipage}} & \centering{}$n_{\text{тк\_мг}}0$ & МГ & \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.08\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина частоты вращения + +ротора турбокомпрессора, \%% +\end{minipage}} & \centering{}$n_{\text{тк\_взл}}0$ & <<Взлёт>> & \tabularnewline +\hline +\multicolumn{2}{|c|}{ % +\begin{minipage}[c]{0.45\columnwidth}% +Настроечная величина минимальной частоты вращения ротора турбокомпрессора, +\%% +\end{minipage}} & \centering{}$n_{\text{тк\_мин}}0$ & МГ & \tabularnewline +\hline\newpage +\multicolumn{2}{|c|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина перестройки частоты вращения ротора турбокомпрессора +при <<Разрешении РПМ>>,\%% +\end{minipage}} & \centering{}$\Delta n_{\text{тк\_взл}}0$ & <<Взлёт>> & \tabularnewline +\hline +\newpage\multicolumn{2}{|>{\centering}p{0.08\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина перестройки частоты вращения ротора турбокомпрессора +по команде <<Тренировочный режим>>, \%% +\end{minipage}} & \centering{}$\Delta n_{\text{тк\_тр}}0$ & <<Взлёт>> & \tabularnewline +\hline +\multicolumn{2}{|c|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Расходный коэффициент 1-го контура форсунок% +\end{minipage}} & \centering{}$\Psi_{(\mu F)}$ & - & \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.1\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Программный расход топлива в РС, кг/ч% +\end{minipage}} & \centering{}$G_{\text{т прог РС МГ}}$ & - & \tabularnewline +\hline +\multirow{2}{0.15\paperwidth}{Параметры измерителя крутящего +момента\foreignlanguage{english}{ } } & Начальное смещение, град & \centering{}$\phi_{\text{икм}}0$ & \multirow{2}{0.1\paperwidth}{\centering{}-} & \tabularnewline +\hline + & Коэффициент характеристики & \centering{}$K$ & & \tabularnewline +\hline +\end{longtable} +\par\end{flushleft} + +Расход масла, л/ч \rule[-1pt]{2cm}{0.4pt} (не более 0,2) + +\begin{flushleft} +\textbf{Зависимость между положением дозирующей иглы и расходом топлива +$G_{\text{т}}=f(\alpha_{\text{дк}})$} +\par\end{flushleft} + +\begin{flushleft} +Drossel55.Table3 +\par\end{flushleft} + +\begin{flushleft} +\begin{longtable}{|>{\centering}p{0.15\paperwidth}|>{\centering}p{0.1\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|} +\toprule +\multicolumn{2}{|c|}{Параметр} & \multicolumn{10}{c|}{Значение, полученное при испытании}\tabularnewline +\midrule +Наименование и единица измерения & Обозначение & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10\tabularnewline +\midrule + \newpage Положение дозирующей иглы, град & $(\alpha_{\text{дк}})$ & & & & & & & & & & \tabularnewline +\midrule +Расход топлива, кг/ч & $G_{\text{Т}}$ & & & & & & & & & & \tabularnewline +\midrule +\newpage Исполнитель & Инженер по испытаниям & \multicolumn{3}{c|}{% +\begin{minipage}[t]{0.1\columnwidth}% +Начальник БТК ИК% +\end{minipage}} & \multicolumn{4}{>{\centering}p{0.15\paperwidth}|}{% +\begin{minipage}[t]{0.15\columnwidth}% +Начальник участка ИД% +\end{minipage}} & \multicolumn{3}{c|}{% +\begin{minipage}[t]{0.15\columnwidth}% +Представитель заказчика% +\end{minipage}}\tabularnewline +\midrule + & & \multicolumn{3}{c|}{} & \multicolumn{4}{c|}{} & \multicolumn{3}{c|}{}\tabularnewline +\bottomrule +\end{longtable} +\par\end{flushleft} + +\begin{tabular}{|>{\raggedright}m{0.11\paperwidth}|>{\centering}m{0.04\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.09\paperwidth}|>{\centering}m{0.09\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.09\paperwidth}|} +\hline + \newpage +\multirow{2}{0.11\paperwidth}{\centering{}\linebreak{} + Режим работы двигателя} & & \multirow{2}{0.1\paperwidth}{\textbf{\centering{}}\linebreak{} + Мощность на выводном валу \textbf{N л.с.} } & \multicolumn{2}{c|}{Частота вращения ротора} & \multirow{2}{0.1\paperwidth}{\centering{}Температура газа +перед свободнойтурбиной не более \textbf{t$_{4}$},$\,^{\circ}\mbox{C}$} & \multirow{2}{0.09\paperwidth}{\centering{}Удельный расход +топлива не более \textbf{C$_{R\text{ пр}}$}г/л.с.ч.}\tabularnewline +\hline + & & & турбо-компрессора не более \textbf{n$_{\text{тк пр}}$}, \% & свободной турбины \textbf{n$_{\lyxmathsym{ст}}$}, \% & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{{*}2,5-минутной мощности} & ТУ & & 101,0 & 98$\pm$0,5 & 805 & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{30-минутной мощности} & ТУ & 3000 & 98,5 & 98$\pm$0,5 & 795 & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{ВЗЛ} & ТУ & 2800 & 97,5 & 98$\pm$0,5 & 775 & 205\tabularnewline +\hline +\newpage & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{МП} & ТУ & 2100 & 94,0 & 98$\pm$0,5 & 705 & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{МКр} & ТУ & 1900 & 93,0 & 98$\pm$0,5 & 680 & 221\tabularnewline +\hline \newpage + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{{*} ЗМГ} & ТУ & - & - & 80$\pm$0,5 & - & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\end{tabular} + +\begin{flushleft} +{*} - измеренные параметры\hspace*{1in}\textbf{\textsc{Настроечные +параметры}} +\par\end{flushleft} + +\begin{flushleft} +Drossel55.Table2\foreignlanguage{english}{}% +\begin{tabular}{|>{\centering}m{0.15\paperwidth}|>{\centering}m{0.15\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\raggedright}m{0.19\paperwidth}|} +\hline +\hline\newpage +\multicolumn{2}{|c|}{ 1 } & 2 & 3 & 4 \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.2\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина частоты вращения + +ротора турбокомпрессора, \%% +\end{minipage}} & \centering{}$n_{\text{тк\_мг}}0$ & МГ & \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.08\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина частоты вращения + +ротора турбокомпрессора, \%% +\end{minipage}} & \centering{}$n_{\text{тк\_взл}}0$ & <<Взлёт>> & \tabularnewline +\hline +\multicolumn{2}{|c|}{ % +\begin{minipage}[c]{0.45\columnwidth}% +Настроечная величина минимальной частоты вращения ротора турбокомпрессора, +\%% +\end{minipage}} & \centering{}$n_{\text{тк\_мин}}0$ & МГ & \tabularnewline +\hline\newpage +\multicolumn{2}{|c|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина перестройки частоты вращения ротора турбокомпрессора +при <<Разрешении РПМ>>,\%% +\end{minipage}} & \centering{}$\Delta n_{\text{тк\_взл}}0$ & <<Взлёт>> & \tabularnewline +\hline +\newpage\multicolumn{2}{|>{\centering}p{0.08\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина перестройки частоты вращения ротора турбокомпрессора +по команде <<Тренировочный режим>>, \%% +\end{minipage}} & \centering{}$\Delta n_{\text{тк\_тр}}0$ & <<Взлёт>> & \tabularnewline +\hline +\multicolumn{2}{|c|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Расходный коэффициент 1-го контура форсунок% +\end{minipage}} & \centering{}$\Psi_{(\mu F)}$ & - & \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.1\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Программный расход топлива в РС, кг/ч% +\end{minipage}} & \centering{}$G_{\text{т прог РС МГ}}$ & - & \tabularnewline +\hline +\multirow{2}{0.15\paperwidth}{Параметры измерителя крутящего +момента\foreignlanguage{english}{ } } & Начальное смещение, град & \centering{}$\phi_{\text{икм}}0$ & \multirow{2}{0.1\paperwidth}{\centering{}-} & \tabularnewline +\hline + & Коэффициент характеристики & \centering{}$K$ & & \tabularnewline +\hline +\end{tabular} +\par\end{flushleft} + +Расход масла, л/ч \rule[-1pt]{2cm}{0.4pt} (не более 0,2) + +\begin{flushleft} +\textbf{Зависимость между положением дозирующей иглы и расходом топлива +$G_{\text{т}}=f(\alpha_{\text{дк}})$} +\par\end{flushleft} + +\begin{flushleft} +Drossel55.Table3 +\par\end{flushleft} + +\begin{flushleft} +\begin{tabular}{|>{\centering}p{0.15\paperwidth}|>{\centering}p{0.1\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|} +\toprule +\multicolumn{2}{|c|}{Параметр} & \multicolumn{10}{c|}{Значение, полученное при испытании}\tabularnewline +\midrule +Наименование и единица измерения & Обозначение & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10\tabularnewline +\midrule + \newpage Положение дозирующей иглы, град & $(\alpha_{\text{дк}})$ & & & & & & & & & & \tabularnewline +\midrule +Расход топлива, кг/ч & $G_{\text{Т}}$ & & & & & & & & & & \tabularnewline +\midrule +\newpage Исполнитель & Инженер по испытаниям & \multicolumn{3}{c|}{% +\begin{minipage}[t]{0.1\columnwidth}% +Начальник БТК ИК% +\end{minipage}} & \multicolumn{4}{>{\centering}p{0.15\paperwidth}|}{% +\begin{minipage}[t]{0.15\columnwidth}% +Начальник участка ИД% +\end{minipage}} & \multicolumn{3}{c|}{% +\begin{minipage}[t]{0.15\columnwidth}% +Представитель заказчика% +\end{minipage}}\tabularnewline +\midrule + & & \multicolumn{3}{c|}{} & \multicolumn{4}{c|}{} & \multicolumn{3}{c|}{}\tabularnewline +\bottomrule +\end{tabular} +\par\end{flushleft} + + +\end{document} diff --git a/test/tex/formular_err1.tex b/test/tex/formular_err1.tex new file mode 100644 index 0000000..07b85d8 --- /dev/null +++ b/test/tex/formular_err1.tex @@ -0,0 +1,220 @@ +%% LyX 2.0.3 created this file. For more info, see http://www.lyx.org/. +%% Do not edit unless you really know what you are doing. +\documentclass[english,russian]{article} +\usepackage[T1]{fontenc} +\usepackage[utf8x]{inputenc} +\usepackage{geometry} +\geometry{verbose} +\usepackage{array} +\usepackage{longtable} +\usepackage{textcomp} +\usepackage{amstext} +\usepackage{graphicx} + +\makeatletter + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LyX specific LaTeX commands. +\DeclareRobustCommand{\cyrtext}{% + \fontencoding{T2A}\selectfont\def\encodingdefault{T2A}} +\DeclareRobustCommand{\textcyr}[1]{\leavevmode{\cyrtext #1}} +\AtBeginDocument{\DeclareFontEncoding{T2A}{}{}} + +\newcommand{\lyxmathsym}[1]{\ifmmode\begingroup\def\b@ld{bold} + \text{\ifx\math@version\b@ld\bfseries\fi#1}\endgroup\else#1\fi} + +%% Because html converters don't know tabularnewline +\providecommand{\tabularnewline}{\\} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands. +\usepackage{multirow} + + + +\usepackage{babel} + + + + + + +\usepackage{babel} + + + + + + +\usepackage{babel} + + + + + +\usepackage{babel} + + +\makeatother + +\usepackage{babel} +\begin{document} +\begin{flushright} +ф. 07-726А +\par\end{flushright} + +\begin{center} +\textbf{Формулярные данные по 06В.00.0100ВТУ} +\par\end{center} + +\begin{center} +двигателя ТВ7-117В №\rule[-1pt]{3.5cm}{0.4pt} Температура наружного +воздуха $t_{\text{н}}$, \rule[-1pt]{1cm}{0.4pt}, $\,^{\circ}\mbox{C}$ +\par\end{center} + +от\_\_\_\_\_\_\_\_\_\_ <<\rule[-1pt]{1.1cm}{0.4pt}>> \rule[-1pt]{2.5cm}{0.4pt} +20~~~~г.~~~~~~Давление наружного воздуха, $P_{\text{Н}}$\rule[-1pt]{1cm}{0.4pt} +мм. рт. ст. + +Drossel55.Table1 + +\begin{longtable}{|>{\raggedright}m{0.11\paperwidth}|>{\centering}m{0.04\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.09\paperwidth}|>{\centering}m{0.09\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.09\paperwidth}|} +\hline +\multirow{2}{0.11\paperwidth}{\centering{}\linebreak{} + Режим работы двигателя} & & \multirow{2}{0.1\paperwidth}{\textbf{\centering{}}\linebreak{} + Мощность на выводном валу \textbf{N л.с.} } & \multicolumn{2}{c|}{Частота вращения ротора} & \multirow{2}{0.1\paperwidth}{\centering{}Температура газа +перед свободнойтурбиной не более \textbf{t$_{4}$},$\,^{\circ}\mbox{C}$} & \multirow{2}{0.09\paperwidth}{\centering{}Удельный расход +топлива не более \textbf{C$_{R\text{ пр}}$}г/л.с.ч.}\tabularnewline +\hline + & & & турбо-компрессора не более \textbf{n$_{\text{тк пр}}$}, \% & свободной турбины \textbf{n$_{\lyxmathsym{ст}}$}, \% & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{{*}2,5-минутной мощности} & ТУ & & 101,0 & 98$\pm$0,5 & 805 & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{30-минутной мощности} & ТУ & 3000 & 98,5 & 98$\pm$0,5 & 795 & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{ВЗЛ} & ТУ & 2800 & 97,5 & 98$\pm$0,5 & 775 & 205\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{МП} & ТУ & 2100 & 94,0 & 98$\pm$0,5 & 705 & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{МКр} & ТУ & 1900 & 93,0 & 98$\pm$0,5 & 680 & 221\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{{*} ЗМГ} & ТУ & - & - & 80$\pm$0,5 & - & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\end{longtable} + +\begin{flushleft} +{*} - измеренные параметры\hspace*{1in}\textbf{\textsc{Настроечные +параметры}} +\par\end{flushleft} + +\begin{flushleft} +Drossel55.Table2\foreignlanguage{english}{}% +\begin{longtable}{|>{\centering}m{0.15\paperwidth}|>{\centering}m{0.15\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\raggedright}m{0.19\paperwidth}|} +\hline +\multicolumn{2}{|>{\centering}m{0.2\paperwidth}|}{\centering{}\textbf{Параметр} } & \multirow{2}{0.1\paperwidth}{\textbf{\centering{}Обозначение}} & \multirow{2}{0.1\paperwidth}{\textbf{\centering{}Режим}} & \multirow{2}{0.1\paperwidth}{\textbf{\centering{}Значение, +полученное при испытании}} \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.2\paperwidth}|}{ \textbf{Наименование и единица измерения} } & & & \tabularnewline +\endhead +\hline +\multicolumn{2}{|c|}{ 1 } & 2 & 3 & 4 \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.2\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина частоты вращения + +ротора турбокомпрессора, \%% +\end{minipage}} & \centering{}$n_{\text{тк\_мг}}0$ & МГ & \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.08\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина частоты вращения + +ротора турбокомпрессора, \%% +\end{minipage}} & \centering{}$n_{\text{тк\_взл}}0$ & <<Взлёт>> & \tabularnewline +\hline +\multicolumn{2}{|c|}{ % +\begin{minipage}[c]{0.45\columnwidth}% +Настроечная величина минимальной частоты вращения ротора турбокомпрессора, +\%% +\end{minipage}} & \centering{}$n_{\text{тк\_мин}}0$ & МГ & \tabularnewline +\hline +\multicolumn{2}{|c|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина перестройки частоты вращения ротора турбокомпрессора +при <<Разрешении РПМ>>,\%% +\end{minipage}} & \centering{}$\Delta n_{\text{тк\_взл}}0$ & <<Взлёт>> & \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.08\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина перестройки частоты вращения ротора турбокомпрессора +по команде <<Тренировочный режим>>, \%% +\end{minipage}} & \centering{}$\Delta n_{\text{тк\_тр}}0$ & <<Взлёт>> & \tabularnewline +\hline +\multicolumn{2}{|c|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Расходный коэффициент 1-го контура форсунок% +\end{minipage}} & \centering{}$\Psi_{(\mu F)}$ & - & \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.1\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Программный расход топлива в РС, кг/ч% +\end{minipage}} & \centering{}$G_{\text{т прог РС МГ}}$ & - & \tabularnewline +\hline +\multirow{2}{0.15\paperwidth}{Параметры измерителя крутящего +момента\foreignlanguage{english}{ } } & Начальное смещение, град & \centering{}$\phi_{\text{икм}}0$ & \multirow{2}{0.1\paperwidth}{\centering{}-} & \tabularnewline +\hline + & Коэффициент характеристики & \centering{}$K$ & & \tabularnewline +\hline +\end{longtable} +\par\end{flushleft} + +Расход масла, л/ч \rule[-1pt]{2cm}{0.4pt} (не более 0,2) + +\begin{flushleft} +\textbf{Зависимость между положением дозирующей иглы и расходом топлива +$G_{\text{т}}=f(\alpha_{\text{дк}})$} +\par\end{flushleft} + +\begin{flushleft} +Drossel55.Table3 +\par\end{flushleft} +\end{longtable} +\begin{flushleft} +\begin{longtable}{|>{\centering}p{0.15\paperwidth}|>{\centering}p{0.1\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|} +\hline +\multicolumn{2}{|c|}{Параметр} & \multicolumn{10}{c|}{Значение, полученное при испытании}\tabularnewline +\hline +Наименование и единица измерения & Обозначение & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10\tabularnewline +\hline +Положение дозирующей иглы, град & $(\alpha_{\text{дк}})$ & & & & & & & & & & \tabularnewline +\hline +Расход топлива, кг/ч & $G_{\text{Т}}$ & & & & & & & & & & \tabularnewline +\hline +Исполнитель & Инженер по испытаниям & \multicolumn{3}{c|}{% +\begin{minipage}[t]{0.1\columnwidth}% +Начальник БТК ИК% +\end{minipage}} & \multicolumn{4}{>{\centering}p{0.15\paperwidth}|}{% +\begin{minipage}[t]{0.15\columnwidth}% +Начальник участка ИД% +\end{minipage}} & \multicolumn{3}{c|}{% +\begin{minipage}[t]{0.15\columnwidth}% +Представитель заказчика% +\end{minipage}}\tabularnewline +\hline + & & \multicolumn{3}{c|}{} & \multicolumn{4}{c|}{} & \multicolumn{3}{c|}{}\tabularnewline +\hline +\end{longtable} +\par\end{flushleft} + +\end{document} diff --git a/test/tex/formular_err2.tex b/test/tex/formular_err2.tex new file mode 100644 index 0000000..7687596 --- /dev/null +++ b/test/tex/formular_err2.tex @@ -0,0 +1,220 @@ +%% LyX 2.0.3 created this file. For more info, see http://www.lyx.org/. +%% Do not edit unless you really know what you are doing. +\documentclass[english,russian]{article} +\usepackage[T1]{fontenc} +\usepackage[utf8x]{inputenc} +\usepackage{geometry} +\geometry{verbose} +\usepackage{array} +\usepackage{longtable} +\usepackage{textcomp} +\usepackage{amstext} +\usepackage{graphicx} + +\makeatletter + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LyX specific LaTeX commands. +\DeclareRobustCommand{\cyrtext}{% + \fontencoding{T2A}\selectfont\def\encodingdefault{T2A}} +\DeclareRobustCommand{\textcyr}[1]{\leavevmode{\cyrtext #1}} +\AtBeginDocument{\DeclareFontEncoding{T2A}{}{}} + +\newcommand{\lyxmathsym}[1]{\ifmmode\begingroup\def\b@ld{bold} + \text{\ifx\math@version\b@ld\bfseries\fi#1}\endgroup\else#1\fi} + +%% Because html converters don't know tabularnewline +\providecommand{\tabularnewline}{\\} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands. +\usepackage{multirow} + + + +\usepackage{babel} + + + + + + +\usepackage{babel} + + + +\begin{longtable} + + +\usepackage{babel} + + + + + +\usepackage{babel} + + +\makeatother + +\usepackage{babel} +\begin{document} +\begin{flushright} +ф. 07-726А +\par\end{flushright} + +\begin{center} +\textbf{Формулярные данные по 06В.00.0100ВТУ} +\par\end{center} + +\begin{center} +двигателя ТВ7-117В №\rule[-1pt]{3.5cm}{0.4pt} Температура наружного +воздуха $t_{\text{н}}$, \rule[-1pt]{1cm}{0.4pt}, $\,^{\circ}\mbox{C}$ +\par\end{center} + +от\_\_\_\_\_\_\_\_\_\_ <<\rule[-1pt]{1.1cm}{0.4pt}>> \rule[-1pt]{2.5cm}{0.4pt} +20~~~~г.~~~~~~Давление наружного воздуха, $P_{\text{Н}}$\rule[-1pt]{1cm}{0.4pt} +мм. рт. ст. + +Drossel55.Table1 + +\begin{longtable}{|>{\raggedright}m{0.11\paperwidth}|>{\centering}m{0.04\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.09\paperwidth}|>{\centering}m{0.09\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.09\paperwidth}|} +\hline +\multirow{2}{0.11\paperwidth}{\centering{}\linebreak{} + Режим работы двигателя} & & \multirow{2}{0.1\paperwidth}{\textbf{\centering{}}\linebreak{} + Мощность на выводном валу \textbf{N л.с.} } & \multicolumn{2}{c|}{Частота вращения ротора} & \multirow{2}{0.1\paperwidth}{\centering{}Температура газа +перед свободнойтурбиной не более \textbf{t$_{4}$},$\,^{\circ}\mbox{C}$} & \multirow{2}{0.09\paperwidth}{\centering{}Удельный расход +топлива не более \textbf{C$_{R\text{ пр}}$}г/л.с.ч.}\tabularnewline +\hline + & & & турбо-компрессора не более \textbf{n$_{\text{тк пр}}$}, \% & свободной турбины \textbf{n$_{\lyxmathsym{ст}}$}, \% & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{{*}2,5-минутной мощности} & ТУ & & 101,0 & 98$\pm$0,5 & 805 & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{30-минутной мощности} & ТУ & 3000 & 98,5 & 98$\pm$0,5 & 795 & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{ВЗЛ} & ТУ & 2800 & 97,5 & 98$\pm$0,5 & 775 & 205\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{МП} & ТУ & 2100 & 94,0 & 98$\pm$0,5 & 705 & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{МКр} & ТУ & 1900 & 93,0 & 98$\pm$0,5 & 680 & 221\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{{*} ЗМГ} & ТУ & - & - & 80$\pm$0,5 & - & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\end{longtable} + +\begin{flushleft} +{*} - измеренные параметры\hspace*{1in}\textbf{\textsc{Настроечные +параметры}} +\par\end{flushleft} + +\begin{flushleft} +Drossel55.Table2\foreignlanguage{english}{}% +\begin{longtable}{|>{\centering}m{0.15\paperwidth}|>{\centering}m{0.15\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\raggedright}m{0.19\paperwidth}|} +\hline +\multicolumn{2}{|>{\centering}m{0.2\paperwidth}|}{\centering{}\textbf{Параметр} } & \multirow{2}{0.1\paperwidth}{\textbf{\centering{}Обозначение}} & \multirow{2}{0.1\paperwidth}{\textbf{\centering{}Режим}} & \multirow{2}{0.1\paperwidth}{\textbf{\centering{}Значение, +полученное при испытании}} \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.2\paperwidth}|}{ \textbf{Наименование и единица измерения} } & & & \tabularnewline +\endhead +\hline +\multicolumn{2}{|c|}{ 1 } & 2 & 3 & 4 \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.2\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина частоты вращения + +ротора турбокомпрессора, \%% +\end{minipage}} & \centering{}$n_{\text{тк\_мг}}0$ & МГ & \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.08\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина частоты вращения + +ротора турбокомпрессора, \%% +\end{minipage}} & \centering{}$n_{\text{тк\_взл}}0$ & <<Взлёт>> & \tabularnewline +\hline +\multicolumn{2}{|c|}{ % +\begin{minipage}[c]{0.45\columnwidth}% +Настроечная величина минимальной частоты вращения ротора турбокомпрессора, +\%% +\end{minipage}} & \centering{}$n_{\text{тк\_мин}}0$ & МГ & \tabularnewline +\hline +\multicolumn{2}{|c|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина перестройки частоты вращения ротора турбокомпрессора +при <<Разрешении РПМ>>,\%% +\end{minipage}} & \centering{}$\Delta n_{\text{тк\_взл}}0$ & <<Взлёт>> & \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.08\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина перестройки частоты вращения ротора турбокомпрессора +по команде <<Тренировочный режим>>, \%% +\end{minipage}} & \centering{}$\Delta n_{\text{тк\_тр}}0$ & <<Взлёт>> & \tabularnewline +\hline +\multicolumn{2}{|c|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Расходный коэффициент 1-го контура форсунок% +\end{minipage}} & \centering{}$\Psi_{(\mu F)}$ & - & \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.1\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Программный расход топлива в РС, кг/ч% +\end{minipage}} & \centering{}$G_{\text{т прог РС МГ}}$ & - & \tabularnewline +\hline +\multirow{2}{0.15\paperwidth}{Параметры измерителя крутящего +момента\foreignlanguage{english}{ } } & Начальное смещение, град & \centering{}$\phi_{\text{икм}}0$ & \multirow{2}{0.1\paperwidth}{\centering{}-} & \tabularnewline +\hline + & Коэффициент характеристики & \centering{}$K$ & & \tabularnewline +\hline +\end{longtable} +\par\end{flushleft} + +Расход масла, л/ч \rule[-1pt]{2cm}{0.4pt} (не более 0,2) + +\begin{flushleft} +\textbf{Зависимость между положением дозирующей иглы и расходом топлива +$G_{\text{т}}=f(\alpha_{\text{дк}})$} +\par\end{flushleft} + +\begin{flushleft} +Drossel55.Table3 +\par\end{flushleft} + +\begin{flushleft} +\begin{longtable}{|>{\centering}p{0.15\paperwidth}|>{\centering}p{0.1\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|} +\hline +\multicolumn{2}{|c|}{Параметр} & \multicolumn{10}{c|}{Значение, полученное при испытании}\tabularnewline +\hline +Наименование и единица измерения & Обозначение & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10\tabularnewline +\hline +Положение дозирующей иглы, град & $(\alpha_{\text{дк}})$ & & & & & & & & & & \tabularnewline +\hline +Расход топлива, кг/ч & $G_{\text{Т}}$ & & & & & & & & & & \tabularnewline +\hline +Исполнитель & Инженер по испытаниям & \multicolumn{3}{c|}{% +\begin{minipage}[t]{0.1\columnwidth}% +Начальник БТК ИК% +\end{minipage}} & \multicolumn{4}{>{\centering}p{0.15\paperwidth}|}{% +\begin{minipage}[t]{0.15\columnwidth}% +Начальник участка ИД% +\end{minipage}} & \multicolumn{3}{c|}{% +\begin{minipage}[t]{0.15\columnwidth}% +Представитель заказчика% +\end{minipage}}\tabularnewline +\hline + & & \multicolumn{3}{c|}{} & \multicolumn{4}{c|}{} & \multicolumn{3}{c|}{}\tabularnewline +\hline +\end{longtable} +\par\end{flushleft} + +\end{document} diff --git a/test/tex/get_tags.sh b/test/tex/get_tags.sh new file mode 100755 index 0000000..534c3bb --- /dev/null +++ b/test/tex/get_tags.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +cat $@ | iconv -f koi8-r -t utf-8 | sed 's/\\/\n\\/g' | grep '^\\[a-z]' | sed 's/\\\([a-z]*\).*$/\1/g' | sort | uniq | sed 's/\(.*\)/#define\t\1 "\1\"/g' diff --git a/test/tex/graph_in_ltable.tex b/test/tex/graph_in_ltable.tex new file mode 100644 index 0000000..5442085 --- /dev/null +++ b/test/tex/graph_in_ltable.tex @@ -0,0 +1,225 @@ +%% LyX 2.0.4 created this file. For more info, see http://www.lyx.org/. +%% Do not edit unless you really know what you are doing. +\documentclass[russian]{report} +\usepackage[T1]{fontenc} +\usepackage[utf8x]{inputenc} +\usepackage[landscape,a4paper]{geometry} +\geometry{verbose,tmargin=3cm,bmargin=3cm,lmargin=0cm,rmargin=0cm,headheight=50pt,headsep=5mm,footskip=40pt} +\usepackage{fancyhdr} +\pagestyle{fancy} +\setcounter{secnumdepth}{-1} +\setcounter{tocdepth}{3} +\usepackage{longtable} +\usepackage{textcomp} +\usepackage{graphicx} + +\makeatletter + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LyX specific LaTeX commands. +\DeclareRobustCommand{\cyrtext}{% + \fontencoding{T2A}\selectfont\def\encodingdefault{T2A}} +\DeclareRobustCommand{\textcyr}[1]{\leavevmode{\cyrtext #1}} +\AtBeginDocument{\DeclareFontEncoding{T2A}{}{}} + +%% Because html converters don't know tabularnewline +\providecommand{\tabularnewline}{\\} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands. +\renewcommand{\headrulewidth}{0pt} + + +\usepackage{multirow} + + + +\usepackage{babel} + + + + + + +\usepackage{babel} + + + + + + + + + + + + + + + + +\usepackage{babel} + + + + + + + + + + + + + + + +\usepackage{babel} + + + + + + + + + + + + + + +\usepackage{babel} + + + + + + + + + + + + +\usepackage{babel} + + + + + + + + + + + +\usepackage{babel} + + + + + + + + + + + +\usepackage{babel} + + + + + + + + + + +\usepackage{babel} + + + + + + + + + +\usepackage{babel} + + + + + + + + +\usepackage{babel} + + + + + + +\usepackage{babel} + + + + + + +\usepackage{babel} + + + + +\usepackage{babel} + +\makeatother + +\usepackage{babel} +\begin{document} + +\chead{% +\begin{tabular}{c} +\textbf{Стенд № {[}Value.First.Stend{]}}{\large{} }\tabularnewline +Изделие {[}Value.Last.EngineData{]} ~~ Дата: {[}Value.Last.Time2{]}\tabularnewline +\tabularnewline +\end{tabular}} + +\begin{tabular}[b]{c} +\textbf{Стенд № {[}Value.First.Stend{]}}{\large{} }\tabularnewline +Изделие {[}Value.Last.EngineData{]} ~~ Дата: {[}Value.Last.Time2{]}\tabularnewline +\tabularnewline +\end{tabular} + +\cfoot{% +\begin{tabular*}{0.01\textwidth}{|c|c|} +\hline +Оператор гр. АИС & Инженер по испытаниям \tabularnewline +\hline + & \tabularnewline + & \tabularnewline +\hline +\end{tabular*}} + + +\begin{longtable}{lc} +\begin{longtable}[l]{|c|} +\hline +{[}direction.down{]}{[}Value.0.nst{]}\tabularnewline +\hline +\end{longtable}\tabularnewline +\end{longtable} + + + +\begin{longtable}{lc} +\includegraphics[bb=0bp 0bp 1203bp 100cm,clip,width=5cm,height=10cm,bb = 0 0 200 100, draft, type=eps]{test.bmp}& % +\begin{longtable}[l]{|c|} +\hline +{[}direction.down{]}{[}Value.0.nst{]}\tabularnewline +\hline +\end{longtable}\tabularnewline +\end{longtable} +\end{document} diff --git a/test/tex/includegraphics.tex b/test/tex/includegraphics.tex new file mode 100644 index 0000000..bbe07b9 --- /dev/null +++ b/test/tex/includegraphics.tex @@ -0,0 +1,4 @@ +\begin{document} +\includegraphics[, angle=25, scale=3,angle=70 , , , height=3pt, height=5]{174} +\includegraphics[width=12cm,height=25cm]{151} +\end{document} diff --git a/test/tex/lines.etalon.tex b/test/tex/lines.etalon.tex new file mode 100644 index 0000000..9693ccc --- /dev/null +++ b/test/tex/lines.etalon.tex @@ -0,0 +1,262 @@ +%% LyX 2.0.3 created this file. For more info, see http://www.lyx.org/. +%% Do not edit unless you really know what you are doing. +\documentclass[english]{article} +\usepackage[T1]{fontenc} +\usepackage[latin9]{inputenc} +\usepackage{longtable} + +\makeatletter + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LyX specific LaTeX commands. +%% Because html converters don't know tabularnewline +\providecommand{\tabularnewline}{\\} + +\makeatother + +\usepackage{babel} +\begin{document} +\begin{longtable}{|||l|c|r|||c|c|c||||} +\caption{caption of the table} +\endfirsthead +\hline +\hline +\hline +\cline{1-3} \cline{5-6} +\noalign{\vskip0.16\textheight} +\noalign{\vskip1bp} +\noalign{\vskip3cm} +head & head & head & head & head & head\tabularnewline[1bp] +\noalign{\vskip2cc} +\hline +\hline +\cline{1-2} \cline{4-6} +\noalign{\vskip3cm} +firsthead & firsthead & firsthead & firsthead & firsthead & firsthead\tabularnewline[2cc] +\noalign{\vskip4dd} +\hline +\noalign{\vskip5em} +foot & foot & foot & foot & foot & foot\tabularnewline[3cm] +\noalign{\vskip6ex} +\noalign{\vskip7in} +\noalign{\vskip5em} +\hline +\hline +\noalign{\vskip9pc} +lastfoot & lastfoot & lastfoot & lastfoot & lastfoot & lastfoot\tabularnewline[4dd] +\noalign{\vskip8mm} +\noalign{\vskip9pc} +cell & cell & cell & cell & cell & cell\tabularnewline[5em] +\noalign{\vskip10pt} +\hline +\hline +\hline +\noalign{\vskip11sp} +cell & cell & cell & cell & cell & cell\tabularnewline[6ex] +\cline{1-5} +\noalign{\vskip0.12\textwidth} +cell & cell & cell & cell & cell & cell\tabularnewline[7in] +\cline{1-3} \cline{5-5} +\noalign{\vskip0.13\columnwidth} +cell & cell & cell & cell & cell & cell\tabularnewline[8mm] +\noalign{\vskip0.14\paperwidth} +\hline +\hline +\noalign{\vskip0.15\linewidth} +cell & cell & cell & cell & cell & cell\tabularnewline[9pc] +\noalign{\vskip10pt} +\noalign{\vskip0.16\textheight} +\noalign{\vskip0.16\textheight} +\noalign{\vskip2cc} +\hline +\hline +\hline +\cline{1-3} \cline{5-5} +\end{longtable} +\begin{longtable}{|c|c|c|c|c|c|} +\caption{caption of the table} +\endfirsthead +\hline +\hline +\noalign{\vskip0.17\paperheight} +head & head & head & head & head & head\tabularnewline[10pt] +\noalign{\vskip1bp} +\hline +\hline +\hline +\hline +\cline{1-3} \cline{5-5} +\noalign{\vskip2cc} +firsthead & firsthead & firsthead & firsthead & firsthead & firsthead\tabularnewline[11sp] +\hline +\noalign{\vskip3cm} +foot & foot & foot & foot & foot & foot\tabularnewline[0.12\textwidth] +\hline +\hline +\cline{1-1} \cline{4-4} \cline{6-6} +\noalign{\vskip4dd} +lastfoot & lastfoot & lastfoot & lastfoot & lastfoot & lastfoot\tabularnewline[0.13\columnwidth] +cell & cell & cell & cell & cell & cell\tabularnewline[0.14\paperwidth] +\hline +\hline +\hline +\noalign{\vskip5em} +cell & cell & cell & cell & cell & cell\tabularnewline[0.15\linewidth] +\noalign{\vskip6ex} +\cline{1-5} +\noalign{\vskip7in} +cell & cell & cell & cell & cell & cell\tabularnewline[0.16\textheight] +\cline{1-3} \cline{5-5} +cell & cell & cell & cell & cell & cell\tabularnewline[0.17\paperheight] +\hline +\hline +\hline +\cline{3-4} \cline{6-6} +\noalign{\vskip8mm} +cell & cell & cell & cell & cell & cell\tabularnewline[9pc] +\hline +\hline +\hline +\hline +\hline +\end{longtable} +\begin{longtable}{|||l|c|r|||c|c|c||||} +\caption{caption of the table} +\endfirsthead +\toprule +\toprule +\toprule +\cmidrule{1-3} \cmidrule{5-6} +\addlinespace[2cc] +\addlinespace[1bp] +\addlinespace[3cm] +head & head & head & head & head & head\tabularnewline\addlinespace[1bp] +\addlinespace[2cc] +\midrule +\midrule +\cmidrule{1-2} \cmidrule{4-6} +\addlinespace[3cm] +firsthead & firsthead & firsthead & firsthead & firsthead & firsthead\tabularnewline\addlinespace[2cc] +\addlinespace[4dd] +\midrule +\addlinespace[5em] +foot & foot & foot & foot & foot & foot\tabularnewline\addlinespace[3cm] +\addlinespace[6ex] +\midrule +\midrule +\addlinespace[7in] +lastfoot & lastfoot & lastfoot & lastfoot & lastfoot & lastfoot\tabularnewline\addlinespace[4dd] +\addlinespace[8mm] +\addlinespace[9pc] +cell & cell & cell & cell & cell & cell\tabularnewline\addlinespace[5em] +\addlinespace[10pt] +\addlinespace[0.14\paperwidth] +\addlinespace[0.15\linewidth] +\midrule +\midrule +\midrule +\addlinespace[11sp] +cell & cell & cell & cell & cell & cell\tabularnewline\addlinespace[6ex] +\cmidrule{1-5} +\addlinespace[0.12\textwidth] +cell & cell & cell & cell & cell & cell\tabularnewline\addlinespace[7in] +\cmidrule{1-3} \cmidrule{5-5} +\addlinespace[0.13\columnwidth] +cell & cell & cell & cell & cell & cell\tabularnewline\addlinespace[8mm] +\addlinespace[0.14\paperwidth] +\midrule +\midrule +\addlinespace[0.15\linewidth] +cell & cell & cell & cell & cell & cell\tabularnewline\addlinespace[9pc] +\addlinespace[0.16\textheight] +\addlinespace[0.14\paperwidth] +\addlinespace[0.15\linewidth] +\bottomrule +\bottomrule +\bottomrule +\cmidrule{1-3} \cmidrule{5-5} +\end{longtable} +\begin{longtable}{|c|c|c|c|c|c|} +\caption{caption of the table} +\endfirsthead +\toprule +\toprule +\addlinespace[0.17\paperheight] +head & head & head & head & head & head\tabularnewline\addlinespace[10pt] +\addlinespace[1bp] +\midrule +\midrule +\midrule +\midrule +\cmidrule{1-3} \cmidrule{5-5} +\addlinespace[2cc] +firsthead & firsthead & firsthead & firsthead & firsthead & firsthead\tabularnewline\addlinespace[11sp] +\midrule +\addlinespace[3cm] +foot & foot & foot & foot & foot & foot\tabularnewline\addlinespace[0.12\textwidth] +\midrule +\midrule +\cmidrule{1-1} \cmidrule{4-4} \cmidrule{6-6} +\addlinespace[4dd] +lastfoot & lastfoot & lastfoot & lastfoot & lastfoot & lastfoot\tabularnewline\addlinespace[0.13\columnwidth] +cell & cell & cell & cell & cell & cell\tabularnewline\addlinespace[0.14\paperwidth] +\midrule +\midrule +\midrule +\addlinespace[5em] +cell & cell & cell & cell & cell & cell\tabularnewline\addlinespace[0.15\linewidth] +\addlinespace[6ex] +\cmidrule{1-5} +\addlinespace[7in] +cell & cell & cell & cell & cell & cell\tabularnewline\addlinespace[0.16\textheight] +\cmidrule{1-3} \cmidrule{5-5} +cell & cell & cell & cell & cell & cell\tabularnewline\addlinespace[0.17\paperheight] +\midrule +\midrule +\midrule +\cmidrule{3-4} \cmidrule{6-6} +\addlinespace[8mm] +cell & cell & cell & cell & cell & cell\tabularnewline\addlinespace[9pc] +\bottomrule +\bottomrule +\bottomrule +\bottomrule +\bottomrule +\end{longtable} +% one line/col table +\begin{longtable}{|||l|||||} +\caption{caption of the table} +\endfirsthead +\hline +\hline +\hline +\cline{1-3} \cline{5-6} +\noalign{\vskip0.16\textheight} +\noalign{\vskip1bp} +\noalign{\vskip3cm} +head & head & head & head & head & head\tabularnewline[1bp] +\noalign{\vskip2cc} +\noalign{\vskip3cm} +\noalign{\vskip10pt} +\noalign{\vskip0.16\textheight} +\noalign{\vskip0.16\textheight} +\noalign{\vskip2cc} +\hline +\hline +\cline{1-2} \cline{4-6} +\end{longtable} +\begin{longtable}{|||l|||||} +\toprule +\toprule +\toprule +\cmidrule{1-3} \cmidrule{5-6} +\addlinespace[2cc] +\addlinespace[1bp] +\addlinespace[3cm] +head & head & head & head & head & head\tabularnewline\addlinespace[1bp] +\addlinespace[2cc] +\addlinespace[3cm] +\bottomrule +\bottomrule +\cmidrule{1-2} \cmidrule{4-6} +\end{longtable} +\end{document} diff --git a/test/tex/lines.lyx b/test/tex/lines.lyx new file mode 100644 index 0000000..a83c704 --- /dev/null +++ b/test/tex/lines.lyx @@ -0,0 +1,648 @@ +#LyX 2.0 created this file. For more info see http://www.lyx.org/ +\lyxformat 413 +\begin_document +\begin_header +\textclass article +\use_default_options true +\maintain_unincluded_children false +\language english +\language_package default +\inputencoding auto +\fontencoding global +\font_roman default +\font_sans default +\font_typewriter default +\font_default_family default +\use_non_tex_fonts false +\font_sc false +\font_osf false +\font_sf_scale 100 +\font_tt_scale 100 + +\graphics default +\default_output_format default +\output_sync 0 +\bibtex_command default +\index_command default +\paperfontsize default +\use_hyperref false +\papersize default +\use_geometry false +\use_amsmath 1 +\use_esint 1 +\use_mhchem 1 +\use_mathdots 1 +\cite_engine basic +\use_bibtopic false +\use_indices false +\paperorientation portrait +\suppress_date false +\use_refstyle 1 +\index Index +\shortcut idx +\color #008000 +\end_index +\secnumdepth 3 +\tocdepth 3 +\paragraph_separation indent +\paragraph_indentation default +\quotes_language english +\papercolumns 1 +\papersides 1 +\paperpagestyle default +\tracking_changes false +\output_changes false +\html_math_output 0 +\html_css_as_file 0 +\html_be_strict false +\end_header + +\begin_body + +\begin_layout Standard +\begin_inset Tabular + + + + + + + + + + +\begin_inset Text + +\begin_layout Plain Layout +head +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +head +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +head +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +head +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +head +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +head +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +firsthead +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +firsthead +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +firsthead +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +firsthead +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +firsthead +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +firsthead +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +foot +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +foot +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +foot +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +foot +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +foot +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +foot +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +lastfoot +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +lastfoot +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +lastfoot +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +lastfoot +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +lastfoot +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +lastfoot +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Caption + +\begin_layout Plain Layout +caption of the table +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +cell +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +cell +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +cell +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +cell +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +cell +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +cell +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +cell +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +cell +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +cell +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +cell +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +cell +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +cell +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +cell +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +cell +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +cell +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +cell +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +cell +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +cell +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +cell +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +cell +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +cell +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +cell +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +cell +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +cell +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +cell +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +cell +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +cell +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +cell +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +cell +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +cell +\end_layout + +\end_inset + + + + +\end_inset + + +\end_layout + +\end_body +\end_document diff --git a/test/tex/lines.tex b/test/tex/lines.tex new file mode 100644 index 0000000..7e2b185 --- /dev/null +++ b/test/tex/lines.tex @@ -0,0 +1,289 @@ +%% LyX 2.0.3 created this file. For more info, see http://www.lyx.org/. +%% Do not edit unless you really know what you are doing. +\documentclass[english]{article} +\usepackage[T1]{fontenc} +\usepackage[latin9]{inputenc} +\usepackage{longtable} + +\makeatletter + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LyX specific LaTeX commands. +%% Because html converters don't know tabularnewline +\providecommand{\tabularnewline}{\\} + +\makeatother + +\usepackage{babel} +\begin{document} +\begin{longtable}{|||l|c|r|||c|c|c||||} +\caption{caption of the table} +\endfirsthead +\noalign{\vskip0.16\textheight} +\hline +\cline{1-1} \cline{4-4} \cline{6-6} +\hline +\hline +\cline{1-3} \cline{5-6} +\noalign{\vskip1bp} +\noalign{\vskip3cm} +head & head & head & head & head & head\\[1bp] +\cline{1-2} \cline{5-6} +\noalign{\vskip2cc} +\hline +\hline +\cline{1-2} \cline{4-6} +\noalign{\vskip3cm} +firsthead & firsthead & firsthead & firsthead & firsthead & firsthead\tabularnewline[2cc] +\noalign{\vskip4dd} +\hline +\noalign{\vskip5em} +foot & foot & foot & foot & foot & foot\\[3cm] +\noalign{\vskip6ex} +\noalign{\vskip7in} +\hline +\hline +\noalign{\vskip5em} +\noalign{\vskip9pc} +lastfoot & lastfoot & lastfoot & lastfoot & lastfoot & lastfoot\\[4dd] +\noalign{\vskip8mm} +\noalign{\vskip9pc} +cell & cell & cell & cell & cell & cell\tabularnewline[5em] +\cline{1-1} \cline{4-4} \cline{6-6} +\noalign{\vskip10pt} +\hline +\hline +\hline +\noalign{\vskip11sp} +cell & cell & cell & cell & cell & cell\tabularnewline[6ex] +\cline{1-5} +\noalign{\vskip0.12\textwidth} +cell & cell & cell & cell & cell & cell\tabularnewline[7in] +\cline{1-3} \cline{5-5} +\noalign{\vskip0.13\columnwidth} +cell & cell & cell & cell & cell & cell\\[8mm] +\hline +\cline{3-4} \cline{6-6} +\hline +\noalign{\vskip0.14\paperwidth} +\noalign{\vskip0.15\linewidth} +cell & cell & cell & cell & cell & cell\tabularnewline[9pc] +\hline +\hline +\hline +\cline{1-3} \cline{5-5} +\cline{1-3} \cline{5-5} +\noalign{\vskip10pt} +\noalign{\vskip0.16\textheight} +\noalign{\vskip0.16\textheight} +\noalign{\vskip2cc} +\end{longtable} +\begin{longtable}{|c|c|c|c|c|c|} +\caption{caption of the table} +\endfirsthead +\cline{1-3} \cline{5-5} +\hline +\hline +\noalign{\vskip0.17\paperheight} +head & head & head & head & head & head\tabularnewline[10pt] +\hline +\hline +\hline +\hline +\cline{1-3} \cline{5-5} +\noalign{\vskip1bp} +\noalign{\vskip2cc} +firsthead & firsthead & firsthead & firsthead & firsthead & firsthead\tabularnewline[11sp] +\hline +\noalign{\vskip3cm} +foot & foot & foot & foot & foot & foot\tabularnewline[0.12\textwidth] +\hline +\hline +\cline{1-1} \cline{4-4} \cline{6-6} +\cline{1-1} \cline{4-4} \cline{6-6} +\noalign{\vskip4dd} +lastfoot & lastfoot & lastfoot & lastfoot & lastfoot & lastfoot\tabularnewline[0.13\columnwidth] +cell & cell & cell & cell & cell & cell\tabularnewline[0.14\paperwidth] +\cline{1-1} \cline{4-4} \cline{6-6} +\hline +\hline +\hline +\noalign{\vskip5em} +cell & cell & cell & cell & cell & cell\\[0.15\linewidth] +\cline{1-5} +\noalign{\vskip6ex} +\noalign{\vskip7in} +cell & cell & cell & cell & cell & cell\tabularnewline[0.16\textheight] +\cline{1-3} \cline{5-5} +cell & cell & cell & cell & cell & cell\tabularnewline[0.17\paperheight] +\hline +\hline +\hline +\cline{3-4} \cline{6-6} +\cline{3-4} \cline{6-6} +\noalign{\vskip8mm} +cell & cell & cell & cell & cell & cell\tabularnewline[9pc] +\hline +\hline +\cline{1-3} \cline{5-5} +\hline +\cline{1-3} \cline{5-5} +\hline +\hline +\end{longtable} +\begin{longtable}{|||l|c|r|||c|c|c||||} +\caption{caption of the table} +\endfirsthead +\toprule +\addlinespace[2cc] +\cmidrule{1-1} \cmidrule{4-4} \cmidrule{6-6} +\toprule +\toprule +\cmidrule{1-3} \cmidrule{5-6} +\addlinespace[1bp] +\addlinespace[3cm] +head & head & head & head & head & head\tabularnewline\addlinespace[1bp] +\cmidrule{1-2} \cmidrule{5-6} +\addlinespace[2cc] +\midrule +\midrule +\cmidrule{1-2} \cmidrule{4-6} +\addlinespace[3cm] +firsthead & firsthead & firsthead & firsthead & firsthead & firsthead\\\addlinespace[2cc] +\addlinespace[4dd] +\midrule +\addlinespace[5em] +foot & foot & foot & foot & foot & foot\tabularnewline\addlinespace[3cm] +\addlinespace[6ex] +\midrule +\midrule +\addlinespace[7in] +lastfoot & lastfoot & lastfoot & lastfoot & lastfoot & lastfoot\tabularnewline\addlinespace[4dd] +\addlinespace[8mm] +\addlinespace[9pc] +cell & cell & cell & cell & cell & cell\tabularnewline\addlinespace[5em] +\cmidrule{1-1} \cmidrule{4-4} \cmidrule{6-6} +\addlinespace[10pt] +\midrule +\addlinespace[0.14\paperwidth] +\addlinespace[0.15\linewidth] +\midrule +\midrule +\addlinespace[11sp] +cell & cell & cell & cell & cell & cell\tabularnewline\addlinespace[6ex] +\cmidrule{1-5} +\addlinespace[0.12\textwidth] +cell & cell & cell & cell & cell & cell\tabularnewline\addlinespace[7in] +\cmidrule{1-3} \cmidrule{5-5} +\addlinespace[0.13\columnwidth] +cell & cell & cell & cell & cell & cell\tabularnewline\addlinespace[8mm] +\midrule +\cmidrule{3-4} \cmidrule{6-6} +\midrule +\addlinespace[0.14\paperwidth] +\addlinespace[0.15\linewidth] +cell & cell & cell & cell & cell & cell\tabularnewline\addlinespace[9pc] +\bottomrule +\bottomrule +\bottomrule +\cmidrule{1-3} \cmidrule{5-5} +\cmidrule{1-3} \cmidrule{5-5} +\addlinespace[0.16\textheight] +\addlinespace[0.14\paperwidth] +\addlinespace[0.15\linewidth] +\end{longtable} +\begin{longtable}{|c|c|c|c|c|c|} +\caption{caption of the table} +\endfirsthead +\cmidrule{1-3} \cmidrule{5-5} +\toprule +\toprule +\addlinespace[0.17\paperheight] +head & head & head & head & head & head\\\addlinespace[10pt] +\midrule +\midrule +\midrule +\midrule +\cmidrule{1-3} \cmidrule{5-5} +\addlinespace[1bp] +\addlinespace[2cc] +firsthead & firsthead & firsthead & firsthead & firsthead & firsthead\tabularnewline\addlinespace[11sp] +\midrule +\addlinespace[3cm] +foot & foot & foot & foot & foot & foot\tabularnewline\addlinespace[0.12\textwidth] +\midrule +\midrule +\cmidrule{1-1} \cmidrule{4-4} \cmidrule{6-6} +\cmidrule{1-1} \cmidrule{4-4} \cmidrule{6-6} +\addlinespace[4dd] +lastfoot & lastfoot & lastfoot & lastfoot & lastfoot & lastfoot\tabularnewline\addlinespace[0.13\columnwidth] +cell & cell & cell & cell & cell & cell\tabularnewline\addlinespace[0.14\paperwidth] +\cmidrule{1-1} \cmidrule{4-4} \cmidrule{6-6} +\midrule +\midrule +\midrule +\addlinespace[5em] +cell & cell & cell & cell & cell & cell\tabularnewline\addlinespace[0.15\linewidth] +\cmidrule{1-5} +\addlinespace[6ex] +\addlinespace[7in] +cell & cell & cell & cell & cell & cell\\\addlinespace[0.16\textheight] +\cmidrule{1-3} \cmidrule{5-5} +cell & cell & cell & cell & cell & cell\tabularnewline\addlinespace[0.17\paperheight] +\midrule +\midrule +\midrule +\cmidrule{3-4} \cmidrule{6-6} +\cmidrule{3-4} \cmidrule{6-6} +\addlinespace[8mm] +cell & cell & cell & cell & cell & cell\tabularnewline +\bottomrule +\bottomrule +\cmidrule{1-3} \cmidrule{5-5} +\bottomrule +\cmidrule{1-3} \cmidrule{5-5} +\bottomrule +\bottomrule +\addlinespace[9pc] +\end{longtable} +% one line/col table +\begin{longtable}{|||l|||||} +\caption{caption of the table} +\endfirsthead +\noalign{\vskip0.16\textheight} +\hline +\cline{1-1} \cline{4-4} \cline{6-6} +\hline +\hline +\cline{1-3} \cline{5-6} +\noalign{\vskip1bp} +\noalign{\vskip3cm} +head & head & head & head & head & head\\[1bp] +\cline{1-2} \cline{5-6} +\noalign{\vskip2cc} +\hline +\hline +\cline{1-2} \cline{4-6} +\noalign{\vskip3cm} +\noalign{\vskip10pt} +\noalign{\vskip0.16\textheight} +\noalign{\vskip0.16\textheight} +\noalign{\vskip2cc} +\end{longtable} +\begin{longtable}{|||l|||||} +\toprule +\addlinespace[2cc] +\cmidrule{1-1} \cmidrule{4-4} \cmidrule{6-6} +\toprule +\toprule +\cmidrule{1-3} \cmidrule{5-6} +\addlinespace[1bp] +\addlinespace[3cm] +head & head & head & head & head & head\tabularnewline\addlinespace[1bp] +\cmidrule{1-2} \cmidrule{5-6} +\addlinespace[2cc] +\bottomrule +\bottomrule +\cmidrule{1-2} \cmidrule{4-6} +\addlinespace[3cm] +\end{longtable} +\end{document} diff --git a/test/tex/ltable_clone_0_0.tex b/test/tex/ltable_clone_0_0.tex new file mode 100644 index 0000000..d45c7c6 --- /dev/null +++ b/test/tex/ltable_clone_0_0.tex @@ -0,0 +1,389 @@ +%% LyX 2.0.3 created this file. For more info, see http://www.lyx.org/. +%% Do not edit unless you really know what you are doing. +\documentclass[english,russian]{article} +\usepackage[T1]{fontenc} +\usepackage[utf8x]{inputenc} +\usepackage{geometry} +\geometry{verbose} +\usepackage{array} +\usepackage{longtable} +\usepackage{textcomp} +\usepackage{amstext} +\usepackage{graphicx} + +\makeatletter + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LyX specific LaTeX commands. +\DeclareRobustCommand{\cyrtext}{% + \fontencoding{T2A}\selectfont\def\encodingdefault{T2A}} +\DeclareRobustCommand{\textcyr}[1]{\leavevmode{\cyrtext #1}} +\AtBeginDocument{\DeclareFontEncoding{T2A}{}{}} + +\newcommand{\lyxmathsym}[1]{\ifmmode\begingroup\def\b@ld{bold} + \text{\ifx\math@version\b@ld\bfseries\fi#1}\endgroup\else#1\fi} + +%% Because html converters don't know tabularnewline +\providecommand{\tabularnewline}{\\} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands. +\usepackage{multirow} + + + +\usepackage{babel} + + + + + + +\usepackage{babel} + + + + + + +\usepackage{babel} + + + + + +\usepackage{babel} + + +\makeatother + +\usepackage{babel} +\begin{document} +\begin{flushright} +ф. 07-726А +\par\end{flushright} + +\begin{center} +\textbf{Формулярные данные по 06В.00.0100ВТУ} +\par\end{center} + +\begin{center} +двигателя ТВ7-117В №\rule[-1pt]{3.5cm}{0.4pt} Температура наружного +воздуха $t_{\text{н}}$, \rule[-1pt]{1cm}{0.4pt}, $\,^{\circ}\mbox{C}$ +\par\end{center} + +от\_\_\_\_\_\_\_\_\_\_ <<\rule[-1pt]{1.1cm}{0.4pt}>> \rule[-1pt]{2.5cm}{0.4pt} +20~~~~г.~~~~~~Давление наружного воздуха, $P_{\text{Н}}$\rule[-1pt]{1cm}{0.4pt} +мм. рт. ст. + +Drossel55.Table1 + +\begin{longtable}{|>{\raggedright}m{0.11\paperwidth}|>{\raggedright}m{0.11\paperwidth}|>{\centering}m{0.04\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.09\paperwidth}|>{\centering}m{0.09\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.09\paperwidth}|} +\hline + \newpage +\multirow{2}{0.11\paperwidth}{\centering{}\linebreak{} + Режим работы двигателя} &\multirow{2}{0.11\paperwidth}{\centering{}\linebreak{} + Режим работы двигателя} & & \multirow{2}{0.1\paperwidth}{\textbf{\centering{}}\linebreak{} + Мощность на выводном валу \textbf{N л.с.} } & \multicolumn{2}{c|}{Частота вращения ротора} & \multirow{2}{0.1\paperwidth}{\centering{}Температура газа +перед свободнойтурбиной не более \textbf{t$_{4}$},$\,^{\circ}\mbox{C}$} & \multirow{2}{0.09\paperwidth}{\centering{}Удельный расход +топлива не более \textbf{C$_{R\text{ пр}}$}г/л.с.ч.}\tabularnewline +\hline + & & & & турбо-компрессора не более \textbf{n$_{\text{тк пр}}$}, \% & свободной турбины \textbf{n$_{\lyxmathsym{ст}}$}, \% & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{{*}2,5-минутной мощности} &\multirow{2}{0.11\paperwidth}{{*}2,5-минутной мощности} & ТУ & & 101,0 & 98$\pm$0,5 & 805 & -\tabularnewline +\hline + & & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{30-минутной мощности} &\multirow{2}{0.11\paperwidth}{30-минутной мощности} & ТУ & 3000 & 98,5 & 98$\pm$0,5 & 795 & -\tabularnewline +\hline + & & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{ВЗЛ} &\multirow{2}{0.11\paperwidth}{ВЗЛ} & ТУ & 2800 & 97,5 & 98$\pm$0,5 & 775 & 205\tabularnewline +\hline +\newpage && Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{МП} &\multirow{2}{0.11\paperwidth}{МП} & ТУ & 2100 & 94,0 & 98$\pm$0,5 & 705 & -\tabularnewline +\hline + & & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{МКр} &\multirow{2}{0.11\paperwidth}{МКр} & ТУ & 1900 & 93,0 & 98$\pm$0,5 & 680 & 221\tabularnewline +\hline \newpage + & & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{{*} ЗМГ} &\multirow{2}{0.11\paperwidth}{{*} ЗМГ} & ТУ & - & - & 80$\pm$0,5 & - & -\tabularnewline +\hline + & & Факт & & & & & \tabularnewline +\hline +\end{longtable} + +\begin{flushleft} +{*} - измеренные параметры\hspace*{1in}\textbf{\textsc{Настроечные +параметры}} +\par\end{flushleft} + +\begin{flushleft} +Drossel55.Table2\foreignlanguage{english}{}% +\begin{longtable}{|>{\centering}m{0.15\paperwidth}|>{\centering}m{0.15\paperwidth}|>{\centering}m{0.15\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\raggedright}m{0.19\paperwidth}|} +\hline +\multicolumn{2}{|>{\centering}m{0.2\paperwidth}}{\centering{}\textbf{Параметр} } &\multicolumn{2}{|>{\centering}m{0.2\paperwidth}|}{\centering{}\textbf{Параметр} } & \multirow{2}{0.1\paperwidth}{\textbf{\centering{}Обозначение}} & \multirow{2}{0.1\paperwidth}{\textbf{\centering{}Режим}} & \multirow{2}{0.1\paperwidth}{\textbf{\centering{}Значение, +полученное при испытании}} \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.2\paperwidth}}{ \textbf{Наименование и единица измерения} } &\multicolumn{2}{|>{\centering}p{0.2\paperwidth}|}{ \textbf{Наименование и единица измерения} } & & & \tabularnewline +\endhead +\hline\newpage +\multicolumn{2}{|c}{ 1 } &\multicolumn{2}{|c|}{ 1 } & 2 & 3 & 4 \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.2\paperwidth}}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина частоты вращения + +ротора турбокомпрессора, \%% +\end{minipage}} &\multicolumn{2}{|>{\centering}p{0.2\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина частоты вращения + +ротора турбокомпрессора, \%% +\end{minipage}} & \centering{}$n_{\text{тк\_мг}}0$ & МГ & \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.08\paperwidth}}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина частоты вращения + +ротора турбокомпрессора, \%% +\end{minipage}} &\multicolumn{2}{|>{\centering}p{0.08\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина частоты вращения + +ротора турбокомпрессора, \%% +\end{minipage}} & \centering{}$n_{\text{тк\_взл}}0$ & <<Взлёт>> & \tabularnewline +\hline +\multicolumn{2}{|c}{ % +\begin{minipage}[c]{0.45\columnwidth}% +Настроечная величина минимальной частоты вращения ротора турбокомпрессора, +\%% +\end{minipage}} &\multicolumn{2}{|c|}{ % +\begin{minipage}[c]{0.45\columnwidth}% +Настроечная величина минимальной частоты вращения ротора турбокомпрессора, +\%% +\end{minipage}} & \centering{}$n_{\text{тк\_мин}}0$ & МГ & \tabularnewline +\hline\newpage +\multicolumn{2}{|c}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина перестройки частоты вращения ротора турбокомпрессора +при <<Разрешении РПМ>>,\%% +\end{minipage}} &\multicolumn{2}{|c|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина перестройки частоты вращения ротора турбокомпрессора +при <<Разрешении РПМ>>,\%% +\end{minipage}} & \centering{}$\Delta n_{\text{тк\_взл}}0$ & <<Взлёт>> & \tabularnewline +\hline +\newpage\multicolumn{2}{|>{\centering}p{0.08\paperwidth}}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина перестройки частоты вращения ротора турбокомпрессора +по команде <<Тренировочный режим>>, \%% +\end{minipage}} &\multicolumn{2}{|>{\centering}p{0.08\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина перестройки частоты вращения ротора турбокомпрессора +по команде <<Тренировочный режим>>, \%% +\end{minipage}} & \centering{}$\Delta n_{\text{тк\_тр}}0$ & <<Взлёт>> & \tabularnewline +\hline +\multicolumn{2}{|c}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Расходный коэффициент 1-го контура форсунок% +\end{minipage}} &\multicolumn{2}{|c|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Расходный коэффициент 1-го контура форсунок% +\end{minipage}} & \centering{}$\Psi_{(\mu F)}$ & - & \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.1\paperwidth}}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Программный расход топлива в РС, кг/ч% +\end{minipage}} &\multicolumn{2}{|>{\centering}p{0.1\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Программный расход топлива в РС, кг/ч% +\end{minipage}} & \centering{}$G_{\text{т прог РС МГ}}$ & - & \tabularnewline +\hline +\multirow{2}{0.15\paperwidth}{Параметры измерителя крутящего +момента\foreignlanguage{english}{ } } &\multirow{2}{0.15\paperwidth}{Параметры измерителя крутящего +момента\foreignlanguage{english}{ } } & Начальное смещение, град & \centering{}$\phi_{\text{икм}}0$ & \multirow{2}{0.1\paperwidth}{\centering{}-} & \tabularnewline +\hline + & & Коэффициент характеристики & \centering{}$K$ & & \tabularnewline +\hline +\end{longtable} +\par\end{flushleft} + +Расход масла, л/ч \rule[-1pt]{2cm}{0.4pt} (не более 0,2) + +\begin{flushleft} +\textbf{Зависимость между положением дозирующей иглы и расходом топлива +$G_{\text{т}}=f(\alpha_{\text{дк}})$} +\par\end{flushleft} + +\begin{flushleft} +Drossel55.Table3 +\par\end{flushleft} + +\begin{flushleft} +\begin{longtable}{|>{\centering}p{0.15\paperwidth}|>{\centering}p{0.15\paperwidth}|>{\centering}p{0.1\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|} +\toprule +\multicolumn{2}{|c}{Параметр} &\multicolumn{2}{|c|}{Параметр} & \multicolumn{10}{c|}{Значение, полученное при испытании}\tabularnewline +\midrule +Наименование и единица измерения &Наименование и единица измерения & Обозначение & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10\tabularnewline +\midrule + \newpage Положение дозирующей иглы, град &Положение дозирующей иглы, град & $(\alpha_{\text{дк}})$ & & & & & & & & & & \tabularnewline +\midrule +Расход топлива, кг/ч &Расход топлива, кг/ч & $G_{\text{Т}}$ & & & & & & & & & & \tabularnewline +\midrule +\newpage Исполнитель &Исполнитель & Инженер по испытаниям & \multicolumn{3}{c|}{% +\begin{minipage}[t]{0.1\columnwidth}% +Начальник БТК ИК% +\end{minipage}} & \multicolumn{4}{>{\centering}p{0.15\paperwidth}|}{% +\begin{minipage}[t]{0.15\columnwidth}% +Начальник участка ИД% +\end{minipage}} & \multicolumn{3}{c|}{% +\begin{minipage}[t]{0.15\columnwidth}% +Представитель заказчика% +\end{minipage}}\tabularnewline +\midrule + & & & \multicolumn{3}{c|}{} & \multicolumn{4}{c|}{} & \multicolumn{3}{c|}{}\tabularnewline +\bottomrule +\end{longtable} +\par\end{flushleft} + +\begin{tabular}{|>{\raggedright}m{0.11\paperwidth}|>{\centering}m{0.04\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.09\paperwidth}|>{\centering}m{0.09\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.09\paperwidth}|} +\hline + \newpage +\multirow{2}{0.11\paperwidth}{\centering{}\linebreak{} + Режим работы двигателя} & & \multirow{2}{0.1\paperwidth}{\textbf{\centering{}}\linebreak{} + Мощность на выводном валу \textbf{N л.с.} } & \multicolumn{2}{c|}{Частота вращения ротора} & \multirow{2}{0.1\paperwidth}{\centering{}Температура газа +перед свободнойтурбиной не более \textbf{t$_{4}$},$\,^{\circ}\mbox{C}$} & \multirow{2}{0.09\paperwidth}{\centering{}Удельный расход +топлива не более \textbf{C$_{R\text{ пр}}$}г/л.с.ч.}\tabularnewline +\hline + & & & турбо-компрессора не более \textbf{n$_{\text{тк пр}}$}, \% & свободной турбины \textbf{n$_{\lyxmathsym{ст}}$}, \% & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{{*}2,5-минутной мощности} & ТУ & & 101,0 & 98$\pm$0,5 & 805 & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{30-минутной мощности} & ТУ & 3000 & 98,5 & 98$\pm$0,5 & 795 & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{ВЗЛ} & ТУ & 2800 & 97,5 & 98$\pm$0,5 & 775 & 205\tabularnewline +\hline +\newpage & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{МП} & ТУ & 2100 & 94,0 & 98$\pm$0,5 & 705 & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{МКр} & ТУ & 1900 & 93,0 & 98$\pm$0,5 & 680 & 221\tabularnewline +\hline \newpage + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{{*} ЗМГ} & ТУ & - & - & 80$\pm$0,5 & - & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\end{tabular} + +\begin{flushleft} +{*} - измеренные параметры\hspace*{1in}\textbf{\textsc{Настроечные +параметры}} +\par\end{flushleft} + +\begin{flushleft} +Drossel55.Table2\foreignlanguage{english}{}% +\begin{tabular}{|>{\centering}m{0.15\paperwidth}|>{\centering}m{0.15\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\raggedright}m{0.19\paperwidth}|} +\hline +\hline\newpage +\multicolumn{2}{|c|}{ 1 } & 2 & 3 & 4 \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.2\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина частоты вращения + +ротора турбокомпрессора, \%% +\end{minipage}} & \centering{}$n_{\text{тк\_мг}}0$ & МГ & \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.08\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина частоты вращения + +ротора турбокомпрессора, \%% +\end{minipage}} & \centering{}$n_{\text{тк\_взл}}0$ & <<Взлёт>> & \tabularnewline +\hline +\multicolumn{2}{|c|}{ % +\begin{minipage}[c]{0.45\columnwidth}% +Настроечная величина минимальной частоты вращения ротора турбокомпрессора, +\%% +\end{minipage}} & \centering{}$n_{\text{тк\_мин}}0$ & МГ & \tabularnewline +\hline\newpage +\multicolumn{2}{|c|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина перестройки частоты вращения ротора турбокомпрессора +при <<Разрешении РПМ>>,\%% +\end{minipage}} & \centering{}$\Delta n_{\text{тк\_взл}}0$ & <<Взлёт>> & \tabularnewline +\hline +\newpage\multicolumn{2}{|>{\centering}p{0.08\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина перестройки частоты вращения ротора турбокомпрессора +по команде <<Тренировочный режим>>, \%% +\end{minipage}} & \centering{}$\Delta n_{\text{тк\_тр}}0$ & <<Взлёт>> & \tabularnewline +\hline +\multicolumn{2}{|c|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Расходный коэффициент 1-го контура форсунок% +\end{minipage}} & \centering{}$\Psi_{(\mu F)}$ & - & \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.1\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Программный расход топлива в РС, кг/ч% +\end{minipage}} & \centering{}$G_{\text{т прог РС МГ}}$ & - & \tabularnewline +\hline +\multirow{2}{0.15\paperwidth}{Параметры измерителя крутящего +момента\foreignlanguage{english}{ } } & Начальное смещение, град & \centering{}$\phi_{\text{икм}}0$ & \multirow{2}{0.1\paperwidth}{\centering{}-} & \tabularnewline +\hline + & Коэффициент характеристики & \centering{}$K$ & & \tabularnewline +\hline +\end{tabular} +\par\end{flushleft} + +Расход масла, л/ч \rule[-1pt]{2cm}{0.4pt} (не более 0,2) + +\begin{flushleft} +\textbf{Зависимость между положением дозирующей иглы и расходом топлива +$G_{\text{т}}=f(\alpha_{\text{дк}})$} +\par\end{flushleft} + +\begin{flushleft} +Drossel55.Table3 +\par\end{flushleft} + +\begin{flushleft} +\begin{tabular}{|>{\centering}p{0.15\paperwidth}|>{\centering}p{0.1\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|} +\toprule +\multicolumn{2}{|c|}{Параметр} & \multicolumn{10}{c|}{Значение, полученное при испытании}\tabularnewline +\midrule +Наименование и единица измерения & Обозначение & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10\tabularnewline +\midrule + \newpage Положение дозирующей иглы, град & $(\alpha_{\text{дк}})$ & & & & & & & & & & \tabularnewline +\midrule +Расход топлива, кг/ч & $G_{\text{Т}}$ & & & & & & & & & & \tabularnewline +\midrule +\newpage Исполнитель & Инженер по испытаниям & \multicolumn{3}{c|}{% +\begin{minipage}[t]{0.1\columnwidth}% +Начальник БТК ИК% +\end{minipage}} & \multicolumn{4}{>{\centering}p{0.15\paperwidth}|}{% +\begin{minipage}[t]{0.15\columnwidth}% +Начальник участка ИД% +\end{minipage}} & \multicolumn{3}{c|}{% +\begin{minipage}[t]{0.15\columnwidth}% +Представитель заказчика% +\end{minipage}}\tabularnewline +\midrule + & & \multicolumn{3}{c|}{} & \multicolumn{4}{c|}{} & \multicolumn{3}{c|}{}\tabularnewline +\bottomrule +\end{tabular} +\par\end{flushleft} + + +\end{document} diff --git a/test/tex/ltable_clone_0_1.tex b/test/tex/ltable_clone_0_1.tex new file mode 100644 index 0000000..cfae5c1 --- /dev/null +++ b/test/tex/ltable_clone_0_1.tex @@ -0,0 +1,389 @@ +%% LyX 2.0.3 created this file. For more info, see http://www.lyx.org/. +%% Do not edit unless you really know what you are doing. +\documentclass[english,russian]{article} +\usepackage[T1]{fontenc} +\usepackage[utf8x]{inputenc} +\usepackage{geometry} +\geometry{verbose} +\usepackage{array} +\usepackage{longtable} +\usepackage{textcomp} +\usepackage{amstext} +\usepackage{graphicx} + +\makeatletter + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LyX specific LaTeX commands. +\DeclareRobustCommand{\cyrtext}{% + \fontencoding{T2A}\selectfont\def\encodingdefault{T2A}} +\DeclareRobustCommand{\textcyr}[1]{\leavevmode{\cyrtext #1}} +\AtBeginDocument{\DeclareFontEncoding{T2A}{}{}} + +\newcommand{\lyxmathsym}[1]{\ifmmode\begingroup\def\b@ld{bold} + \text{\ifx\math@version\b@ld\bfseries\fi#1}\endgroup\else#1\fi} + +%% Because html converters don't know tabularnewline +\providecommand{\tabularnewline}{\\} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands. +\usepackage{multirow} + + + +\usepackage{babel} + + + + + + +\usepackage{babel} + + + + + + +\usepackage{babel} + + + + + +\usepackage{babel} + + +\makeatother + +\usepackage{babel} +\begin{document} +\begin{flushright} +ф. 07-726А +\par\end{flushright} + +\begin{center} +\textbf{Формулярные данные по 06В.00.0100ВТУ} +\par\end{center} + +\begin{center} +двигателя ТВ7-117В №\rule[-1pt]{3.5cm}{0.4pt} Температура наружного +воздуха $t_{\text{н}}$, \rule[-1pt]{1cm}{0.4pt}, $\,^{\circ}\mbox{C}$ +\par\end{center} + +от\_\_\_\_\_\_\_\_\_\_ <<\rule[-1pt]{1.1cm}{0.4pt}>> \rule[-1pt]{2.5cm}{0.4pt} +20~~~~г.~~~~~~Давление наружного воздуха, $P_{\text{Н}}$\rule[-1pt]{1cm}{0.4pt} +мм. рт. ст. + +Drossel55.Table1 + +\begin{longtable}{|>{\raggedright}m{0.11\paperwidth}|>{\raggedright}m{0.11\paperwidth}|>{\centering}m{0.04\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.09\paperwidth}|>{\centering}m{0.09\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.09\paperwidth}|} +\hline + \newpage +\multirow{2}{0.11\paperwidth}{\centering{}\linebreak{} + Режим работы двигателя} &\multirow{2}{0.11\paperwidth}{\centering{}\linebreak{} + Режим работы двигателя} & & \multirow{2}{0.1\paperwidth}{\textbf{\centering{}}\linebreak{} + Мощность на выводном валу \textbf{N л.с.} } & \multicolumn{2}{c|}{Частота вращения ротора} & \multirow{2}{0.1\paperwidth}{\centering{}Температура газа +перед свободнойтурбиной не более \textbf{t$_{4}$},$\,^{\circ}\mbox{C}$} & \multirow{2}{0.09\paperwidth}{\centering{}Удельный расход +топлива не более \textbf{C$_{R\text{ пр}}$}г/л.с.ч.}\tabularnewline +\hline + & & & & турбо-компрессора не более \textbf{n$_{\text{тк пр}}$}, \% & свободной турбины \textbf{n$_{\lyxmathsym{ст}}$}, \% & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{{*}2,5-минутной мощности} &\multirow{2}{0.11\paperwidth}{{*}2,5-минутной мощности} & ТУ & & 101,0 & 98$\pm$0,5 & 805 & -\tabularnewline +\hline + & & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{30-минутной мощности} &\multirow{2}{0.11\paperwidth}{30-минутной мощности} & ТУ & 3000 & 98,5 & 98$\pm$0,5 & 795 & -\tabularnewline +\hline + & & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{ВЗЛ} &\multirow{2}{0.11\paperwidth}{ВЗЛ} & ТУ & 2800 & 97,5 & 98$\pm$0,5 & 775 & 205\tabularnewline +\hline +\newpage && Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{МП} &\multirow{2}{0.11\paperwidth}{МП} & ТУ & 2100 & 94,0 & 98$\pm$0,5 & 705 & -\tabularnewline +\hline + & & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{МКр} &\multirow{2}{0.11\paperwidth}{МКр} & ТУ & 1900 & 93,0 & 98$\pm$0,5 & 680 & 221\tabularnewline +\hline \newpage + & & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{{*} ЗМГ} &\multirow{2}{0.11\paperwidth}{{*} ЗМГ} & ТУ & - & - & 80$\pm$0,5 & - & -\tabularnewline +\hline + & & Факт & & & & & \tabularnewline +\hline +\end{longtable} + +\begin{flushleft} +{*} - измеренные параметры\hspace*{1in}\textbf{\textsc{Настроечные +параметры}} +\par\end{flushleft} + +\begin{flushleft} +Drossel55.Table2\foreignlanguage{english}{}% +\begin{longtable}{|>{\centering}m{0.15\paperwidth}|>{\centering}m{0.15\paperwidth}|>{\centering}m{0.15\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\raggedright}m{0.19\paperwidth}|} +\hline +\multicolumn{1}{|>{\centering}m{0.2\paperwidth}}{\centering{}\textbf{Параметр} } &\multicolumn{2}{|>{\centering}m{0.2\paperwidth}|}{\centering{}\textbf{Параметр} } & \multirow{2}{0.1\paperwidth}{\textbf{\centering{}Обозначение}} & \multirow{2}{0.1\paperwidth}{\textbf{\centering{}Режим}} & \multirow{2}{0.1\paperwidth}{\textbf{\centering{}Значение, +полученное при испытании}} \tabularnewline +\hline +\multicolumn{1}{|>{\centering}p{0.2\paperwidth}}{ \textbf{Наименование и единица измерения} } &\multicolumn{2}{|>{\centering}p{0.2\paperwidth}|}{ \textbf{Наименование и единица измерения} } & & & \tabularnewline +\endhead +\hline\newpage +\multicolumn{1}{|c}{ 1 } &\multicolumn{2}{|c|}{ 1 } & 2 & 3 & 4 \tabularnewline +\hline +\multicolumn{1}{|>{\centering}p{0.2\paperwidth}}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина частоты вращения + +ротора турбокомпрессора, \%% +\end{minipage}} &\multicolumn{2}{|>{\centering}p{0.2\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина частоты вращения + +ротора турбокомпрессора, \%% +\end{minipage}} & \centering{}$n_{\text{тк\_мг}}0$ & МГ & \tabularnewline +\hline +\multicolumn{1}{|>{\centering}p{0.08\paperwidth}}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина частоты вращения + +ротора турбокомпрессора, \%% +\end{minipage}} &\multicolumn{2}{|>{\centering}p{0.08\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина частоты вращения + +ротора турбокомпрессора, \%% +\end{minipage}} & \centering{}$n_{\text{тк\_взл}}0$ & <<Взлёт>> & \tabularnewline +\hline +\multicolumn{1}{|c}{ % +\begin{minipage}[c]{0.45\columnwidth}% +Настроечная величина минимальной частоты вращения ротора турбокомпрессора, +\%% +\end{minipage}} &\multicolumn{2}{|c|}{ % +\begin{minipage}[c]{0.45\columnwidth}% +Настроечная величина минимальной частоты вращения ротора турбокомпрессора, +\%% +\end{minipage}} & \centering{}$n_{\text{тк\_мин}}0$ & МГ & \tabularnewline +\hline\newpage +\multicolumn{1}{|c}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина перестройки частоты вращения ротора турбокомпрессора +при <<Разрешении РПМ>>,\%% +\end{minipage}} &\multicolumn{2}{|c|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина перестройки частоты вращения ротора турбокомпрессора +при <<Разрешении РПМ>>,\%% +\end{minipage}} & \centering{}$\Delta n_{\text{тк\_взл}}0$ & <<Взлёт>> & \tabularnewline +\hline +\newpage\multicolumn{1}{|>{\centering}p{0.08\paperwidth}}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина перестройки частоты вращения ротора турбокомпрессора +по команде <<Тренировочный режим>>, \%% +\end{minipage}} &\multicolumn{2}{|>{\centering}p{0.08\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина перестройки частоты вращения ротора турбокомпрессора +по команде <<Тренировочный режим>>, \%% +\end{minipage}} & \centering{}$\Delta n_{\text{тк\_тр}}0$ & <<Взлёт>> & \tabularnewline +\hline +\multicolumn{1}{|c}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Расходный коэффициент 1-го контура форсунок% +\end{minipage}} &\multicolumn{2}{|c|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Расходный коэффициент 1-го контура форсунок% +\end{minipage}} & \centering{}$\Psi_{(\mu F)}$ & - & \tabularnewline +\hline +\multicolumn{1}{|>{\centering}p{0.1\paperwidth}}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Программный расход топлива в РС, кг/ч% +\end{minipage}} &\multicolumn{2}{|>{\centering}p{0.1\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Программный расход топлива в РС, кг/ч% +\end{minipage}} & \centering{}$G_{\text{т прог РС МГ}}$ & - & \tabularnewline +\hline +\multirow{2}{0.15\paperwidth}{Параметры измерителя крутящего +момента\foreignlanguage{english}{ } } &\multirow{2}{0.15\paperwidth}{Параметры измерителя крутящего +момента\foreignlanguage{english}{ } } & Начальное смещение, град & \centering{}$\phi_{\text{икм}}0$ & \multirow{2}{0.1\paperwidth}{\centering{}-} & \tabularnewline +\hline + & & Коэффициент характеристики & \centering{}$K$ & & \tabularnewline +\hline +\end{longtable} +\par\end{flushleft} + +Расход масла, л/ч \rule[-1pt]{2cm}{0.4pt} (не более 0,2) + +\begin{flushleft} +\textbf{Зависимость между положением дозирующей иглы и расходом топлива +$G_{\text{т}}=f(\alpha_{\text{дк}})$} +\par\end{flushleft} + +\begin{flushleft} +Drossel55.Table3 +\par\end{flushleft} + +\begin{flushleft} +\begin{longtable}{|>{\centering}p{0.15\paperwidth}|>{\centering}p{0.15\paperwidth}|>{\centering}p{0.1\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|} +\toprule +\multicolumn{1}{|c}{Параметр} &\multicolumn{2}{|c|}{Параметр} & \multicolumn{10}{c|}{Значение, полученное при испытании}\tabularnewline +\midrule +Наименование и единица измерения &Наименование и единица измерения & Обозначение & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10\tabularnewline +\midrule + \newpage Положение дозирующей иглы, град &Положение дозирующей иглы, град & $(\alpha_{\text{дк}})$ & & & & & & & & & & \tabularnewline +\midrule +Расход топлива, кг/ч &Расход топлива, кг/ч & $G_{\text{Т}}$ & & & & & & & & & & \tabularnewline +\midrule +\newpage Исполнитель &Исполнитель & Инженер по испытаниям & \multicolumn{3}{c|}{% +\begin{minipage}[t]{0.1\columnwidth}% +Начальник БТК ИК% +\end{minipage}} & \multicolumn{4}{>{\centering}p{0.15\paperwidth}|}{% +\begin{minipage}[t]{0.15\columnwidth}% +Начальник участка ИД% +\end{minipage}} & \multicolumn{3}{c|}{% +\begin{minipage}[t]{0.15\columnwidth}% +Представитель заказчика% +\end{minipage}}\tabularnewline +\midrule + & & & \multicolumn{3}{c|}{} & \multicolumn{4}{c|}{} & \multicolumn{3}{c|}{}\tabularnewline +\bottomrule +\end{longtable} +\par\end{flushleft} + +\begin{tabular}{|>{\raggedright}m{0.11\paperwidth}|>{\centering}m{0.04\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.09\paperwidth}|>{\centering}m{0.09\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.09\paperwidth}|} +\hline + \newpage +\multirow{2}{0.11\paperwidth}{\centering{}\linebreak{} + Режим работы двигателя} & & \multirow{2}{0.1\paperwidth}{\textbf{\centering{}}\linebreak{} + Мощность на выводном валу \textbf{N л.с.} } & \multicolumn{2}{c|}{Частота вращения ротора} & \multirow{2}{0.1\paperwidth}{\centering{}Температура газа +перед свободнойтурбиной не более \textbf{t$_{4}$},$\,^{\circ}\mbox{C}$} & \multirow{2}{0.09\paperwidth}{\centering{}Удельный расход +топлива не более \textbf{C$_{R\text{ пр}}$}г/л.с.ч.}\tabularnewline +\hline + & & & турбо-компрессора не более \textbf{n$_{\text{тк пр}}$}, \% & свободной турбины \textbf{n$_{\lyxmathsym{ст}}$}, \% & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{{*}2,5-минутной мощности} & ТУ & & 101,0 & 98$\pm$0,5 & 805 & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{30-минутной мощности} & ТУ & 3000 & 98,5 & 98$\pm$0,5 & 795 & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{ВЗЛ} & ТУ & 2800 & 97,5 & 98$\pm$0,5 & 775 & 205\tabularnewline +\hline +\newpage & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{МП} & ТУ & 2100 & 94,0 & 98$\pm$0,5 & 705 & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{МКр} & ТУ & 1900 & 93,0 & 98$\pm$0,5 & 680 & 221\tabularnewline +\hline \newpage + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{{*} ЗМГ} & ТУ & - & - & 80$\pm$0,5 & - & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\end{tabular} + +\begin{flushleft} +{*} - измеренные параметры\hspace*{1in}\textbf{\textsc{Настроечные +параметры}} +\par\end{flushleft} + +\begin{flushleft} +Drossel55.Table2\foreignlanguage{english}{}% +\begin{tabular}{|>{\centering}m{0.15\paperwidth}|>{\centering}m{0.15\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\raggedright}m{0.19\paperwidth}|} +\hline +\hline\newpage +\multicolumn{2}{|c|}{ 1 } & 2 & 3 & 4 \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.2\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина частоты вращения + +ротора турбокомпрессора, \%% +\end{minipage}} & \centering{}$n_{\text{тк\_мг}}0$ & МГ & \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.08\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина частоты вращения + +ротора турбокомпрессора, \%% +\end{minipage}} & \centering{}$n_{\text{тк\_взл}}0$ & <<Взлёт>> & \tabularnewline +\hline +\multicolumn{2}{|c|}{ % +\begin{minipage}[c]{0.45\columnwidth}% +Настроечная величина минимальной частоты вращения ротора турбокомпрессора, +\%% +\end{minipage}} & \centering{}$n_{\text{тк\_мин}}0$ & МГ & \tabularnewline +\hline\newpage +\multicolumn{2}{|c|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина перестройки частоты вращения ротора турбокомпрессора +при <<Разрешении РПМ>>,\%% +\end{minipage}} & \centering{}$\Delta n_{\text{тк\_взл}}0$ & <<Взлёт>> & \tabularnewline +\hline +\newpage\multicolumn{2}{|>{\centering}p{0.08\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина перестройки частоты вращения ротора турбокомпрессора +по команде <<Тренировочный режим>>, \%% +\end{minipage}} & \centering{}$\Delta n_{\text{тк\_тр}}0$ & <<Взлёт>> & \tabularnewline +\hline +\multicolumn{2}{|c|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Расходный коэффициент 1-го контура форсунок% +\end{minipage}} & \centering{}$\Psi_{(\mu F)}$ & - & \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.1\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Программный расход топлива в РС, кг/ч% +\end{minipage}} & \centering{}$G_{\text{т прог РС МГ}}$ & - & \tabularnewline +\hline +\multirow{2}{0.15\paperwidth}{Параметры измерителя крутящего +момента\foreignlanguage{english}{ } } & Начальное смещение, град & \centering{}$\phi_{\text{икм}}0$ & \multirow{2}{0.1\paperwidth}{\centering{}-} & \tabularnewline +\hline + & Коэффициент характеристики & \centering{}$K$ & & \tabularnewline +\hline +\end{tabular} +\par\end{flushleft} + +Расход масла, л/ч \rule[-1pt]{2cm}{0.4pt} (не более 0,2) + +\begin{flushleft} +\textbf{Зависимость между положением дозирующей иглы и расходом топлива +$G_{\text{т}}=f(\alpha_{\text{дк}})$} +\par\end{flushleft} + +\begin{flushleft} +Drossel55.Table3 +\par\end{flushleft} + +\begin{flushleft} +\begin{tabular}{|>{\centering}p{0.15\paperwidth}|>{\centering}p{0.1\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|} +\toprule +\multicolumn{2}{|c|}{Параметр} & \multicolumn{10}{c|}{Значение, полученное при испытании}\tabularnewline +\midrule +Наименование и единица измерения & Обозначение & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10\tabularnewline +\midrule + \newpage Положение дозирующей иглы, град & $(\alpha_{\text{дк}})$ & & & & & & & & & & \tabularnewline +\midrule +Расход топлива, кг/ч & $G_{\text{Т}}$ & & & & & & & & & & \tabularnewline +\midrule +\newpage Исполнитель & Инженер по испытаниям & \multicolumn{3}{c|}{% +\begin{minipage}[t]{0.1\columnwidth}% +Начальник БТК ИК% +\end{minipage}} & \multicolumn{4}{>{\centering}p{0.15\paperwidth}|}{% +\begin{minipage}[t]{0.15\columnwidth}% +Начальник участка ИД% +\end{minipage}} & \multicolumn{3}{c|}{% +\begin{minipage}[t]{0.15\columnwidth}% +Представитель заказчика% +\end{minipage}}\tabularnewline +\midrule + & & \multicolumn{3}{c|}{} & \multicolumn{4}{c|}{} & \multicolumn{3}{c|}{}\tabularnewline +\bottomrule +\end{tabular} +\par\end{flushleft} + + +\end{document} diff --git a/test/tex/ltable_clone_0_1000.tex b/test/tex/ltable_clone_0_1000.tex new file mode 100644 index 0000000..c71d52a --- /dev/null +++ b/test/tex/ltable_clone_0_1000.tex @@ -0,0 +1,359 @@ +%% LyX 2.0.3 created this file. For more info, see http://www.lyx.org/. +%% Do not edit unless you really know what you are doing. +\documentclass[english,russian]{article} +\usepackage[T1]{fontenc} +\usepackage[utf8x]{inputenc} +\usepackage{geometry} +\geometry{verbose} +\usepackage{array} +\usepackage{longtable} +\usepackage{textcomp} +\usepackage{amstext} +\usepackage{graphicx} + +\makeatletter + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LyX specific LaTeX commands. +\DeclareRobustCommand{\cyrtext}{% + \fontencoding{T2A}\selectfont\def\encodingdefault{T2A}} +\DeclareRobustCommand{\textcyr}[1]{\leavevmode{\cyrtext #1}} +\AtBeginDocument{\DeclareFontEncoding{T2A}{}{}} + +\newcommand{\lyxmathsym}[1]{\ifmmode\begingroup\def\b@ld{bold} + \text{\ifx\math@version\b@ld\bfseries\fi#1}\endgroup\else#1\fi} + +%% Because html converters don't know tabularnewline +\providecommand{\tabularnewline}{\\} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands. +\usepackage{multirow} + + + +\usepackage{babel} + + + + + + +\usepackage{babel} + + + + + + +\usepackage{babel} + + + + + +\usepackage{babel} + + +\makeatother + +\usepackage{babel} +\begin{document} +\begin{flushright} +ф. 07-726А +\par\end{flushright} + +\begin{center} +\textbf{Формулярные данные по 06В.00.0100ВТУ} +\par\end{center} + +\begin{center} +двигателя ТВ7-117В №\rule[-1pt]{3.5cm}{0.4pt} Температура наружного +воздуха $t_{\text{н}}$, \rule[-1pt]{1cm}{0.4pt}, $\,^{\circ}\mbox{C}$ +\par\end{center} + +от\_\_\_\_\_\_\_\_\_\_ <<\rule[-1pt]{1.1cm}{0.4pt}>> \rule[-1pt]{2.5cm}{0.4pt} +20~~~~г.~~~~~~Давление наружного воздуха, $P_{\text{Н}}$\rule[-1pt]{1cm}{0.4pt} +мм. рт. ст. + +Drossel55.Table1 + +\begin{longtable}{|>{\raggedright}m{0.11\paperwidth}|>{\centering}m{0.04\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.09\paperwidth}|>{\centering}m{0.09\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.09\paperwidth}|} +\hline + \newpage +\multirow{2}{0.11\paperwidth}{\centering{}\linebreak{} + Режим работы двигателя} & & \multirow{2}{0.1\paperwidth}{\textbf{\centering{}}\linebreak{} + Мощность на выводном валу \textbf{N л.с.} } & \multicolumn{2}{c|}{Частота вращения ротора} & \multirow{2}{0.1\paperwidth}{\centering{}Температура газа +перед свободнойтурбиной не более \textbf{t$_{4}$},$\,^{\circ}\mbox{C}$} & \multirow{2}{0.09\paperwidth}{\centering{}Удельный расход +топлива не более \textbf{C$_{R\text{ пр}}$}г/л.с.ч.}\tabularnewline +\hline + & & & турбо-компрессора не более \textbf{n$_{\text{тк пр}}$}, \% & свободной турбины \textbf{n$_{\lyxmathsym{ст}}$}, \% & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{{*}2,5-минутной мощности} & ТУ & & 101,0 & 98$\pm$0,5 & 805 & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{30-минутной мощности} & ТУ & 3000 & 98,5 & 98$\pm$0,5 & 795 & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{ВЗЛ} & ТУ & 2800 & 97,5 & 98$\pm$0,5 & 775 & 205\tabularnewline +\hline +\newpage & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{МП} & ТУ & 2100 & 94,0 & 98$\pm$0,5 & 705 & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{МКр} & ТУ & 1900 & 93,0 & 98$\pm$0,5 & 680 & 221\tabularnewline +\hline \newpage + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{{*} ЗМГ} & ТУ & - & - & 80$\pm$0,5 & - & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\end{longtable} + +\begin{flushleft} +{*} - измеренные параметры\hspace*{1in}\textbf{\textsc{Настроечные +параметры}} +\par\end{flushleft} + +\begin{flushleft} +Drossel55.Table2\foreignlanguage{english}{}% +\begin{longtable}{|>{\centering}m{0.15\paperwidth}|>{\centering}m{0.15\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\raggedright}m{0.19\paperwidth}|} +\hline +\multicolumn{2}{|>{\centering}m{0.2\paperwidth}|}{\centering{}\textbf{Параметр} } & \multirow{2}{0.1\paperwidth}{\textbf{\centering{}Обозначение}} & \multirow{2}{0.1\paperwidth}{\textbf{\centering{}Режим}} & \multirow{2}{0.1\paperwidth}{\textbf{\centering{}Значение, +полученное при испытании}} \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.2\paperwidth}|}{ \textbf{Наименование и единица измерения} } & & & \tabularnewline +\endhead +\hline\newpage +\multicolumn{2}{|c|}{ 1 } & 2 & 3 & 4 \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.2\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина частоты вращения + +ротора турбокомпрессора, \%% +\end{minipage}} & \centering{}$n_{\text{тк\_мг}}0$ & МГ & \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.08\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина частоты вращения + +ротора турбокомпрессора, \%% +\end{minipage}} & \centering{}$n_{\text{тк\_взл}}0$ & <<Взлёт>> & \tabularnewline +\hline +\multicolumn{2}{|c|}{ % +\begin{minipage}[c]{0.45\columnwidth}% +Настроечная величина минимальной частоты вращения ротора турбокомпрессора, +\%% +\end{minipage}} & \centering{}$n_{\text{тк\_мин}}0$ & МГ & \tabularnewline +\hline\newpage +\multicolumn{2}{|c|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина перестройки частоты вращения ротора турбокомпрессора +при <<Разрешении РПМ>>,\%% +\end{minipage}} & \centering{}$\Delta n_{\text{тк\_взл}}0$ & <<Взлёт>> & \tabularnewline +\hline +\newpage\multicolumn{2}{|>{\centering}p{0.08\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина перестройки частоты вращения ротора турбокомпрессора +по команде <<Тренировочный режим>>, \%% +\end{minipage}} & \centering{}$\Delta n_{\text{тк\_тр}}0$ & <<Взлёт>> & \tabularnewline +\hline +\multicolumn{2}{|c|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Расходный коэффициент 1-го контура форсунок% +\end{minipage}} & \centering{}$\Psi_{(\mu F)}$ & - & \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.1\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Программный расход топлива в РС, кг/ч% +\end{minipage}} & \centering{}$G_{\text{т прог РС МГ}}$ & - & \tabularnewline +\hline +\multirow{2}{0.15\paperwidth}{Параметры измерителя крутящего +момента\foreignlanguage{english}{ } } & Начальное смещение, град & \centering{}$\phi_{\text{икм}}0$ & \multirow{2}{0.1\paperwidth}{\centering{}-} & \tabularnewline +\hline + & Коэффициент характеристики & \centering{}$K$ & & \tabularnewline +\hline +\end{longtable} +\par\end{flushleft} + +Расход масла, л/ч \rule[-1pt]{2cm}{0.4pt} (не более 0,2) + +\begin{flushleft} +\textbf{Зависимость между положением дозирующей иглы и расходом топлива +$G_{\text{т}}=f(\alpha_{\text{дк}})$} +\par\end{flushleft} + +\begin{flushleft} +Drossel55.Table3 +\par\end{flushleft} + +\begin{flushleft} +\begin{longtable}{|>{\centering}p{0.15\paperwidth}|>{\centering}p{0.1\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|} +\toprule +\multicolumn{2}{|c|}{Параметр} & \multicolumn{10}{c|}{Значение, полученное при испытании}\tabularnewline +\midrule +Наименование и единица измерения & Обозначение & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10\tabularnewline +\midrule + \newpage Положение дозирующей иглы, град & $(\alpha_{\text{дк}})$ & & & & & & & & & & \tabularnewline +\midrule +Расход топлива, кг/ч & $G_{\text{Т}}$ & & & & & & & & & & \tabularnewline +\midrule +\newpage Исполнитель & Инженер по испытаниям & \multicolumn{3}{c|}{% +\begin{minipage}[t]{0.1\columnwidth}% +Начальник БТК ИК% +\end{minipage}} & \multicolumn{4}{>{\centering}p{0.15\paperwidth}|}{% +\begin{minipage}[t]{0.15\columnwidth}% +Начальник участка ИД% +\end{minipage}} & \multicolumn{3}{c|}{% +\begin{minipage}[t]{0.15\columnwidth}% +Представитель заказчика% +\end{minipage}}\tabularnewline +\midrule + & & \multicolumn{3}{c|}{} & \multicolumn{4}{c|}{} & \multicolumn{3}{c|}{}\tabularnewline +\bottomrule +\end{longtable} +\par\end{flushleft} + +\begin{tabular}{|>{\raggedright}m{0.11\paperwidth}|>{\centering}m{0.04\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.09\paperwidth}|>{\centering}m{0.09\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.09\paperwidth}|} +\hline + \newpage +\multirow{2}{0.11\paperwidth}{\centering{}\linebreak{} + Режим работы двигателя} & & \multirow{2}{0.1\paperwidth}{\textbf{\centering{}}\linebreak{} + Мощность на выводном валу \textbf{N л.с.} } & \multicolumn{2}{c|}{Частота вращения ротора} & \multirow{2}{0.1\paperwidth}{\centering{}Температура газа +перед свободнойтурбиной не более \textbf{t$_{4}$},$\,^{\circ}\mbox{C}$} & \multirow{2}{0.09\paperwidth}{\centering{}Удельный расход +топлива не более \textbf{C$_{R\text{ пр}}$}г/л.с.ч.}\tabularnewline +\hline + & & & турбо-компрессора не более \textbf{n$_{\text{тк пр}}$}, \% & свободной турбины \textbf{n$_{\lyxmathsym{ст}}$}, \% & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{{*}2,5-минутной мощности} & ТУ & & 101,0 & 98$\pm$0,5 & 805 & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{30-минутной мощности} & ТУ & 3000 & 98,5 & 98$\pm$0,5 & 795 & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{ВЗЛ} & ТУ & 2800 & 97,5 & 98$\pm$0,5 & 775 & 205\tabularnewline +\hline +\newpage & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{МП} & ТУ & 2100 & 94,0 & 98$\pm$0,5 & 705 & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{МКр} & ТУ & 1900 & 93,0 & 98$\pm$0,5 & 680 & 221\tabularnewline +\hline \newpage + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{{*} ЗМГ} & ТУ & - & - & 80$\pm$0,5 & - & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\end{tabular} + +\begin{flushleft} +{*} - измеренные параметры\hspace*{1in}\textbf{\textsc{Настроечные +параметры}} +\par\end{flushleft} + +\begin{flushleft} +Drossel55.Table2\foreignlanguage{english}{}% +\begin{tabular}{|>{\centering}m{0.15\paperwidth}|>{\centering}m{0.15\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\raggedright}m{0.19\paperwidth}|} +\hline +\hline\newpage +\multicolumn{2}{|c|}{ 1 } & 2 & 3 & 4 \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.2\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина частоты вращения + +ротора турбокомпрессора, \%% +\end{minipage}} & \centering{}$n_{\text{тк\_мг}}0$ & МГ & \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.08\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина частоты вращения + +ротора турбокомпрессора, \%% +\end{minipage}} & \centering{}$n_{\text{тк\_взл}}0$ & <<Взлёт>> & \tabularnewline +\hline +\multicolumn{2}{|c|}{ % +\begin{minipage}[c]{0.45\columnwidth}% +Настроечная величина минимальной частоты вращения ротора турбокомпрессора, +\%% +\end{minipage}} & \centering{}$n_{\text{тк\_мин}}0$ & МГ & \tabularnewline +\hline\newpage +\multicolumn{2}{|c|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина перестройки частоты вращения ротора турбокомпрессора +при <<Разрешении РПМ>>,\%% +\end{minipage}} & \centering{}$\Delta n_{\text{тк\_взл}}0$ & <<Взлёт>> & \tabularnewline +\hline +\newpage\multicolumn{2}{|>{\centering}p{0.08\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина перестройки частоты вращения ротора турбокомпрессора +по команде <<Тренировочный режим>>, \%% +\end{minipage}} & \centering{}$\Delta n_{\text{тк\_тр}}0$ & <<Взлёт>> & \tabularnewline +\hline +\multicolumn{2}{|c|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Расходный коэффициент 1-го контура форсунок% +\end{minipage}} & \centering{}$\Psi_{(\mu F)}$ & - & \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.1\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Программный расход топлива в РС, кг/ч% +\end{minipage}} & \centering{}$G_{\text{т прог РС МГ}}$ & - & \tabularnewline +\hline +\multirow{2}{0.15\paperwidth}{Параметры измерителя крутящего +момента\foreignlanguage{english}{ } } & Начальное смещение, град & \centering{}$\phi_{\text{икм}}0$ & \multirow{2}{0.1\paperwidth}{\centering{}-} & \tabularnewline +\hline + & Коэффициент характеристики & \centering{}$K$ & & \tabularnewline +\hline +\end{tabular} +\par\end{flushleft} + +Расход масла, л/ч \rule[-1pt]{2cm}{0.4pt} (не более 0,2) + +\begin{flushleft} +\textbf{Зависимость между положением дозирующей иглы и расходом топлива +$G_{\text{т}}=f(\alpha_{\text{дк}})$} +\par\end{flushleft} + +\begin{flushleft} +Drossel55.Table3 +\par\end{flushleft} + +\begin{flushleft} +\begin{tabular}{|>{\centering}p{0.15\paperwidth}|>{\centering}p{0.1\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|} +\toprule +\multicolumn{2}{|c|}{Параметр} & \multicolumn{10}{c|}{Значение, полученное при испытании}\tabularnewline +\midrule +Наименование и единица измерения & Обозначение & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10\tabularnewline +\midrule + \newpage Положение дозирующей иглы, град & $(\alpha_{\text{дк}})$ & & & & & & & & & & \tabularnewline +\midrule +Расход топлива, кг/ч & $G_{\text{Т}}$ & & & & & & & & & & \tabularnewline +\midrule +\newpage Исполнитель & Инженер по испытаниям & \multicolumn{3}{c|}{% +\begin{minipage}[t]{0.1\columnwidth}% +Начальник БТК ИК% +\end{minipage}} & \multicolumn{4}{>{\centering}p{0.15\paperwidth}|}{% +\begin{minipage}[t]{0.15\columnwidth}% +Начальник участка ИД% +\end{minipage}} & \multicolumn{3}{c|}{% +\begin{minipage}[t]{0.15\columnwidth}% +Представитель заказчика% +\end{minipage}}\tabularnewline +\midrule + & & \multicolumn{3}{c|}{} & \multicolumn{4}{c|}{} & \multicolumn{3}{c|}{}\tabularnewline +\bottomrule +\end{tabular} +\par\end{flushleft} + + +\end{document} diff --git a/test/tex/ltable_clone_0_last.tex b/test/tex/ltable_clone_0_last.tex new file mode 100644 index 0000000..d071dfe --- /dev/null +++ b/test/tex/ltable_clone_0_last.tex @@ -0,0 +1,389 @@ +%% LyX 2.0.3 created this file. For more info, see http://www.lyx.org/. +%% Do not edit unless you really know what you are doing. +\documentclass[english,russian]{article} +\usepackage[T1]{fontenc} +\usepackage[utf8x]{inputenc} +\usepackage{geometry} +\geometry{verbose} +\usepackage{array} +\usepackage{longtable} +\usepackage{textcomp} +\usepackage{amstext} +\usepackage{graphicx} + +\makeatletter + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LyX specific LaTeX commands. +\DeclareRobustCommand{\cyrtext}{% + \fontencoding{T2A}\selectfont\def\encodingdefault{T2A}} +\DeclareRobustCommand{\textcyr}[1]{\leavevmode{\cyrtext #1}} +\AtBeginDocument{\DeclareFontEncoding{T2A}{}{}} + +\newcommand{\lyxmathsym}[1]{\ifmmode\begingroup\def\b@ld{bold} + \text{\ifx\math@version\b@ld\bfseries\fi#1}\endgroup\else#1\fi} + +%% Because html converters don't know tabularnewline +\providecommand{\tabularnewline}{\\} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands. +\usepackage{multirow} + + + +\usepackage{babel} + + + + + + +\usepackage{babel} + + + + + + +\usepackage{babel} + + + + + +\usepackage{babel} + + +\makeatother + +\usepackage{babel} +\begin{document} +\begin{flushright} +ф. 07-726А +\par\end{flushright} + +\begin{center} +\textbf{Формулярные данные по 06В.00.0100ВТУ} +\par\end{center} + +\begin{center} +двигателя ТВ7-117В №\rule[-1pt]{3.5cm}{0.4pt} Температура наружного +воздуха $t_{\text{н}}$, \rule[-1pt]{1cm}{0.4pt}, $\,^{\circ}\mbox{C}$ +\par\end{center} + +от\_\_\_\_\_\_\_\_\_\_ <<\rule[-1pt]{1.1cm}{0.4pt}>> \rule[-1pt]{2.5cm}{0.4pt} +20~~~~г.~~~~~~Давление наружного воздуха, $P_{\text{Н}}$\rule[-1pt]{1cm}{0.4pt} +мм. рт. ст. + +Drossel55.Table1 + +\begin{longtable}{|>{\raggedright}m{0.11\paperwidth}|>{\centering}m{0.04\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.09\paperwidth}|>{\centering}m{0.09\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\raggedright}m{0.11\paperwidth}|>{\centering}m{0.09\paperwidth}|} +\hline + \newpage +\multirow{2}{0.11\paperwidth}{\centering{}\linebreak{} + Режим работы двигателя} & & \multirow{2}{0.1\paperwidth}{\textbf{\centering{}}\linebreak{} + Мощность на выводном валу \textbf{N л.с.} } & \multicolumn{2}{c|}{Частота вращения ротора} & \multirow{2}{0.1\paperwidth}{\centering{}Температура газа +перед свободнойтурбиной не более \textbf{t$_{4}$},$\,^{\circ}\mbox{C}$} &\multirow{2}{0.11\paperwidth}{\centering{}\linebreak{} + Режим работы двигателя} & \multirow{2}{0.09\paperwidth}{\centering{}Удельный расход +топлива не более \textbf{C$_{R\text{ пр}}$}г/л.с.ч.}\tabularnewline +\hline + & & & турбо-компрессора не более \textbf{n$_{\text{тк пр}}$}, \% & свободной турбины \textbf{n$_{\lyxmathsym{ст}}$}, \% & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{{*}2,5-минутной мощности} & ТУ & & 101,0 & 98$\pm$0,5 & 805 &\multirow{2}{0.11\paperwidth}{{*}2,5-минутной мощности} & -\tabularnewline +\hline + & Факт & & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{30-минутной мощности} & ТУ & 3000 & 98,5 & 98$\pm$0,5 & 795 &\multirow{2}{0.11\paperwidth}{30-минутной мощности} & -\tabularnewline +\hline + & Факт & & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{ВЗЛ} & ТУ & 2800 & 97,5 & 98$\pm$0,5 & 775 &\multirow{2}{0.11\paperwidth}{ВЗЛ} & 205\tabularnewline +\hline +\newpage & Факт & & & & && \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{МП} & ТУ & 2100 & 94,0 & 98$\pm$0,5 & 705 &\multirow{2}{0.11\paperwidth}{МП} & -\tabularnewline +\hline + & Факт & & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{МКр} & ТУ & 1900 & 93,0 & 98$\pm$0,5 & 680 &\multirow{2}{0.11\paperwidth}{МКр} & 221\tabularnewline +\hline \newpage + & Факт & & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{{*} ЗМГ} & ТУ & - & - & 80$\pm$0,5 & - &\multirow{2}{0.11\paperwidth}{{*} ЗМГ} & -\tabularnewline +\hline + & Факт & & & & & & \tabularnewline +\hline +\end{longtable} + +\begin{flushleft} +{*} - измеренные параметры\hspace*{1in}\textbf{\textsc{Настроечные +параметры}} +\par\end{flushleft} + +\begin{flushleft} +Drossel55.Table2\foreignlanguage{english}{}% +\begin{longtable}{|>{\centering}m{0.15\paperwidth}|>{\centering}m{0.15\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.15\paperwidth}|>{\raggedright}m{0.19\paperwidth}|} +\hline +\multicolumn{2}{|>{\centering}m{0.2\paperwidth}|}{\centering{}\textbf{Параметр} } & \multirow{2}{0.1\paperwidth}{\textbf{\centering{}Обозначение}} & \multirow{2}{0.1\paperwidth}{\textbf{\centering{}Режим}} &\multicolumn{1}{|>{\centering}m{0.2\paperwidth}|}{\centering{}\textbf{Параметр} } & \multirow{2}{0.1\paperwidth}{\textbf{\centering{}Значение, +полученное при испытании}} \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.2\paperwidth}|}{ \textbf{Наименование и единица измерения} } & & &\multicolumn{1}{|>{\centering}p{0.2\paperwidth}|}{ \textbf{Наименование и единица измерения} } & \tabularnewline +\endhead +\hline\newpage +\multicolumn{2}{|c|}{ 1 } & 2 & 3 &\multicolumn{1}{|c|}{ 1 } & 4 \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.2\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина частоты вращения + +ротора турбокомпрессора, \%% +\end{minipage}} & \centering{}$n_{\text{тк\_мг}}0$ & МГ &\multicolumn{1}{|>{\centering}p{0.2\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина частоты вращения + +ротора турбокомпрессора, \%% +\end{minipage}} & \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.08\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина частоты вращения + +ротора турбокомпрессора, \%% +\end{minipage}} & \centering{}$n_{\text{тк\_взл}}0$ & <<Взлёт>> &\multicolumn{1}{|>{\centering}p{0.08\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина частоты вращения + +ротора турбокомпрессора, \%% +\end{minipage}} & \tabularnewline +\hline +\multicolumn{2}{|c|}{ % +\begin{minipage}[c]{0.45\columnwidth}% +Настроечная величина минимальной частоты вращения ротора турбокомпрессора, +\%% +\end{minipage}} & \centering{}$n_{\text{тк\_мин}}0$ & МГ &\multicolumn{1}{|c|}{ % +\begin{minipage}[c]{0.45\columnwidth}% +Настроечная величина минимальной частоты вращения ротора турбокомпрессора, +\%% +\end{minipage}} & \tabularnewline +\hline\newpage +\multicolumn{2}{|c|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина перестройки частоты вращения ротора турбокомпрессора +при <<Разрешении РПМ>>,\%% +\end{minipage}} & \centering{}$\Delta n_{\text{тк\_взл}}0$ & <<Взлёт>> &\multicolumn{1}{|c|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина перестройки частоты вращения ротора турбокомпрессора +при <<Разрешении РПМ>>,\%% +\end{minipage}} & \tabularnewline +\hline +\newpage\multicolumn{2}{|>{\centering}p{0.08\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина перестройки частоты вращения ротора турбокомпрессора +по команде <<Тренировочный режим>>, \%% +\end{minipage}} & \centering{}$\Delta n_{\text{тк\_тр}}0$ & <<Взлёт>> &\multicolumn{1}{|>{\centering}p{0.08\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина перестройки частоты вращения ротора турбокомпрессора +по команде <<Тренировочный режим>>, \%% +\end{minipage}} & \tabularnewline +\hline +\multicolumn{2}{|c|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Расходный коэффициент 1-го контура форсунок% +\end{minipage}} & \centering{}$\Psi_{(\mu F)}$ & - &\multicolumn{1}{|c|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Расходный коэффициент 1-го контура форсунок% +\end{minipage}} & \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.1\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Программный расход топлива в РС, кг/ч% +\end{minipage}} & \centering{}$G_{\text{т прог РС МГ}}$ & - &\multicolumn{1}{|>{\centering}p{0.1\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Программный расход топлива в РС, кг/ч% +\end{minipage}} & \tabularnewline +\hline +\multirow{2}{0.15\paperwidth}{Параметры измерителя крутящего +момента\foreignlanguage{english}{ } } & Начальное смещение, град & \centering{}$\phi_{\text{икм}}0$ & \multirow{2}{0.1\paperwidth}{\centering{}-} &\multirow{2}{0.15\paperwidth}{Параметры измерителя крутящего +момента\foreignlanguage{english}{ } } & \tabularnewline +\hline + & Коэффициент характеристики & \centering{}$K$ & & & \tabularnewline +\hline +\end{longtable} +\par\end{flushleft} + +Расход масла, л/ч \rule[-1pt]{2cm}{0.4pt} (не более 0,2) + +\begin{flushleft} +\textbf{Зависимость между положением дозирующей иглы и расходом топлива +$G_{\text{т}}=f(\alpha_{\text{дк}})$} +\par\end{flushleft} + +\begin{flushleft} +Drossel55.Table3 +\par\end{flushleft} + +\begin{flushleft} +\begin{longtable}{|>{\centering}p{0.15\paperwidth}|>{\centering}p{0.1\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.15\paperwidth}|>{\centering}p{0.03\paperwidth}|} +\toprule +\multicolumn{2}{|c}{Параметр} &\multicolumn{1}{|c}{Параметр} & \multicolumn{10}{|c|}{Значение, полученное при испытании}\tabularnewline +\midrule +Наименование и единица измерения & Обозначение & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 &Наименование и единица измерения & 10\tabularnewline +\midrule + \newpage Положение дозирующей иглы, град & $(\alpha_{\text{дк}})$ & & & & & & & & & &Положение дозирующей иглы, град & \tabularnewline +\midrule +Расход топлива, кг/ч & $G_{\text{Т}}$ & & & & & & & & & &Расход топлива, кг/ч & \tabularnewline +\midrule +\newpage Исполнитель & Инженер по испытаниям & \multicolumn{3}{c|}{% +\begin{minipage}[t]{0.1\columnwidth}% +Начальник БТК ИК% +\end{minipage}} & \multicolumn{4}{>{\centering}p{0.15\paperwidth}|}{% +\begin{minipage}[t]{0.15\columnwidth}% +Начальник участка ИД% +\end{minipage}} &Исполнитель & \multicolumn{3}{c|}{% +\begin{minipage}[t]{0.15\columnwidth}% +Представитель заказчика% +\end{minipage}}\tabularnewline +\midrule + & & \multicolumn{3}{c|}{} & \multicolumn{4}{c|}{} & & \multicolumn{3}{c|}{}\tabularnewline +\bottomrule +\end{longtable} +\par\end{flushleft} + +\begin{tabular}{|>{\raggedright}m{0.11\paperwidth}|>{\centering}m{0.04\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.09\paperwidth}|>{\centering}m{0.09\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.09\paperwidth}|} +\hline + \newpage +\multirow{2}{0.11\paperwidth}{\centering{}\linebreak{} + Режим работы двигателя} & & \multirow{2}{0.1\paperwidth}{\textbf{\centering{}}\linebreak{} + Мощность на выводном валу \textbf{N л.с.} } & \multicolumn{2}{c|}{Частота вращения ротора} & \multirow{2}{0.1\paperwidth}{\centering{}Температура газа +перед свободнойтурбиной не более \textbf{t$_{4}$},$\,^{\circ}\mbox{C}$} & \multirow{2}{0.09\paperwidth}{\centering{}Удельный расход +топлива не более \textbf{C$_{R\text{ пр}}$}г/л.с.ч.}\tabularnewline +\hline + & & & турбо-компрессора не более \textbf{n$_{\text{тк пр}}$}, \% & свободной турбины \textbf{n$_{\lyxmathsym{ст}}$}, \% & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{{*}2,5-минутной мощности} & ТУ & & 101,0 & 98$\pm$0,5 & 805 & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{30-минутной мощности} & ТУ & 3000 & 98,5 & 98$\pm$0,5 & 795 & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{ВЗЛ} & ТУ & 2800 & 97,5 & 98$\pm$0,5 & 775 & 205\tabularnewline +\hline +\newpage & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{МП} & ТУ & 2100 & 94,0 & 98$\pm$0,5 & 705 & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{МКр} & ТУ & 1900 & 93,0 & 98$\pm$0,5 & 680 & 221\tabularnewline +\hline \newpage + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{{*} ЗМГ} & ТУ & - & - & 80$\pm$0,5 & - & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\end{tabular} + +\begin{flushleft} +{*} - измеренные параметры\hspace*{1in}\textbf{\textsc{Настроечные +параметры}} +\par\end{flushleft} + +\begin{flushleft} +Drossel55.Table2\foreignlanguage{english}{}% +\begin{tabular}{|>{\centering}m{0.15\paperwidth}|>{\centering}m{0.15\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\raggedright}m{0.19\paperwidth}|} +\hline +\hline\newpage +\multicolumn{2}{|c|}{ 1 } & 2 & 3 & 4 \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.2\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина частоты вращения + +ротора турбокомпрессора, \%% +\end{minipage}} & \centering{}$n_{\text{тк\_мг}}0$ & МГ & \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.08\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина частоты вращения + +ротора турбокомпрессора, \%% +\end{minipage}} & \centering{}$n_{\text{тк\_взл}}0$ & <<Взлёт>> & \tabularnewline +\hline +\multicolumn{2}{|c|}{ % +\begin{minipage}[c]{0.45\columnwidth}% +Настроечная величина минимальной частоты вращения ротора турбокомпрессора, +\%% +\end{minipage}} & \centering{}$n_{\text{тк\_мин}}0$ & МГ & \tabularnewline +\hline\newpage +\multicolumn{2}{|c|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина перестройки частоты вращения ротора турбокомпрессора +при <<Разрешении РПМ>>,\%% +\end{minipage}} & \centering{}$\Delta n_{\text{тк\_взл}}0$ & <<Взлёт>> & \tabularnewline +\hline +\newpage\multicolumn{2}{|>{\centering}p{0.08\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина перестройки частоты вращения ротора турбокомпрессора +по команде <<Тренировочный режим>>, \%% +\end{minipage}} & \centering{}$\Delta n_{\text{тк\_тр}}0$ & <<Взлёт>> & \tabularnewline +\hline +\multicolumn{2}{|c|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Расходный коэффициент 1-го контура форсунок% +\end{minipage}} & \centering{}$\Psi_{(\mu F)}$ & - & \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.1\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Программный расход топлива в РС, кг/ч% +\end{minipage}} & \centering{}$G_{\text{т прог РС МГ}}$ & - & \tabularnewline +\hline +\multirow{2}{0.15\paperwidth}{Параметры измерителя крутящего +момента\foreignlanguage{english}{ } } & Начальное смещение, град & \centering{}$\phi_{\text{икм}}0$ & \multirow{2}{0.1\paperwidth}{\centering{}-} & \tabularnewline +\hline + & Коэффициент характеристики & \centering{}$K$ & & \tabularnewline +\hline +\end{tabular} +\par\end{flushleft} + +Расход масла, л/ч \rule[-1pt]{2cm}{0.4pt} (не более 0,2) + +\begin{flushleft} +\textbf{Зависимость между положением дозирующей иглы и расходом топлива +$G_{\text{т}}=f(\alpha_{\text{дк}})$} +\par\end{flushleft} + +\begin{flushleft} +Drossel55.Table3 +\par\end{flushleft} + +\begin{flushleft} +\begin{tabular}{|>{\centering}p{0.15\paperwidth}|>{\centering}p{0.1\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|} +\toprule +\multicolumn{2}{|c|}{Параметр} & \multicolumn{10}{c|}{Значение, полученное при испытании}\tabularnewline +\midrule +Наименование и единица измерения & Обозначение & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10\tabularnewline +\midrule + \newpage Положение дозирующей иглы, град & $(\alpha_{\text{дк}})$ & & & & & & & & & & \tabularnewline +\midrule +Расход топлива, кг/ч & $G_{\text{Т}}$ & & & & & & & & & & \tabularnewline +\midrule +\newpage Исполнитель & Инженер по испытаниям & \multicolumn{3}{c|}{% +\begin{minipage}[t]{0.1\columnwidth}% +Начальник БТК ИК% +\end{minipage}} & \multicolumn{4}{>{\centering}p{0.15\paperwidth}|}{% +\begin{minipage}[t]{0.15\columnwidth}% +Начальник участка ИД% +\end{minipage}} & \multicolumn{3}{c|}{% +\begin{minipage}[t]{0.15\columnwidth}% +Представитель заказчика% +\end{minipage}}\tabularnewline +\midrule + & & \multicolumn{3}{c|}{} & \multicolumn{4}{c|}{} & \multicolumn{3}{c|}{}\tabularnewline +\bottomrule +\end{tabular} +\par\end{flushleft} + + +\end{document} diff --git a/test/tex/ltable_clone_0_lastp1.tex b/test/tex/ltable_clone_0_lastp1.tex new file mode 100644 index 0000000..bac9502 --- /dev/null +++ b/test/tex/ltable_clone_0_lastp1.tex @@ -0,0 +1,389 @@ +%% LyX 2.0.3 created this file. For more info, see http://www.lyx.org/. +%% Do not edit unless you really know what you are doing. +\documentclass[english,russian]{article} +\usepackage[T1]{fontenc} +\usepackage[utf8x]{inputenc} +\usepackage{geometry} +\geometry{verbose} +\usepackage{array} +\usepackage{longtable} +\usepackage{textcomp} +\usepackage{amstext} +\usepackage{graphicx} + +\makeatletter + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LyX specific LaTeX commands. +\DeclareRobustCommand{\cyrtext}{% + \fontencoding{T2A}\selectfont\def\encodingdefault{T2A}} +\DeclareRobustCommand{\textcyr}[1]{\leavevmode{\cyrtext #1}} +\AtBeginDocument{\DeclareFontEncoding{T2A}{}{}} + +\newcommand{\lyxmathsym}[1]{\ifmmode\begingroup\def\b@ld{bold} + \text{\ifx\math@version\b@ld\bfseries\fi#1}\endgroup\else#1\fi} + +%% Because html converters don't know tabularnewline +\providecommand{\tabularnewline}{\\} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands. +\usepackage{multirow} + + + +\usepackage{babel} + + + + + + +\usepackage{babel} + + + + + + +\usepackage{babel} + + + + + +\usepackage{babel} + + +\makeatother + +\usepackage{babel} +\begin{document} +\begin{flushright} +ф. 07-726А +\par\end{flushright} + +\begin{center} +\textbf{Формулярные данные по 06В.00.0100ВТУ} +\par\end{center} + +\begin{center} +двигателя ТВ7-117В №\rule[-1pt]{3.5cm}{0.4pt} Температура наружного +воздуха $t_{\text{н}}$, \rule[-1pt]{1cm}{0.4pt}, $\,^{\circ}\mbox{C}$ +\par\end{center} + +от\_\_\_\_\_\_\_\_\_\_ <<\rule[-1pt]{1.1cm}{0.4pt}>> \rule[-1pt]{2.5cm}{0.4pt} +20~~~~г.~~~~~~Давление наружного воздуха, $P_{\text{Н}}$\rule[-1pt]{1cm}{0.4pt} +мм. рт. ст. + +Drossel55.Table1 + +\begin{longtable}{|>{\raggedright}m{0.11\paperwidth}|>{\centering}m{0.04\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.09\paperwidth}|>{\centering}m{0.09\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.09\paperwidth}|>{\raggedright}m{0.11\paperwidth}|} +\hline + \newpage +\multirow{2}{0.11\paperwidth}{\centering{}\linebreak{} + Режим работы двигателя} & & \multirow{2}{0.1\paperwidth}{\textbf{\centering{}}\linebreak{} + Мощность на выводном валу \textbf{N л.с.} } & \multicolumn{2}{c|}{Частота вращения ротора} & \multirow{2}{0.1\paperwidth}{\centering{}Температура газа +перед свободнойтурбиной не более \textbf{t$_{4}$},$\,^{\circ}\mbox{C}$} & \multirow{2}{0.09\paperwidth}{\centering{}Удельный расход +топлива не более \textbf{C$_{R\text{ пр}}$}г/л.с.ч.}&\multirow{2}{0.11\paperwidth}{\centering{}\linebreak{} + Режим работы двигателя} \tabularnewline +\hline + & & & турбо-компрессора не более \textbf{n$_{\text{тк пр}}$}, \% & свободной турбины \textbf{n$_{\lyxmathsym{ст}}$}, \% & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{{*}2,5-минутной мощности} & ТУ & & 101,0 & 98$\pm$0,5 & 805 & -&\multirow{2}{0.11\paperwidth}{{*}2,5-минутной мощности} \tabularnewline +\hline + & Факт & & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{30-минутной мощности} & ТУ & 3000 & 98,5 & 98$\pm$0,5 & 795 & -&\multirow{2}{0.11\paperwidth}{30-минутной мощности} \tabularnewline +\hline + & Факт & & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{ВЗЛ} & ТУ & 2800 & 97,5 & 98$\pm$0,5 & 775 & 205&\multirow{2}{0.11\paperwidth}{ВЗЛ} \tabularnewline +\hline +\newpage & Факт & & & & & &\tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{МП} & ТУ & 2100 & 94,0 & 98$\pm$0,5 & 705 & -&\multirow{2}{0.11\paperwidth}{МП} \tabularnewline +\hline + & Факт & & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{МКр} & ТУ & 1900 & 93,0 & 98$\pm$0,5 & 680 & 221&\multirow{2}{0.11\paperwidth}{МКр} \tabularnewline +\hline \newpage + & Факт & & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{{*} ЗМГ} & ТУ & - & - & 80$\pm$0,5 & - & -&\multirow{2}{0.11\paperwidth}{{*} ЗМГ} \tabularnewline +\hline + & Факт & & & & & & \tabularnewline +\hline +\end{longtable} + +\begin{flushleft} +{*} - измеренные параметры\hspace*{1in}\textbf{\textsc{Настроечные +параметры}} +\par\end{flushleft} + +\begin{flushleft} +Drossel55.Table2\foreignlanguage{english}{}% +\begin{longtable}{|>{\centering}m{0.15\paperwidth}|>{\centering}m{0.15\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\raggedright}m{0.19\paperwidth}|>{\centering}m{0.15\paperwidth}|} +\hline +\multicolumn{2}{|>{\centering}m{0.2\paperwidth}|}{\centering{}\textbf{Параметр} } & \multirow{2}{0.1\paperwidth}{\textbf{\centering{}Обозначение}} & \multirow{2}{0.1\paperwidth}{\textbf{\centering{}Режим}} & \multirow{2}{0.1\paperwidth}{\textbf{\centering{}Значение, +полученное при испытании}} &\multicolumn{1}{|>{\centering}m{0.2\paperwidth}|}{\centering{}\textbf{Параметр} } \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.2\paperwidth}|}{ \textbf{Наименование и единица измерения} } & & & &\multicolumn{1}{|>{\centering}p{0.2\paperwidth}|}{ \textbf{Наименование и единица измерения} } \tabularnewline +\endhead +\hline\newpage +\multicolumn{2}{|c|}{ 1 } & 2 & 3 & 4 &\multicolumn{1}{|c|}{ 1 } \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.2\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина частоты вращения + +ротора турбокомпрессора, \%% +\end{minipage}} & \centering{}$n_{\text{тк\_мг}}0$ & МГ & &\multicolumn{1}{|>{\centering}p{0.2\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина частоты вращения + +ротора турбокомпрессора, \%% +\end{minipage}} \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.08\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина частоты вращения + +ротора турбокомпрессора, \%% +\end{minipage}} & \centering{}$n_{\text{тк\_взл}}0$ & <<Взлёт>> & &\multicolumn{1}{|>{\centering}p{0.08\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина частоты вращения + +ротора турбокомпрессора, \%% +\end{minipage}} \tabularnewline +\hline +\multicolumn{2}{|c|}{ % +\begin{minipage}[c]{0.45\columnwidth}% +Настроечная величина минимальной частоты вращения ротора турбокомпрессора, +\%% +\end{minipage}} & \centering{}$n_{\text{тк\_мин}}0$ & МГ & &\multicolumn{1}{|c|}{ % +\begin{minipage}[c]{0.45\columnwidth}% +Настроечная величина минимальной частоты вращения ротора турбокомпрессора, +\%% +\end{minipage}} \tabularnewline +\hline\newpage +\multicolumn{2}{|c|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина перестройки частоты вращения ротора турбокомпрессора +при <<Разрешении РПМ>>,\%% +\end{minipage}} & \centering{}$\Delta n_{\text{тк\_взл}}0$ & <<Взлёт>> & &\multicolumn{1}{|c|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина перестройки частоты вращения ротора турбокомпрессора +при <<Разрешении РПМ>>,\%% +\end{minipage}} \tabularnewline +\hline +\newpage\multicolumn{2}{|>{\centering}p{0.08\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина перестройки частоты вращения ротора турбокомпрессора +по команде <<Тренировочный режим>>, \%% +\end{minipage}} & \centering{}$\Delta n_{\text{тк\_тр}}0$ & <<Взлёт>> & &\multicolumn{1}{|>{\centering}p{0.08\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина перестройки частоты вращения ротора турбокомпрессора +по команде <<Тренировочный режим>>, \%% +\end{minipage}} \tabularnewline +\hline +\multicolumn{2}{|c|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Расходный коэффициент 1-го контура форсунок% +\end{minipage}} & \centering{}$\Psi_{(\mu F)}$ & - & &\multicolumn{1}{|c|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Расходный коэффициент 1-го контура форсунок% +\end{minipage}} \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.1\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Программный расход топлива в РС, кг/ч% +\end{minipage}} & \centering{}$G_{\text{т прог РС МГ}}$ & - & &\multicolumn{1}{|>{\centering}p{0.1\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Программный расход топлива в РС, кг/ч% +\end{minipage}} \tabularnewline +\hline +\multirow{2}{0.15\paperwidth}{Параметры измерителя крутящего +момента\foreignlanguage{english}{ } } & Начальное смещение, град & \centering{}$\phi_{\text{икм}}0$ & \multirow{2}{0.1\paperwidth}{\centering{}-} & &\multirow{2}{0.15\paperwidth}{Параметры измерителя крутящего +момента\foreignlanguage{english}{ } } \tabularnewline +\hline + & Коэффициент характеристики & \centering{}$K$ & & & \tabularnewline +\hline +\end{longtable} +\par\end{flushleft} + +Расход масла, л/ч \rule[-1pt]{2cm}{0.4pt} (не более 0,2) + +\begin{flushleft} +\textbf{Зависимость между положением дозирующей иглы и расходом топлива +$G_{\text{т}}=f(\alpha_{\text{дк}})$} +\par\end{flushleft} + +\begin{flushleft} +Drossel55.Table3 +\par\end{flushleft} + +\begin{flushleft} +\begin{longtable}{|>{\centering}p{0.15\paperwidth}|>{\centering}p{0.1\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.15\paperwidth}|} +\toprule +\multicolumn{2}{|c|}{Параметр} & \multicolumn{10}{c}{Значение, полученное при испытании}&\multicolumn{1}{|c|}{Параметр} \tabularnewline +\midrule +Наименование и единица измерения & Обозначение & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10&Наименование и единица измерения \tabularnewline +\midrule + \newpage Положение дозирующей иглы, град & $(\alpha_{\text{дк}})$ & & & & & & & & & & &Положение дозирующей иглы, град \tabularnewline +\midrule +Расход топлива, кг/ч & $G_{\text{Т}}$ & & & & & & & & & & &Расход топлива, кг/ч \tabularnewline +\midrule +\newpage Исполнитель & Инженер по испытаниям & \multicolumn{3}{c|}{% +\begin{minipage}[t]{0.1\columnwidth}% +Начальник БТК ИК% +\end{minipage}} & \multicolumn{4}{>{\centering}p{0.15\paperwidth}|}{% +\begin{minipage}[t]{0.15\columnwidth}% +Начальник участка ИД% +\end{minipage}} & \multicolumn{3}{c|}{% +\begin{minipage}[t]{0.15\columnwidth}% +Представитель заказчика% +\end{minipage}}&Исполнитель \tabularnewline +\midrule + & & \multicolumn{3}{c|}{} & \multicolumn{4}{c|}{} & \multicolumn{3}{c|}{}& \tabularnewline +\bottomrule +\end{longtable} +\par\end{flushleft} + +\begin{tabular}{|>{\raggedright}m{0.11\paperwidth}|>{\centering}m{0.04\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.09\paperwidth}|>{\centering}m{0.09\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.09\paperwidth}|} +\hline + \newpage +\multirow{2}{0.11\paperwidth}{\centering{}\linebreak{} + Режим работы двигателя} & & \multirow{2}{0.1\paperwidth}{\textbf{\centering{}}\linebreak{} + Мощность на выводном валу \textbf{N л.с.} } & \multicolumn{2}{c|}{Частота вращения ротора} & \multirow{2}{0.1\paperwidth}{\centering{}Температура газа +перед свободнойтурбиной не более \textbf{t$_{4}$},$\,^{\circ}\mbox{C}$} & \multirow{2}{0.09\paperwidth}{\centering{}Удельный расход +топлива не более \textbf{C$_{R\text{ пр}}$}г/л.с.ч.}\tabularnewline +\hline + & & & турбо-компрессора не более \textbf{n$_{\text{тк пр}}$}, \% & свободной турбины \textbf{n$_{\lyxmathsym{ст}}$}, \% & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{{*}2,5-минутной мощности} & ТУ & & 101,0 & 98$\pm$0,5 & 805 & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{30-минутной мощности} & ТУ & 3000 & 98,5 & 98$\pm$0,5 & 795 & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{ВЗЛ} & ТУ & 2800 & 97,5 & 98$\pm$0,5 & 775 & 205\tabularnewline +\hline +\newpage & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{МП} & ТУ & 2100 & 94,0 & 98$\pm$0,5 & 705 & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{МКр} & ТУ & 1900 & 93,0 & 98$\pm$0,5 & 680 & 221\tabularnewline +\hline \newpage + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{{*} ЗМГ} & ТУ & - & - & 80$\pm$0,5 & - & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\end{tabular} + +\begin{flushleft} +{*} - измеренные параметры\hspace*{1in}\textbf{\textsc{Настроечные +параметры}} +\par\end{flushleft} + +\begin{flushleft} +Drossel55.Table2\foreignlanguage{english}{}% +\begin{tabular}{|>{\centering}m{0.15\paperwidth}|>{\centering}m{0.15\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\raggedright}m{0.19\paperwidth}|} +\hline +\hline\newpage +\multicolumn{2}{|c|}{ 1 } & 2 & 3 & 4 \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.2\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина частоты вращения + +ротора турбокомпрессора, \%% +\end{minipage}} & \centering{}$n_{\text{тк\_мг}}0$ & МГ & \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.08\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина частоты вращения + +ротора турбокомпрессора, \%% +\end{minipage}} & \centering{}$n_{\text{тк\_взл}}0$ & <<Взлёт>> & \tabularnewline +\hline +\multicolumn{2}{|c|}{ % +\begin{minipage}[c]{0.45\columnwidth}% +Настроечная величина минимальной частоты вращения ротора турбокомпрессора, +\%% +\end{minipage}} & \centering{}$n_{\text{тк\_мин}}0$ & МГ & \tabularnewline +\hline\newpage +\multicolumn{2}{|c|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина перестройки частоты вращения ротора турбокомпрессора +при <<Разрешении РПМ>>,\%% +\end{minipage}} & \centering{}$\Delta n_{\text{тк\_взл}}0$ & <<Взлёт>> & \tabularnewline +\hline +\newpage\multicolumn{2}{|>{\centering}p{0.08\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина перестройки частоты вращения ротора турбокомпрессора +по команде <<Тренировочный режим>>, \%% +\end{minipage}} & \centering{}$\Delta n_{\text{тк\_тр}}0$ & <<Взлёт>> & \tabularnewline +\hline +\multicolumn{2}{|c|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Расходный коэффициент 1-го контура форсунок% +\end{minipage}} & \centering{}$\Psi_{(\mu F)}$ & - & \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.1\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Программный расход топлива в РС, кг/ч% +\end{minipage}} & \centering{}$G_{\text{т прог РС МГ}}$ & - & \tabularnewline +\hline +\multirow{2}{0.15\paperwidth}{Параметры измерителя крутящего +момента\foreignlanguage{english}{ } } & Начальное смещение, град & \centering{}$\phi_{\text{икм}}0$ & \multirow{2}{0.1\paperwidth}{\centering{}-} & \tabularnewline +\hline + & Коэффициент характеристики & \centering{}$K$ & & \tabularnewline +\hline +\end{tabular} +\par\end{flushleft} + +Расход масла, л/ч \rule[-1pt]{2cm}{0.4pt} (не более 0,2) + +\begin{flushleft} +\textbf{Зависимость между положением дозирующей иглы и расходом топлива +$G_{\text{т}}=f(\alpha_{\text{дк}})$} +\par\end{flushleft} + +\begin{flushleft} +Drossel55.Table3 +\par\end{flushleft} + +\begin{flushleft} +\begin{tabular}{|>{\centering}p{0.15\paperwidth}|>{\centering}p{0.1\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|} +\toprule +\multicolumn{2}{|c|}{Параметр} & \multicolumn{10}{c|}{Значение, полученное при испытании}\tabularnewline +\midrule +Наименование и единица измерения & Обозначение & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10\tabularnewline +\midrule + \newpage Положение дозирующей иглы, град & $(\alpha_{\text{дк}})$ & & & & & & & & & & \tabularnewline +\midrule +Расход топлива, кг/ч & $G_{\text{Т}}$ & & & & & & & & & & \tabularnewline +\midrule +\newpage Исполнитель & Инженер по испытаниям & \multicolumn{3}{c|}{% +\begin{minipage}[t]{0.1\columnwidth}% +Начальник БТК ИК% +\end{minipage}} & \multicolumn{4}{>{\centering}p{0.15\paperwidth}|}{% +\begin{minipage}[t]{0.15\columnwidth}% +Начальник участка ИД% +\end{minipage}} & \multicolumn{3}{c|}{% +\begin{minipage}[t]{0.15\columnwidth}% +Представитель заказчика% +\end{minipage}}\tabularnewline +\midrule + & & \multicolumn{3}{c|}{} & \multicolumn{4}{c|}{} & \multicolumn{3}{c|}{}\tabularnewline +\bottomrule +\end{tabular} +\par\end{flushleft} + + +\end{document} diff --git a/test/tex/ltable_clone_1000_0.tex b/test/tex/ltable_clone_1000_0.tex new file mode 100644 index 0000000..c71d52a --- /dev/null +++ b/test/tex/ltable_clone_1000_0.tex @@ -0,0 +1,359 @@ +%% LyX 2.0.3 created this file. For more info, see http://www.lyx.org/. +%% Do not edit unless you really know what you are doing. +\documentclass[english,russian]{article} +\usepackage[T1]{fontenc} +\usepackage[utf8x]{inputenc} +\usepackage{geometry} +\geometry{verbose} +\usepackage{array} +\usepackage{longtable} +\usepackage{textcomp} +\usepackage{amstext} +\usepackage{graphicx} + +\makeatletter + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LyX specific LaTeX commands. +\DeclareRobustCommand{\cyrtext}{% + \fontencoding{T2A}\selectfont\def\encodingdefault{T2A}} +\DeclareRobustCommand{\textcyr}[1]{\leavevmode{\cyrtext #1}} +\AtBeginDocument{\DeclareFontEncoding{T2A}{}{}} + +\newcommand{\lyxmathsym}[1]{\ifmmode\begingroup\def\b@ld{bold} + \text{\ifx\math@version\b@ld\bfseries\fi#1}\endgroup\else#1\fi} + +%% Because html converters don't know tabularnewline +\providecommand{\tabularnewline}{\\} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands. +\usepackage{multirow} + + + +\usepackage{babel} + + + + + + +\usepackage{babel} + + + + + + +\usepackage{babel} + + + + + +\usepackage{babel} + + +\makeatother + +\usepackage{babel} +\begin{document} +\begin{flushright} +ф. 07-726А +\par\end{flushright} + +\begin{center} +\textbf{Формулярные данные по 06В.00.0100ВТУ} +\par\end{center} + +\begin{center} +двигателя ТВ7-117В №\rule[-1pt]{3.5cm}{0.4pt} Температура наружного +воздуха $t_{\text{н}}$, \rule[-1pt]{1cm}{0.4pt}, $\,^{\circ}\mbox{C}$ +\par\end{center} + +от\_\_\_\_\_\_\_\_\_\_ <<\rule[-1pt]{1.1cm}{0.4pt}>> \rule[-1pt]{2.5cm}{0.4pt} +20~~~~г.~~~~~~Давление наружного воздуха, $P_{\text{Н}}$\rule[-1pt]{1cm}{0.4pt} +мм. рт. ст. + +Drossel55.Table1 + +\begin{longtable}{|>{\raggedright}m{0.11\paperwidth}|>{\centering}m{0.04\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.09\paperwidth}|>{\centering}m{0.09\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.09\paperwidth}|} +\hline + \newpage +\multirow{2}{0.11\paperwidth}{\centering{}\linebreak{} + Режим работы двигателя} & & \multirow{2}{0.1\paperwidth}{\textbf{\centering{}}\linebreak{} + Мощность на выводном валу \textbf{N л.с.} } & \multicolumn{2}{c|}{Частота вращения ротора} & \multirow{2}{0.1\paperwidth}{\centering{}Температура газа +перед свободнойтурбиной не более \textbf{t$_{4}$},$\,^{\circ}\mbox{C}$} & \multirow{2}{0.09\paperwidth}{\centering{}Удельный расход +топлива не более \textbf{C$_{R\text{ пр}}$}г/л.с.ч.}\tabularnewline +\hline + & & & турбо-компрессора не более \textbf{n$_{\text{тк пр}}$}, \% & свободной турбины \textbf{n$_{\lyxmathsym{ст}}$}, \% & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{{*}2,5-минутной мощности} & ТУ & & 101,0 & 98$\pm$0,5 & 805 & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{30-минутной мощности} & ТУ & 3000 & 98,5 & 98$\pm$0,5 & 795 & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{ВЗЛ} & ТУ & 2800 & 97,5 & 98$\pm$0,5 & 775 & 205\tabularnewline +\hline +\newpage & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{МП} & ТУ & 2100 & 94,0 & 98$\pm$0,5 & 705 & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{МКр} & ТУ & 1900 & 93,0 & 98$\pm$0,5 & 680 & 221\tabularnewline +\hline \newpage + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{{*} ЗМГ} & ТУ & - & - & 80$\pm$0,5 & - & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\end{longtable} + +\begin{flushleft} +{*} - измеренные параметры\hspace*{1in}\textbf{\textsc{Настроечные +параметры}} +\par\end{flushleft} + +\begin{flushleft} +Drossel55.Table2\foreignlanguage{english}{}% +\begin{longtable}{|>{\centering}m{0.15\paperwidth}|>{\centering}m{0.15\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\raggedright}m{0.19\paperwidth}|} +\hline +\multicolumn{2}{|>{\centering}m{0.2\paperwidth}|}{\centering{}\textbf{Параметр} } & \multirow{2}{0.1\paperwidth}{\textbf{\centering{}Обозначение}} & \multirow{2}{0.1\paperwidth}{\textbf{\centering{}Режим}} & \multirow{2}{0.1\paperwidth}{\textbf{\centering{}Значение, +полученное при испытании}} \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.2\paperwidth}|}{ \textbf{Наименование и единица измерения} } & & & \tabularnewline +\endhead +\hline\newpage +\multicolumn{2}{|c|}{ 1 } & 2 & 3 & 4 \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.2\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина частоты вращения + +ротора турбокомпрессора, \%% +\end{minipage}} & \centering{}$n_{\text{тк\_мг}}0$ & МГ & \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.08\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина частоты вращения + +ротора турбокомпрессора, \%% +\end{minipage}} & \centering{}$n_{\text{тк\_взл}}0$ & <<Взлёт>> & \tabularnewline +\hline +\multicolumn{2}{|c|}{ % +\begin{minipage}[c]{0.45\columnwidth}% +Настроечная величина минимальной частоты вращения ротора турбокомпрессора, +\%% +\end{minipage}} & \centering{}$n_{\text{тк\_мин}}0$ & МГ & \tabularnewline +\hline\newpage +\multicolumn{2}{|c|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина перестройки частоты вращения ротора турбокомпрессора +при <<Разрешении РПМ>>,\%% +\end{minipage}} & \centering{}$\Delta n_{\text{тк\_взл}}0$ & <<Взлёт>> & \tabularnewline +\hline +\newpage\multicolumn{2}{|>{\centering}p{0.08\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина перестройки частоты вращения ротора турбокомпрессора +по команде <<Тренировочный режим>>, \%% +\end{minipage}} & \centering{}$\Delta n_{\text{тк\_тр}}0$ & <<Взлёт>> & \tabularnewline +\hline +\multicolumn{2}{|c|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Расходный коэффициент 1-го контура форсунок% +\end{minipage}} & \centering{}$\Psi_{(\mu F)}$ & - & \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.1\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Программный расход топлива в РС, кг/ч% +\end{minipage}} & \centering{}$G_{\text{т прог РС МГ}}$ & - & \tabularnewline +\hline +\multirow{2}{0.15\paperwidth}{Параметры измерителя крутящего +момента\foreignlanguage{english}{ } } & Начальное смещение, град & \centering{}$\phi_{\text{икм}}0$ & \multirow{2}{0.1\paperwidth}{\centering{}-} & \tabularnewline +\hline + & Коэффициент характеристики & \centering{}$K$ & & \tabularnewline +\hline +\end{longtable} +\par\end{flushleft} + +Расход масла, л/ч \rule[-1pt]{2cm}{0.4pt} (не более 0,2) + +\begin{flushleft} +\textbf{Зависимость между положением дозирующей иглы и расходом топлива +$G_{\text{т}}=f(\alpha_{\text{дк}})$} +\par\end{flushleft} + +\begin{flushleft} +Drossel55.Table3 +\par\end{flushleft} + +\begin{flushleft} +\begin{longtable}{|>{\centering}p{0.15\paperwidth}|>{\centering}p{0.1\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|} +\toprule +\multicolumn{2}{|c|}{Параметр} & \multicolumn{10}{c|}{Значение, полученное при испытании}\tabularnewline +\midrule +Наименование и единица измерения & Обозначение & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10\tabularnewline +\midrule + \newpage Положение дозирующей иглы, град & $(\alpha_{\text{дк}})$ & & & & & & & & & & \tabularnewline +\midrule +Расход топлива, кг/ч & $G_{\text{Т}}$ & & & & & & & & & & \tabularnewline +\midrule +\newpage Исполнитель & Инженер по испытаниям & \multicolumn{3}{c|}{% +\begin{minipage}[t]{0.1\columnwidth}% +Начальник БТК ИК% +\end{minipage}} & \multicolumn{4}{>{\centering}p{0.15\paperwidth}|}{% +\begin{minipage}[t]{0.15\columnwidth}% +Начальник участка ИД% +\end{minipage}} & \multicolumn{3}{c|}{% +\begin{minipage}[t]{0.15\columnwidth}% +Представитель заказчика% +\end{minipage}}\tabularnewline +\midrule + & & \multicolumn{3}{c|}{} & \multicolumn{4}{c|}{} & \multicolumn{3}{c|}{}\tabularnewline +\bottomrule +\end{longtable} +\par\end{flushleft} + +\begin{tabular}{|>{\raggedright}m{0.11\paperwidth}|>{\centering}m{0.04\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.09\paperwidth}|>{\centering}m{0.09\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.09\paperwidth}|} +\hline + \newpage +\multirow{2}{0.11\paperwidth}{\centering{}\linebreak{} + Режим работы двигателя} & & \multirow{2}{0.1\paperwidth}{\textbf{\centering{}}\linebreak{} + Мощность на выводном валу \textbf{N л.с.} } & \multicolumn{2}{c|}{Частота вращения ротора} & \multirow{2}{0.1\paperwidth}{\centering{}Температура газа +перед свободнойтурбиной не более \textbf{t$_{4}$},$\,^{\circ}\mbox{C}$} & \multirow{2}{0.09\paperwidth}{\centering{}Удельный расход +топлива не более \textbf{C$_{R\text{ пр}}$}г/л.с.ч.}\tabularnewline +\hline + & & & турбо-компрессора не более \textbf{n$_{\text{тк пр}}$}, \% & свободной турбины \textbf{n$_{\lyxmathsym{ст}}$}, \% & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{{*}2,5-минутной мощности} & ТУ & & 101,0 & 98$\pm$0,5 & 805 & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{30-минутной мощности} & ТУ & 3000 & 98,5 & 98$\pm$0,5 & 795 & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{ВЗЛ} & ТУ & 2800 & 97,5 & 98$\pm$0,5 & 775 & 205\tabularnewline +\hline +\newpage & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{МП} & ТУ & 2100 & 94,0 & 98$\pm$0,5 & 705 & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{МКр} & ТУ & 1900 & 93,0 & 98$\pm$0,5 & 680 & 221\tabularnewline +\hline \newpage + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{{*} ЗМГ} & ТУ & - & - & 80$\pm$0,5 & - & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\end{tabular} + +\begin{flushleft} +{*} - измеренные параметры\hspace*{1in}\textbf{\textsc{Настроечные +параметры}} +\par\end{flushleft} + +\begin{flushleft} +Drossel55.Table2\foreignlanguage{english}{}% +\begin{tabular}{|>{\centering}m{0.15\paperwidth}|>{\centering}m{0.15\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\raggedright}m{0.19\paperwidth}|} +\hline +\hline\newpage +\multicolumn{2}{|c|}{ 1 } & 2 & 3 & 4 \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.2\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина частоты вращения + +ротора турбокомпрессора, \%% +\end{minipage}} & \centering{}$n_{\text{тк\_мг}}0$ & МГ & \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.08\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина частоты вращения + +ротора турбокомпрессора, \%% +\end{minipage}} & \centering{}$n_{\text{тк\_взл}}0$ & <<Взлёт>> & \tabularnewline +\hline +\multicolumn{2}{|c|}{ % +\begin{minipage}[c]{0.45\columnwidth}% +Настроечная величина минимальной частоты вращения ротора турбокомпрессора, +\%% +\end{minipage}} & \centering{}$n_{\text{тк\_мин}}0$ & МГ & \tabularnewline +\hline\newpage +\multicolumn{2}{|c|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина перестройки частоты вращения ротора турбокомпрессора +при <<Разрешении РПМ>>,\%% +\end{minipage}} & \centering{}$\Delta n_{\text{тк\_взл}}0$ & <<Взлёт>> & \tabularnewline +\hline +\newpage\multicolumn{2}{|>{\centering}p{0.08\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина перестройки частоты вращения ротора турбокомпрессора +по команде <<Тренировочный режим>>, \%% +\end{minipage}} & \centering{}$\Delta n_{\text{тк\_тр}}0$ & <<Взлёт>> & \tabularnewline +\hline +\multicolumn{2}{|c|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Расходный коэффициент 1-го контура форсунок% +\end{minipage}} & \centering{}$\Psi_{(\mu F)}$ & - & \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.1\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Программный расход топлива в РС, кг/ч% +\end{minipage}} & \centering{}$G_{\text{т прог РС МГ}}$ & - & \tabularnewline +\hline +\multirow{2}{0.15\paperwidth}{Параметры измерителя крутящего +момента\foreignlanguage{english}{ } } & Начальное смещение, град & \centering{}$\phi_{\text{икм}}0$ & \multirow{2}{0.1\paperwidth}{\centering{}-} & \tabularnewline +\hline + & Коэффициент характеристики & \centering{}$K$ & & \tabularnewline +\hline +\end{tabular} +\par\end{flushleft} + +Расход масла, л/ч \rule[-1pt]{2cm}{0.4pt} (не более 0,2) + +\begin{flushleft} +\textbf{Зависимость между положением дозирующей иглы и расходом топлива +$G_{\text{т}}=f(\alpha_{\text{дк}})$} +\par\end{flushleft} + +\begin{flushleft} +Drossel55.Table3 +\par\end{flushleft} + +\begin{flushleft} +\begin{tabular}{|>{\centering}p{0.15\paperwidth}|>{\centering}p{0.1\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|} +\toprule +\multicolumn{2}{|c|}{Параметр} & \multicolumn{10}{c|}{Значение, полученное при испытании}\tabularnewline +\midrule +Наименование и единица измерения & Обозначение & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10\tabularnewline +\midrule + \newpage Положение дозирующей иглы, град & $(\alpha_{\text{дк}})$ & & & & & & & & & & \tabularnewline +\midrule +Расход топлива, кг/ч & $G_{\text{Т}}$ & & & & & & & & & & \tabularnewline +\midrule +\newpage Исполнитель & Инженер по испытаниям & \multicolumn{3}{c|}{% +\begin{minipage}[t]{0.1\columnwidth}% +Начальник БТК ИК% +\end{minipage}} & \multicolumn{4}{>{\centering}p{0.15\paperwidth}|}{% +\begin{minipage}[t]{0.15\columnwidth}% +Начальник участка ИД% +\end{minipage}} & \multicolumn{3}{c|}{% +\begin{minipage}[t]{0.15\columnwidth}% +Представитель заказчика% +\end{minipage}}\tabularnewline +\midrule + & & \multicolumn{3}{c|}{} & \multicolumn{4}{c|}{} & \multicolumn{3}{c|}{}\tabularnewline +\bottomrule +\end{tabular} +\par\end{flushleft} + + +\end{document} diff --git a/test/tex/ltable_clone_1_0.tex b/test/tex/ltable_clone_1_0.tex new file mode 100644 index 0000000..86fb056 --- /dev/null +++ b/test/tex/ltable_clone_1_0.tex @@ -0,0 +1,387 @@ +%% LyX 2.0.3 created this file. For more info, see http://www.lyx.org/. +%% Do not edit unless you really know what you are doing. +\documentclass[english,russian]{article} +\usepackage[T1]{fontenc} +\usepackage[utf8x]{inputenc} +\usepackage{geometry} +\geometry{verbose} +\usepackage{array} +\usepackage{longtable} +\usepackage{textcomp} +\usepackage{amstext} +\usepackage{graphicx} + +\makeatletter + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LyX specific LaTeX commands. +\DeclareRobustCommand{\cyrtext}{% + \fontencoding{T2A}\selectfont\def\encodingdefault{T2A}} +\DeclareRobustCommand{\textcyr}[1]{\leavevmode{\cyrtext #1}} +\AtBeginDocument{\DeclareFontEncoding{T2A}{}{}} + +\newcommand{\lyxmathsym}[1]{\ifmmode\begingroup\def\b@ld{bold} + \text{\ifx\math@version\b@ld\bfseries\fi#1}\endgroup\else#1\fi} + +%% Because html converters don't know tabularnewline +\providecommand{\tabularnewline}{\\} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands. +\usepackage{multirow} + + + +\usepackage{babel} + + + + + + +\usepackage{babel} + + + + + + +\usepackage{babel} + + + + + +\usepackage{babel} + + +\makeatother + +\usepackage{babel} +\begin{document} +\begin{flushright} +ф. 07-726А +\par\end{flushright} + +\begin{center} +\textbf{Формулярные данные по 06В.00.0100ВТУ} +\par\end{center} + +\begin{center} +двигателя ТВ7-117В №\rule[-1pt]{3.5cm}{0.4pt} Температура наружного +воздуха $t_{\text{н}}$, \rule[-1pt]{1cm}{0.4pt}, $\,^{\circ}\mbox{C}$ +\par\end{center} + +от\_\_\_\_\_\_\_\_\_\_ <<\rule[-1pt]{1.1cm}{0.4pt}>> \rule[-1pt]{2.5cm}{0.4pt} +20~~~~г.~~~~~~Давление наружного воздуха, $P_{\text{Н}}$\rule[-1pt]{1cm}{0.4pt} +мм. рт. ст. + +Drossel55.Table1 + +\begin{longtable}{|>{\centering}m{0.04\paperwidth}|>{\raggedright}m{0.11\paperwidth}|>{\centering}m{0.04\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.09\paperwidth}|>{\centering}m{0.09\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.09\paperwidth}|} +\hline + \newpage + &\multirow{2}{0.11\paperwidth}{\centering{}\linebreak{} + Режим работы двигателя} & & \multirow{2}{0.1\paperwidth}{\textbf{\centering{}}\linebreak{} + Мощность на выводном валу \textbf{N л.с.} } & \multicolumn{2}{c|}{Частота вращения ротора} & \multirow{2}{0.1\paperwidth}{\centering{}Температура газа +перед свободнойтурбиной не более \textbf{t$_{4}$},$\,^{\circ}\mbox{C}$} & \multirow{2}{0.09\paperwidth}{\centering{}Удельный расход +топлива не более \textbf{C$_{R\text{ пр}}$}г/л.с.ч.}\tabularnewline +\hline + & & & & турбо-компрессора не более \textbf{n$_{\text{тк пр}}$}, \% & свободной турбины \textbf{n$_{\lyxmathsym{ст}}$}, \% & & \tabularnewline +\hline + ТУ &\multirow{2}{0.11\paperwidth}{{*}2,5-минутной мощности} & ТУ & & 101,0 & 98$\pm$0,5 & 805 & -\tabularnewline +\hline + Факт & & Факт & & & & & \tabularnewline +\hline + ТУ &\multirow{2}{0.11\paperwidth}{30-минутной мощности} & ТУ & 3000 & 98,5 & 98$\pm$0,5 & 795 & -\tabularnewline +\hline + Факт & & Факт & & & & & \tabularnewline +\hline + ТУ &\multirow{2}{0.11\paperwidth}{ВЗЛ} & ТУ & 2800 & 97,5 & 98$\pm$0,5 & 775 & 205\tabularnewline +\hline +\newpage Факт && Факт & & & & & \tabularnewline +\hline + ТУ &\multirow{2}{0.11\paperwidth}{МП} & ТУ & 2100 & 94,0 & 98$\pm$0,5 & 705 & -\tabularnewline +\hline + Факт & & Факт & & & & & \tabularnewline +\hline + ТУ &\multirow{2}{0.11\paperwidth}{МКр} & ТУ & 1900 & 93,0 & 98$\pm$0,5 & 680 & 221\tabularnewline +\hline \newpage + Факт & & Факт & & & & & \tabularnewline +\hline + ТУ &\multirow{2}{0.11\paperwidth}{{*} ЗМГ} & ТУ & - & - & 80$\pm$0,5 & - & -\tabularnewline +\hline + Факт & & Факт & & & & & \tabularnewline +\hline +\end{longtable} + +\begin{flushleft} +{*} - измеренные параметры\hspace*{1in}\textbf{\textsc{Настроечные +параметры}} +\par\end{flushleft} + +\begin{flushleft} +Drossel55.Table2\foreignlanguage{english}{}% +\begin{longtable}{|>{\centering}m{0.15\paperwidth}|>{\centering}m{0.15\paperwidth}|>{\centering}m{0.15\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\raggedright}m{0.19\paperwidth}|} +\hline +\multicolumn{2}{|>{\centering}m{0.2\paperwidth}}{\centering{}\textbf{Параметр} } &\multicolumn{2}{|>{\centering}m{0.2\paperwidth}|}{\centering{}\textbf{Параметр} } & \multirow{2}{0.1\paperwidth}{\textbf{\centering{}Обозначение}} & \multirow{2}{0.1\paperwidth}{\textbf{\centering{}Режим}} & \multirow{2}{0.1\paperwidth}{\textbf{\centering{}Значение, +полученное при испытании}} \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.2\paperwidth}}{ \textbf{Наименование и единица измерения} } &\multicolumn{2}{|>{\centering}p{0.2\paperwidth}|}{ \textbf{Наименование и единица измерения} } & & & \tabularnewline +\endhead +\hline\newpage +\multicolumn{2}{|c}{ 1 } &\multicolumn{2}{|c|}{ 1 } & 2 & 3 & 4 \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.2\paperwidth}}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина частоты вращения + +ротора турбокомпрессора, \%% +\end{minipage}} &\multicolumn{2}{|>{\centering}p{0.2\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина частоты вращения + +ротора турбокомпрессора, \%% +\end{minipage}} & \centering{}$n_{\text{тк\_мг}}0$ & МГ & \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.08\paperwidth}}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина частоты вращения + +ротора турбокомпрессора, \%% +\end{minipage}} &\multicolumn{2}{|>{\centering}p{0.08\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина частоты вращения + +ротора турбокомпрессора, \%% +\end{minipage}} & \centering{}$n_{\text{тк\_взл}}0$ & <<Взлёт>> & \tabularnewline +\hline +\multicolumn{2}{|c}{ % +\begin{minipage}[c]{0.45\columnwidth}% +Настроечная величина минимальной частоты вращения ротора турбокомпрессора, +\%% +\end{minipage}} &\multicolumn{2}{|c|}{ % +\begin{minipage}[c]{0.45\columnwidth}% +Настроечная величина минимальной частоты вращения ротора турбокомпрессора, +\%% +\end{minipage}} & \centering{}$n_{\text{тк\_мин}}0$ & МГ & \tabularnewline +\hline\newpage +\multicolumn{2}{|c}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина перестройки частоты вращения ротора турбокомпрессора +при <<Разрешении РПМ>>,\%% +\end{minipage}} &\multicolumn{2}{|c|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина перестройки частоты вращения ротора турбокомпрессора +при <<Разрешении РПМ>>,\%% +\end{minipage}} & \centering{}$\Delta n_{\text{тк\_взл}}0$ & <<Взлёт>> & \tabularnewline +\hline +\newpage\multicolumn{2}{|>{\centering}p{0.08\paperwidth}}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина перестройки частоты вращения ротора турбокомпрессора +по команде <<Тренировочный режим>>, \%% +\end{minipage}} &\multicolumn{2}{|>{\centering}p{0.08\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина перестройки частоты вращения ротора турбокомпрессора +по команде <<Тренировочный режим>>, \%% +\end{minipage}} & \centering{}$\Delta n_{\text{тк\_тр}}0$ & <<Взлёт>> & \tabularnewline +\hline +\multicolumn{2}{|c}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Расходный коэффициент 1-го контура форсунок% +\end{minipage}} &\multicolumn{2}{|c|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Расходный коэффициент 1-го контура форсунок% +\end{minipage}} & \centering{}$\Psi_{(\mu F)}$ & - & \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.1\paperwidth}}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Программный расход топлива в РС, кг/ч% +\end{minipage}} &\multicolumn{2}{|>{\centering}p{0.1\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Программный расход топлива в РС, кг/ч% +\end{minipage}} & \centering{}$G_{\text{т прог РС МГ}}$ & - & \tabularnewline +\hline + Начальное смещение, град &\multirow{2}{0.15\paperwidth}{Параметры измерителя крутящего +момента\foreignlanguage{english}{ } } & Начальное смещение, град & \centering{}$\phi_{\text{икм}}0$ & \multirow{2}{0.1\paperwidth}{\centering{}-} & \tabularnewline +\hline + Коэффициент характеристики & & Коэффициент характеристики & \centering{}$K$ & & \tabularnewline +\hline +\end{longtable} +\par\end{flushleft} + +Расход масла, л/ч \rule[-1pt]{2cm}{0.4pt} (не более 0,2) + +\begin{flushleft} +\textbf{Зависимость между положением дозирующей иглы и расходом топлива +$G_{\text{т}}=f(\alpha_{\text{дк}})$} +\par\end{flushleft} + +\begin{flushleft} +Drossel55.Table3 +\par\end{flushleft} + +\begin{flushleft} +\begin{longtable}{|>{\centering}p{0.1\paperwidth}|>{\centering}p{0.15\paperwidth}|>{\centering}p{0.1\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|} +\toprule +\multicolumn{2}{|c}{Параметр} &\multicolumn{2}{|c|}{Параметр} & \multicolumn{10}{c|}{Значение, полученное при испытании}\tabularnewline +\midrule + Обозначение &Наименование и единица измерения & Обозначение & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10\tabularnewline +\midrule + \newpage $(\alpha_{\text{дк}})$ &Положение дозирующей иглы, град & $(\alpha_{\text{дк}})$ & & & & & & & & & & \tabularnewline +\midrule + $G_{\text{Т}}$ &Расход топлива, кг/ч & $G_{\text{Т}}$ & & & & & & & & & & \tabularnewline +\midrule +\newpage Инженер по испытаниям &Исполнитель & Инженер по испытаниям & \multicolumn{3}{c|}{% +\begin{minipage}[t]{0.1\columnwidth}% +Начальник БТК ИК% +\end{minipage}} & \multicolumn{4}{>{\centering}p{0.15\paperwidth}|}{% +\begin{minipage}[t]{0.15\columnwidth}% +Начальник участка ИД% +\end{minipage}} & \multicolumn{3}{c|}{% +\begin{minipage}[t]{0.15\columnwidth}% +Представитель заказчика% +\end{minipage}}\tabularnewline +\midrule + & & & \multicolumn{3}{c|}{} & \multicolumn{4}{c|}{} & \multicolumn{3}{c|}{}\tabularnewline +\bottomrule +\end{longtable} +\par\end{flushleft} + +\begin{tabular}{|>{\raggedright}m{0.11\paperwidth}|>{\centering}m{0.04\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.09\paperwidth}|>{\centering}m{0.09\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.09\paperwidth}|} +\hline + \newpage +\multirow{2}{0.11\paperwidth}{\centering{}\linebreak{} + Режим работы двигателя} & & \multirow{2}{0.1\paperwidth}{\textbf{\centering{}}\linebreak{} + Мощность на выводном валу \textbf{N л.с.} } & \multicolumn{2}{c|}{Частота вращения ротора} & \multirow{2}{0.1\paperwidth}{\centering{}Температура газа +перед свободнойтурбиной не более \textbf{t$_{4}$},$\,^{\circ}\mbox{C}$} & \multirow{2}{0.09\paperwidth}{\centering{}Удельный расход +топлива не более \textbf{C$_{R\text{ пр}}$}г/л.с.ч.}\tabularnewline +\hline + & & & турбо-компрессора не более \textbf{n$_{\text{тк пр}}$}, \% & свободной турбины \textbf{n$_{\lyxmathsym{ст}}$}, \% & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{{*}2,5-минутной мощности} & ТУ & & 101,0 & 98$\pm$0,5 & 805 & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{30-минутной мощности} & ТУ & 3000 & 98,5 & 98$\pm$0,5 & 795 & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{ВЗЛ} & ТУ & 2800 & 97,5 & 98$\pm$0,5 & 775 & 205\tabularnewline +\hline +\newpage & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{МП} & ТУ & 2100 & 94,0 & 98$\pm$0,5 & 705 & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{МКр} & ТУ & 1900 & 93,0 & 98$\pm$0,5 & 680 & 221\tabularnewline +\hline \newpage + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{{*} ЗМГ} & ТУ & - & - & 80$\pm$0,5 & - & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\end{tabular} + +\begin{flushleft} +{*} - измеренные параметры\hspace*{1in}\textbf{\textsc{Настроечные +параметры}} +\par\end{flushleft} + +\begin{flushleft} +Drossel55.Table2\foreignlanguage{english}{}% +\begin{tabular}{|>{\centering}m{0.15\paperwidth}|>{\centering}m{0.15\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\raggedright}m{0.19\paperwidth}|} +\hline +\hline\newpage +\multicolumn{2}{|c|}{ 1 } & 2 & 3 & 4 \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.2\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина частоты вращения + +ротора турбокомпрессора, \%% +\end{minipage}} & \centering{}$n_{\text{тк\_мг}}0$ & МГ & \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.08\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина частоты вращения + +ротора турбокомпрессора, \%% +\end{minipage}} & \centering{}$n_{\text{тк\_взл}}0$ & <<Взлёт>> & \tabularnewline +\hline +\multicolumn{2}{|c|}{ % +\begin{minipage}[c]{0.45\columnwidth}% +Настроечная величина минимальной частоты вращения ротора турбокомпрессора, +\%% +\end{minipage}} & \centering{}$n_{\text{тк\_мин}}0$ & МГ & \tabularnewline +\hline\newpage +\multicolumn{2}{|c|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина перестройки частоты вращения ротора турбокомпрессора +при <<Разрешении РПМ>>,\%% +\end{minipage}} & \centering{}$\Delta n_{\text{тк\_взл}}0$ & <<Взлёт>> & \tabularnewline +\hline +\newpage\multicolumn{2}{|>{\centering}p{0.08\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина перестройки частоты вращения ротора турбокомпрессора +по команде <<Тренировочный режим>>, \%% +\end{minipage}} & \centering{}$\Delta n_{\text{тк\_тр}}0$ & <<Взлёт>> & \tabularnewline +\hline +\multicolumn{2}{|c|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Расходный коэффициент 1-го контура форсунок% +\end{minipage}} & \centering{}$\Psi_{(\mu F)}$ & - & \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.1\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Программный расход топлива в РС, кг/ч% +\end{minipage}} & \centering{}$G_{\text{т прог РС МГ}}$ & - & \tabularnewline +\hline +\multirow{2}{0.15\paperwidth}{Параметры измерителя крутящего +момента\foreignlanguage{english}{ } } & Начальное смещение, град & \centering{}$\phi_{\text{икм}}0$ & \multirow{2}{0.1\paperwidth}{\centering{}-} & \tabularnewline +\hline + & Коэффициент характеристики & \centering{}$K$ & & \tabularnewline +\hline +\end{tabular} +\par\end{flushleft} + +Расход масла, л/ч \rule[-1pt]{2cm}{0.4pt} (не более 0,2) + +\begin{flushleft} +\textbf{Зависимость между положением дозирующей иглы и расходом топлива +$G_{\text{т}}=f(\alpha_{\text{дк}})$} +\par\end{flushleft} + +\begin{flushleft} +Drossel55.Table3 +\par\end{flushleft} + +\begin{flushleft} +\begin{tabular}{|>{\centering}p{0.15\paperwidth}|>{\centering}p{0.1\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|} +\toprule +\multicolumn{2}{|c|}{Параметр} & \multicolumn{10}{c|}{Значение, полученное при испытании}\tabularnewline +\midrule +Наименование и единица измерения & Обозначение & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10\tabularnewline +\midrule + \newpage Положение дозирующей иглы, град & $(\alpha_{\text{дк}})$ & & & & & & & & & & \tabularnewline +\midrule +Расход топлива, кг/ч & $G_{\text{Т}}$ & & & & & & & & & & \tabularnewline +\midrule +\newpage Исполнитель & Инженер по испытаниям & \multicolumn{3}{c|}{% +\begin{minipage}[t]{0.1\columnwidth}% +Начальник БТК ИК% +\end{minipage}} & \multicolumn{4}{>{\centering}p{0.15\paperwidth}|}{% +\begin{minipage}[t]{0.15\columnwidth}% +Начальник участка ИД% +\end{minipage}} & \multicolumn{3}{c|}{% +\begin{minipage}[t]{0.15\columnwidth}% +Представитель заказчика% +\end{minipage}}\tabularnewline +\midrule + & & \multicolumn{3}{c|}{} & \multicolumn{4}{c|}{} & \multicolumn{3}{c|}{}\tabularnewline +\bottomrule +\end{tabular} +\par\end{flushleft} + + +\end{document} diff --git a/test/tex/ltable_clone_last_0.tex b/test/tex/ltable_clone_last_0.tex new file mode 100644 index 0000000..c208749 --- /dev/null +++ b/test/tex/ltable_clone_last_0.tex @@ -0,0 +1,364 @@ +%% LyX 2.0.3 created this file. For more info, see http://www.lyx.org/. +%% Do not edit unless you really know what you are doing. +\documentclass[english,russian]{article} +\usepackage[T1]{fontenc} +\usepackage[utf8x]{inputenc} +\usepackage{geometry} +\geometry{verbose} +\usepackage{array} +\usepackage{longtable} +\usepackage{textcomp} +\usepackage{amstext} +\usepackage{graphicx} + +\makeatletter + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LyX specific LaTeX commands. +\DeclareRobustCommand{\cyrtext}{% + \fontencoding{T2A}\selectfont\def\encodingdefault{T2A}} +\DeclareRobustCommand{\textcyr}[1]{\leavevmode{\cyrtext #1}} +\AtBeginDocument{\DeclareFontEncoding{T2A}{}{}} + +\newcommand{\lyxmathsym}[1]{\ifmmode\begingroup\def\b@ld{bold} + \text{\ifx\math@version\b@ld\bfseries\fi#1}\endgroup\else#1\fi} + +%% Because html converters don't know tabularnewline +\providecommand{\tabularnewline}{\\} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands. +\usepackage{multirow} + + + +\usepackage{babel} + + + + + + +\usepackage{babel} + + + + + + +\usepackage{babel} + + + + + +\usepackage{babel} + + +\makeatother + +\usepackage{babel} +\begin{document} +\begin{flushright} +ф. 07-726А +\par\end{flushright} + +\begin{center} +\textbf{Формулярные данные по 06В.00.0100ВТУ} +\par\end{center} + +\begin{center} +двигателя ТВ7-117В №\rule[-1pt]{3.5cm}{0.4pt} Температура наружного +воздуха $t_{\text{н}}$, \rule[-1pt]{1cm}{0.4pt}, $\,^{\circ}\mbox{C}$ +\par\end{center} + +от\_\_\_\_\_\_\_\_\_\_ <<\rule[-1pt]{1.1cm}{0.4pt}>> \rule[-1pt]{2.5cm}{0.4pt} +20~~~~г.~~~~~~Давление наружного воздуха, $P_{\text{Н}}$\rule[-1pt]{1cm}{0.4pt} +мм. рт. ст. + +Drossel55.Table1 + +\begin{longtable}{|>{\centering}m{0.09\paperwidth}|>{\raggedright}m{0.11\paperwidth}|>{\centering}m{0.04\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.09\paperwidth}|>{\centering}m{0.09\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.09\paperwidth}|} +\hline + \newpage + \multirow{2}{0.09\paperwidth}{\centering{}Удельный расход +топлива не более \textbf{C$_{R\text{ пр}}$}г/л.с.ч.}&\multirow{2}{0.11\paperwidth}{\centering{}\linebreak{} + Режим работы двигателя} & & \multirow{2}{0.1\paperwidth}{\textbf{\centering{}}\linebreak{} + Мощность на выводном валу \textbf{N л.с.} } & \multicolumn{2}{c|}{Частота вращения ротора} & \multirow{2}{0.1\paperwidth}{\centering{}Температура газа +перед свободнойтурбиной не более \textbf{t$_{4}$},$\,^{\circ}\mbox{C}$} & \multirow{2}{0.09\paperwidth}{\centering{}Удельный расход +топлива не более \textbf{C$_{R\text{ пр}}$}г/л.с.ч.}\tabularnewline +\hline + & & & & турбо-компрессора не более \textbf{n$_{\text{тк пр}}$}, \% & свободной турбины \textbf{n$_{\lyxmathsym{ст}}$}, \% & & \tabularnewline +\hline + -&\multirow{2}{0.11\paperwidth}{{*}2,5-минутной мощности} & ТУ & & 101,0 & 98$\pm$0,5 & 805 & -\tabularnewline +\hline + & & Факт & & & & & \tabularnewline +\hline + -&\multirow{2}{0.11\paperwidth}{30-минутной мощности} & ТУ & 3000 & 98,5 & 98$\pm$0,5 & 795 & -\tabularnewline +\hline + & & Факт & & & & & \tabularnewline +\hline + 205&\multirow{2}{0.11\paperwidth}{ВЗЛ} & ТУ & 2800 & 97,5 & 98$\pm$0,5 & 775 & 205\tabularnewline +\hline +\newpage && Факт & & & & & \tabularnewline +\hline + -&\multirow{2}{0.11\paperwidth}{МП} & ТУ & 2100 & 94,0 & 98$\pm$0,5 & 705 & -\tabularnewline +\hline + & & Факт & & & & & \tabularnewline +\hline + 221&\multirow{2}{0.11\paperwidth}{МКр} & ТУ & 1900 & 93,0 & 98$\pm$0,5 & 680 & 221\tabularnewline +\hline \newpage + & & Факт & & & & & \tabularnewline +\hline + -&\multirow{2}{0.11\paperwidth}{{*} ЗМГ} & ТУ & - & - & 80$\pm$0,5 & - & -\tabularnewline +\hline + & & Факт & & & & & \tabularnewline +\hline +\end{longtable} + +\begin{flushleft} +{*} - измеренные параметры\hspace*{1in}\textbf{\textsc{Настроечные +параметры}} +\par\end{flushleft} + +\begin{flushleft} +Drossel55.Table2\foreignlanguage{english}{}% +\begin{longtable}{|>{\raggedright}m{0.19\paperwidth}|>{\centering}m{0.15\paperwidth}|>{\centering}m{0.15\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\raggedright}m{0.19\paperwidth}|} +\hline + \multirow{2}{0.1\paperwidth}{\textbf{\centering{}Значение, +полученное при испытании}} &\multicolumn{2}{|>{\centering}m{0.2\paperwidth}|}{\centering{}\textbf{Параметр} } & \multirow{2}{0.1\paperwidth}{\textbf{\centering{}Обозначение}} & \multirow{2}{0.1\paperwidth}{\textbf{\centering{}Режим}} & \multirow{2}{0.1\paperwidth}{\textbf{\centering{}Значение, +полученное при испытании}} \tabularnewline +\hline + &\multicolumn{2}{|>{\centering}p{0.2\paperwidth}|}{ \textbf{Наименование и единица измерения} } & & & \tabularnewline +\endhead +\hline\newpage + 4 &\multicolumn{2}{|c|}{ 1 } & 2 & 3 & 4 \tabularnewline +\hline + &\multicolumn{2}{|>{\centering}p{0.2\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина частоты вращения + +ротора турбокомпрессора, \%% +\end{minipage}} & \centering{}$n_{\text{тк\_мг}}0$ & МГ & \tabularnewline +\hline + &\multicolumn{2}{|>{\centering}p{0.08\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина частоты вращения + +ротора турбокомпрессора, \%% +\end{minipage}} & \centering{}$n_{\text{тк\_взл}}0$ & <<Взлёт>> & \tabularnewline +\hline + &\multicolumn{2}{|c|}{ % +\begin{minipage}[c]{0.45\columnwidth}% +Настроечная величина минимальной частоты вращения ротора турбокомпрессора, +\%% +\end{minipage}} & \centering{}$n_{\text{тк\_мин}}0$ & МГ & \tabularnewline +\hline\newpage + &\multicolumn{2}{|c|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина перестройки частоты вращения ротора турбокомпрессора +при <<Разрешении РПМ>>,\%% +\end{minipage}} & \centering{}$\Delta n_{\text{тк\_взл}}0$ & <<Взлёт>> & \tabularnewline +\hline +\newpage &\multicolumn{2}{|>{\centering}p{0.08\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина перестройки частоты вращения ротора турбокомпрессора +по команде <<Тренировочный режим>>, \%% +\end{minipage}} & \centering{}$\Delta n_{\text{тк\_тр}}0$ & <<Взлёт>> & \tabularnewline +\hline + &\multicolumn{2}{|c|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Расходный коэффициент 1-го контура форсунок% +\end{minipage}} & \centering{}$\Psi_{(\mu F)}$ & - & \tabularnewline +\hline + &\multicolumn{2}{|>{\centering}p{0.1\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Программный расход топлива в РС, кг/ч% +\end{minipage}} & \centering{}$G_{\text{т прог РС МГ}}$ & - & \tabularnewline +\hline + &\multirow{2}{0.15\paperwidth}{Параметры измерителя крутящего +момента\foreignlanguage{english}{ } } & Начальное смещение, град & \centering{}$\phi_{\text{икм}}0$ & \multirow{2}{0.1\paperwidth}{\centering{}-} & \tabularnewline +\hline + & & Коэффициент характеристики & \centering{}$K$ & & \tabularnewline +\hline +\end{longtable} +\par\end{flushleft} + +Расход масла, л/ч \rule[-1pt]{2cm}{0.4pt} (не более 0,2) + +\begin{flushleft} +\textbf{Зависимость между положением дозирующей иглы и расходом топлива +$G_{\text{т}}=f(\alpha_{\text{дк}})$} +\par\end{flushleft} + +\begin{flushleft} +Drossel55.Table3 +\par\end{flushleft} + +\begin{flushleft} +\begin{longtable}{|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.15\paperwidth}|>{\centering}p{0.1\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|} +\toprule + \multicolumn{10}{|c}{Значение, полученное при испытании}&\multicolumn{2}{|c|}{Параметр} & \multicolumn{10}{c|}{Значение, полученное при испытании}\tabularnewline +\midrule + 10&Наименование и единица измерения & Обозначение & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10\tabularnewline +\midrule + \newpage &Положение дозирующей иглы, град & $(\alpha_{\text{дк}})$ & & & & & & & & & & \tabularnewline +\midrule + &Расход топлива, кг/ч & $G_{\text{Т}}$ & & & & & & & & & & \tabularnewline +\midrule +\newpage \multicolumn{3}{c|}{% +\begin{minipage}[t]{0.15\columnwidth}% +Представитель заказчика% +\end{minipage}}&Исполнитель & Инженер по испытаниям & \multicolumn{3}{c|}{% +\begin{minipage}[t]{0.1\columnwidth}% +Начальник БТК ИК% +\end{minipage}} & \multicolumn{4}{>{\centering}p{0.15\paperwidth}|}{% +\begin{minipage}[t]{0.15\columnwidth}% +Начальник участка ИД% +\end{minipage}} & \multicolumn{3}{c|}{% +\begin{minipage}[t]{0.15\columnwidth}% +Представитель заказчика% +\end{minipage}}\tabularnewline +\midrule + \multicolumn{3}{c|}{}& & & \multicolumn{3}{c|}{} & \multicolumn{4}{c|}{} & \multicolumn{3}{c|}{}\tabularnewline +\bottomrule +\end{longtable} +\par\end{flushleft} + +\begin{tabular}{|>{\raggedright}m{0.11\paperwidth}|>{\centering}m{0.04\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.09\paperwidth}|>{\centering}m{0.09\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.09\paperwidth}|} +\hline + \newpage +\multirow{2}{0.11\paperwidth}{\centering{}\linebreak{} + Режим работы двигателя} & & \multirow{2}{0.1\paperwidth}{\textbf{\centering{}}\linebreak{} + Мощность на выводном валу \textbf{N л.с.} } & \multicolumn{2}{c|}{Частота вращения ротора} & \multirow{2}{0.1\paperwidth}{\centering{}Температура газа +перед свободнойтурбиной не более \textbf{t$_{4}$},$\,^{\circ}\mbox{C}$} & \multirow{2}{0.09\paperwidth}{\centering{}Удельный расход +топлива не более \textbf{C$_{R\text{ пр}}$}г/л.с.ч.}\tabularnewline +\hline + & & & турбо-компрессора не более \textbf{n$_{\text{тк пр}}$}, \% & свободной турбины \textbf{n$_{\lyxmathsym{ст}}$}, \% & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{{*}2,5-минутной мощности} & ТУ & & 101,0 & 98$\pm$0,5 & 805 & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{30-минутной мощности} & ТУ & 3000 & 98,5 & 98$\pm$0,5 & 795 & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{ВЗЛ} & ТУ & 2800 & 97,5 & 98$\pm$0,5 & 775 & 205\tabularnewline +\hline +\newpage & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{МП} & ТУ & 2100 & 94,0 & 98$\pm$0,5 & 705 & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{МКр} & ТУ & 1900 & 93,0 & 98$\pm$0,5 & 680 & 221\tabularnewline +\hline \newpage + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{{*} ЗМГ} & ТУ & - & - & 80$\pm$0,5 & - & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\end{tabular} + +\begin{flushleft} +{*} - измеренные параметры\hspace*{1in}\textbf{\textsc{Настроечные +параметры}} +\par\end{flushleft} + +\begin{flushleft} +Drossel55.Table2\foreignlanguage{english}{}% +\begin{tabular}{|>{\centering}m{0.15\paperwidth}|>{\centering}m{0.15\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\raggedright}m{0.19\paperwidth}|} +\hline +\hline\newpage +\multicolumn{2}{|c|}{ 1 } & 2 & 3 & 4 \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.2\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина частоты вращения + +ротора турбокомпрессора, \%% +\end{minipage}} & \centering{}$n_{\text{тк\_мг}}0$ & МГ & \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.08\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина частоты вращения + +ротора турбокомпрессора, \%% +\end{minipage}} & \centering{}$n_{\text{тк\_взл}}0$ & <<Взлёт>> & \tabularnewline +\hline +\multicolumn{2}{|c|}{ % +\begin{minipage}[c]{0.45\columnwidth}% +Настроечная величина минимальной частоты вращения ротора турбокомпрессора, +\%% +\end{minipage}} & \centering{}$n_{\text{тк\_мин}}0$ & МГ & \tabularnewline +\hline\newpage +\multicolumn{2}{|c|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина перестройки частоты вращения ротора турбокомпрессора +при <<Разрешении РПМ>>,\%% +\end{minipage}} & \centering{}$\Delta n_{\text{тк\_взл}}0$ & <<Взлёт>> & \tabularnewline +\hline +\newpage\multicolumn{2}{|>{\centering}p{0.08\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина перестройки частоты вращения ротора турбокомпрессора +по команде <<Тренировочный режим>>, \%% +\end{minipage}} & \centering{}$\Delta n_{\text{тк\_тр}}0$ & <<Взлёт>> & \tabularnewline +\hline +\multicolumn{2}{|c|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Расходный коэффициент 1-го контура форсунок% +\end{minipage}} & \centering{}$\Psi_{(\mu F)}$ & - & \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.1\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Программный расход топлива в РС, кг/ч% +\end{minipage}} & \centering{}$G_{\text{т прог РС МГ}}$ & - & \tabularnewline +\hline +\multirow{2}{0.15\paperwidth}{Параметры измерителя крутящего +момента\foreignlanguage{english}{ } } & Начальное смещение, град & \centering{}$\phi_{\text{икм}}0$ & \multirow{2}{0.1\paperwidth}{\centering{}-} & \tabularnewline +\hline + & Коэффициент характеристики & \centering{}$K$ & & \tabularnewline +\hline +\end{tabular} +\par\end{flushleft} + +Расход масла, л/ч \rule[-1pt]{2cm}{0.4pt} (не более 0,2) + +\begin{flushleft} +\textbf{Зависимость между положением дозирующей иглы и расходом топлива +$G_{\text{т}}=f(\alpha_{\text{дк}})$} +\par\end{flushleft} + +\begin{flushleft} +Drossel55.Table3 +\par\end{flushleft} + +\begin{flushleft} +\begin{tabular}{|>{\centering}p{0.15\paperwidth}|>{\centering}p{0.1\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|} +\toprule +\multicolumn{2}{|c|}{Параметр} & \multicolumn{10}{c|}{Значение, полученное при испытании}\tabularnewline +\midrule +Наименование и единица измерения & Обозначение & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10\tabularnewline +\midrule + \newpage Положение дозирующей иглы, град & $(\alpha_{\text{дк}})$ & & & & & & & & & & \tabularnewline +\midrule +Расход топлива, кг/ч & $G_{\text{Т}}$ & & & & & & & & & & \tabularnewline +\midrule +\newpage Исполнитель & Инженер по испытаниям & \multicolumn{3}{c|}{% +\begin{minipage}[t]{0.1\columnwidth}% +Начальник БТК ИК% +\end{minipage}} & \multicolumn{4}{>{\centering}p{0.15\paperwidth}|}{% +\begin{minipage}[t]{0.15\columnwidth}% +Начальник участка ИД% +\end{minipage}} & \multicolumn{3}{c|}{% +\begin{minipage}[t]{0.15\columnwidth}% +Представитель заказчика% +\end{minipage}}\tabularnewline +\midrule + & & \multicolumn{3}{c|}{} & \multicolumn{4}{c|}{} & \multicolumn{3}{c|}{}\tabularnewline +\bottomrule +\end{tabular} +\par\end{flushleft} + + +\end{document} diff --git a/test/tex/ltable_clone_lastp1_0.tex b/test/tex/ltable_clone_lastp1_0.tex new file mode 100644 index 0000000..c71d52a --- /dev/null +++ b/test/tex/ltable_clone_lastp1_0.tex @@ -0,0 +1,359 @@ +%% LyX 2.0.3 created this file. For more info, see http://www.lyx.org/. +%% Do not edit unless you really know what you are doing. +\documentclass[english,russian]{article} +\usepackage[T1]{fontenc} +\usepackage[utf8x]{inputenc} +\usepackage{geometry} +\geometry{verbose} +\usepackage{array} +\usepackage{longtable} +\usepackage{textcomp} +\usepackage{amstext} +\usepackage{graphicx} + +\makeatletter + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LyX specific LaTeX commands. +\DeclareRobustCommand{\cyrtext}{% + \fontencoding{T2A}\selectfont\def\encodingdefault{T2A}} +\DeclareRobustCommand{\textcyr}[1]{\leavevmode{\cyrtext #1}} +\AtBeginDocument{\DeclareFontEncoding{T2A}{}{}} + +\newcommand{\lyxmathsym}[1]{\ifmmode\begingroup\def\b@ld{bold} + \text{\ifx\math@version\b@ld\bfseries\fi#1}\endgroup\else#1\fi} + +%% Because html converters don't know tabularnewline +\providecommand{\tabularnewline}{\\} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands. +\usepackage{multirow} + + + +\usepackage{babel} + + + + + + +\usepackage{babel} + + + + + + +\usepackage{babel} + + + + + +\usepackage{babel} + + +\makeatother + +\usepackage{babel} +\begin{document} +\begin{flushright} +ф. 07-726А +\par\end{flushright} + +\begin{center} +\textbf{Формулярные данные по 06В.00.0100ВТУ} +\par\end{center} + +\begin{center} +двигателя ТВ7-117В №\rule[-1pt]{3.5cm}{0.4pt} Температура наружного +воздуха $t_{\text{н}}$, \rule[-1pt]{1cm}{0.4pt}, $\,^{\circ}\mbox{C}$ +\par\end{center} + +от\_\_\_\_\_\_\_\_\_\_ <<\rule[-1pt]{1.1cm}{0.4pt}>> \rule[-1pt]{2.5cm}{0.4pt} +20~~~~г.~~~~~~Давление наружного воздуха, $P_{\text{Н}}$\rule[-1pt]{1cm}{0.4pt} +мм. рт. ст. + +Drossel55.Table1 + +\begin{longtable}{|>{\raggedright}m{0.11\paperwidth}|>{\centering}m{0.04\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.09\paperwidth}|>{\centering}m{0.09\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.09\paperwidth}|} +\hline + \newpage +\multirow{2}{0.11\paperwidth}{\centering{}\linebreak{} + Режим работы двигателя} & & \multirow{2}{0.1\paperwidth}{\textbf{\centering{}}\linebreak{} + Мощность на выводном валу \textbf{N л.с.} } & \multicolumn{2}{c|}{Частота вращения ротора} & \multirow{2}{0.1\paperwidth}{\centering{}Температура газа +перед свободнойтурбиной не более \textbf{t$_{4}$},$\,^{\circ}\mbox{C}$} & \multirow{2}{0.09\paperwidth}{\centering{}Удельный расход +топлива не более \textbf{C$_{R\text{ пр}}$}г/л.с.ч.}\tabularnewline +\hline + & & & турбо-компрессора не более \textbf{n$_{\text{тк пр}}$}, \% & свободной турбины \textbf{n$_{\lyxmathsym{ст}}$}, \% & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{{*}2,5-минутной мощности} & ТУ & & 101,0 & 98$\pm$0,5 & 805 & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{30-минутной мощности} & ТУ & 3000 & 98,5 & 98$\pm$0,5 & 795 & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{ВЗЛ} & ТУ & 2800 & 97,5 & 98$\pm$0,5 & 775 & 205\tabularnewline +\hline +\newpage & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{МП} & ТУ & 2100 & 94,0 & 98$\pm$0,5 & 705 & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{МКр} & ТУ & 1900 & 93,0 & 98$\pm$0,5 & 680 & 221\tabularnewline +\hline \newpage + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{{*} ЗМГ} & ТУ & - & - & 80$\pm$0,5 & - & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\end{longtable} + +\begin{flushleft} +{*} - измеренные параметры\hspace*{1in}\textbf{\textsc{Настроечные +параметры}} +\par\end{flushleft} + +\begin{flushleft} +Drossel55.Table2\foreignlanguage{english}{}% +\begin{longtable}{|>{\centering}m{0.15\paperwidth}|>{\centering}m{0.15\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\raggedright}m{0.19\paperwidth}|} +\hline +\multicolumn{2}{|>{\centering}m{0.2\paperwidth}|}{\centering{}\textbf{Параметр} } & \multirow{2}{0.1\paperwidth}{\textbf{\centering{}Обозначение}} & \multirow{2}{0.1\paperwidth}{\textbf{\centering{}Режим}} & \multirow{2}{0.1\paperwidth}{\textbf{\centering{}Значение, +полученное при испытании}} \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.2\paperwidth}|}{ \textbf{Наименование и единица измерения} } & & & \tabularnewline +\endhead +\hline\newpage +\multicolumn{2}{|c|}{ 1 } & 2 & 3 & 4 \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.2\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина частоты вращения + +ротора турбокомпрессора, \%% +\end{minipage}} & \centering{}$n_{\text{тк\_мг}}0$ & МГ & \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.08\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина частоты вращения + +ротора турбокомпрессора, \%% +\end{minipage}} & \centering{}$n_{\text{тк\_взл}}0$ & <<Взлёт>> & \tabularnewline +\hline +\multicolumn{2}{|c|}{ % +\begin{minipage}[c]{0.45\columnwidth}% +Настроечная величина минимальной частоты вращения ротора турбокомпрессора, +\%% +\end{minipage}} & \centering{}$n_{\text{тк\_мин}}0$ & МГ & \tabularnewline +\hline\newpage +\multicolumn{2}{|c|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина перестройки частоты вращения ротора турбокомпрессора +при <<Разрешении РПМ>>,\%% +\end{minipage}} & \centering{}$\Delta n_{\text{тк\_взл}}0$ & <<Взлёт>> & \tabularnewline +\hline +\newpage\multicolumn{2}{|>{\centering}p{0.08\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина перестройки частоты вращения ротора турбокомпрессора +по команде <<Тренировочный режим>>, \%% +\end{minipage}} & \centering{}$\Delta n_{\text{тк\_тр}}0$ & <<Взлёт>> & \tabularnewline +\hline +\multicolumn{2}{|c|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Расходный коэффициент 1-го контура форсунок% +\end{minipage}} & \centering{}$\Psi_{(\mu F)}$ & - & \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.1\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Программный расход топлива в РС, кг/ч% +\end{minipage}} & \centering{}$G_{\text{т прог РС МГ}}$ & - & \tabularnewline +\hline +\multirow{2}{0.15\paperwidth}{Параметры измерителя крутящего +момента\foreignlanguage{english}{ } } & Начальное смещение, град & \centering{}$\phi_{\text{икм}}0$ & \multirow{2}{0.1\paperwidth}{\centering{}-} & \tabularnewline +\hline + & Коэффициент характеристики & \centering{}$K$ & & \tabularnewline +\hline +\end{longtable} +\par\end{flushleft} + +Расход масла, л/ч \rule[-1pt]{2cm}{0.4pt} (не более 0,2) + +\begin{flushleft} +\textbf{Зависимость между положением дозирующей иглы и расходом топлива +$G_{\text{т}}=f(\alpha_{\text{дк}})$} +\par\end{flushleft} + +\begin{flushleft} +Drossel55.Table3 +\par\end{flushleft} + +\begin{flushleft} +\begin{longtable}{|>{\centering}p{0.15\paperwidth}|>{\centering}p{0.1\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|} +\toprule +\multicolumn{2}{|c|}{Параметр} & \multicolumn{10}{c|}{Значение, полученное при испытании}\tabularnewline +\midrule +Наименование и единица измерения & Обозначение & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10\tabularnewline +\midrule + \newpage Положение дозирующей иглы, град & $(\alpha_{\text{дк}})$ & & & & & & & & & & \tabularnewline +\midrule +Расход топлива, кг/ч & $G_{\text{Т}}$ & & & & & & & & & & \tabularnewline +\midrule +\newpage Исполнитель & Инженер по испытаниям & \multicolumn{3}{c|}{% +\begin{minipage}[t]{0.1\columnwidth}% +Начальник БТК ИК% +\end{minipage}} & \multicolumn{4}{>{\centering}p{0.15\paperwidth}|}{% +\begin{minipage}[t]{0.15\columnwidth}% +Начальник участка ИД% +\end{minipage}} & \multicolumn{3}{c|}{% +\begin{minipage}[t]{0.15\columnwidth}% +Представитель заказчика% +\end{minipage}}\tabularnewline +\midrule + & & \multicolumn{3}{c|}{} & \multicolumn{4}{c|}{} & \multicolumn{3}{c|}{}\tabularnewline +\bottomrule +\end{longtable} +\par\end{flushleft} + +\begin{tabular}{|>{\raggedright}m{0.11\paperwidth}|>{\centering}m{0.04\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.09\paperwidth}|>{\centering}m{0.09\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.09\paperwidth}|} +\hline + \newpage +\multirow{2}{0.11\paperwidth}{\centering{}\linebreak{} + Режим работы двигателя} & & \multirow{2}{0.1\paperwidth}{\textbf{\centering{}}\linebreak{} + Мощность на выводном валу \textbf{N л.с.} } & \multicolumn{2}{c|}{Частота вращения ротора} & \multirow{2}{0.1\paperwidth}{\centering{}Температура газа +перед свободнойтурбиной не более \textbf{t$_{4}$},$\,^{\circ}\mbox{C}$} & \multirow{2}{0.09\paperwidth}{\centering{}Удельный расход +топлива не более \textbf{C$_{R\text{ пр}}$}г/л.с.ч.}\tabularnewline +\hline + & & & турбо-компрессора не более \textbf{n$_{\text{тк пр}}$}, \% & свободной турбины \textbf{n$_{\lyxmathsym{ст}}$}, \% & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{{*}2,5-минутной мощности} & ТУ & & 101,0 & 98$\pm$0,5 & 805 & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{30-минутной мощности} & ТУ & 3000 & 98,5 & 98$\pm$0,5 & 795 & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{ВЗЛ} & ТУ & 2800 & 97,5 & 98$\pm$0,5 & 775 & 205\tabularnewline +\hline +\newpage & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{МП} & ТУ & 2100 & 94,0 & 98$\pm$0,5 & 705 & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{МКр} & ТУ & 1900 & 93,0 & 98$\pm$0,5 & 680 & 221\tabularnewline +\hline \newpage + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{{*} ЗМГ} & ТУ & - & - & 80$\pm$0,5 & - & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\end{tabular} + +\begin{flushleft} +{*} - измеренные параметры\hspace*{1in}\textbf{\textsc{Настроечные +параметры}} +\par\end{flushleft} + +\begin{flushleft} +Drossel55.Table2\foreignlanguage{english}{}% +\begin{tabular}{|>{\centering}m{0.15\paperwidth}|>{\centering}m{0.15\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\raggedright}m{0.19\paperwidth}|} +\hline +\hline\newpage +\multicolumn{2}{|c|}{ 1 } & 2 & 3 & 4 \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.2\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина частоты вращения + +ротора турбокомпрессора, \%% +\end{minipage}} & \centering{}$n_{\text{тк\_мг}}0$ & МГ & \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.08\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина частоты вращения + +ротора турбокомпрессора, \%% +\end{minipage}} & \centering{}$n_{\text{тк\_взл}}0$ & <<Взлёт>> & \tabularnewline +\hline +\multicolumn{2}{|c|}{ % +\begin{minipage}[c]{0.45\columnwidth}% +Настроечная величина минимальной частоты вращения ротора турбокомпрессора, +\%% +\end{minipage}} & \centering{}$n_{\text{тк\_мин}}0$ & МГ & \tabularnewline +\hline\newpage +\multicolumn{2}{|c|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина перестройки частоты вращения ротора турбокомпрессора +при <<Разрешении РПМ>>,\%% +\end{minipage}} & \centering{}$\Delta n_{\text{тк\_взл}}0$ & <<Взлёт>> & \tabularnewline +\hline +\newpage\multicolumn{2}{|>{\centering}p{0.08\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина перестройки частоты вращения ротора турбокомпрессора +по команде <<Тренировочный режим>>, \%% +\end{minipage}} & \centering{}$\Delta n_{\text{тк\_тр}}0$ & <<Взлёт>> & \tabularnewline +\hline +\multicolumn{2}{|c|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Расходный коэффициент 1-го контура форсунок% +\end{minipage}} & \centering{}$\Psi_{(\mu F)}$ & - & \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.1\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Программный расход топлива в РС, кг/ч% +\end{minipage}} & \centering{}$G_{\text{т прог РС МГ}}$ & - & \tabularnewline +\hline +\multirow{2}{0.15\paperwidth}{Параметры измерителя крутящего +момента\foreignlanguage{english}{ } } & Начальное смещение, град & \centering{}$\phi_{\text{икм}}0$ & \multirow{2}{0.1\paperwidth}{\centering{}-} & \tabularnewline +\hline + & Коэффициент характеристики & \centering{}$K$ & & \tabularnewline +\hline +\end{tabular} +\par\end{flushleft} + +Расход масла, л/ч \rule[-1pt]{2cm}{0.4pt} (не более 0,2) + +\begin{flushleft} +\textbf{Зависимость между положением дозирующей иглы и расходом топлива +$G_{\text{т}}=f(\alpha_{\text{дк}})$} +\par\end{flushleft} + +\begin{flushleft} +Drossel55.Table3 +\par\end{flushleft} + +\begin{flushleft} +\begin{tabular}{|>{\centering}p{0.15\paperwidth}|>{\centering}p{0.1\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|} +\toprule +\multicolumn{2}{|c|}{Параметр} & \multicolumn{10}{c|}{Значение, полученное при испытании}\tabularnewline +\midrule +Наименование и единица измерения & Обозначение & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10\tabularnewline +\midrule + \newpage Положение дозирующей иглы, град & $(\alpha_{\text{дк}})$ & & & & & & & & & & \tabularnewline +\midrule +Расход топлива, кг/ч & $G_{\text{Т}}$ & & & & & & & & & & \tabularnewline +\midrule +\newpage Исполнитель & Инженер по испытаниям & \multicolumn{3}{c|}{% +\begin{minipage}[t]{0.1\columnwidth}% +Начальник БТК ИК% +\end{minipage}} & \multicolumn{4}{>{\centering}p{0.15\paperwidth}|}{% +\begin{minipage}[t]{0.15\columnwidth}% +Начальник участка ИД% +\end{minipage}} & \multicolumn{3}{c|}{% +\begin{minipage}[t]{0.15\columnwidth}% +Представитель заказчика% +\end{minipage}}\tabularnewline +\midrule + & & \multicolumn{3}{c|}{} & \multicolumn{4}{c|}{} & \multicolumn{3}{c|}{}\tabularnewline +\bottomrule +\end{tabular} +\par\end{flushleft} + + +\end{document} diff --git a/test/tex/ltable_double_embedded.tex b/test/tex/ltable_double_embedded.tex new file mode 100644 index 0000000..5d8b023 --- /dev/null +++ b/test/tex/ltable_double_embedded.tex @@ -0,0 +1,11 @@ +\begin{longtable}{c} +\begin{longtable}{c}aaa\begin{longtable}{c}bbb\end{longtable}\end{longtable}\tabularnewline + +% success +\begin{longtable}{c} +aaa\begin{longtable}{c}bbb\end{longtable}\end{longtable}\tabularnewline + +% fail +\multirow{2}{0.11\paperwidth}{\begin{longtable}{c}aaa\begin{longtable}{c}bbb\end{longtable}\end{longtable}\tabularnewline +\end{longtable} +Немного русского текста в конце документа diff --git a/test/tex/ltable_embedded.tex b/test/tex/ltable_embedded.tex new file mode 100644 index 0000000..78c605c --- /dev/null +++ b/test/tex/ltable_embedded.tex @@ -0,0 +1,3 @@ +\begin{longtable}{c} +\begin{longtable}{c}\end{longtable}\end{longtable} +Немного русского текста в конце документа diff --git a/test/tex/ltable_rm0row.tex b/test/tex/ltable_rm0row.tex new file mode 100644 index 0000000..bc6881f --- /dev/null +++ b/test/tex/ltable_rm0row.tex @@ -0,0 +1,357 @@ +%% LyX 2.0.3 created this file. For more info, see http://www.lyx.org/. +%% Do not edit unless you really know what you are doing. +\documentclass[english,russian]{article} +\usepackage[T1]{fontenc} +\usepackage[utf8x]{inputenc} +\usepackage{geometry} +\geometry{verbose} +\usepackage{array} +\usepackage{longtable} +\usepackage{textcomp} +\usepackage{amstext} +\usepackage{graphicx} + +\makeatletter + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LyX specific LaTeX commands. +\DeclareRobustCommand{\cyrtext}{% + \fontencoding{T2A}\selectfont\def\encodingdefault{T2A}} +\DeclareRobustCommand{\textcyr}[1]{\leavevmode{\cyrtext #1}} +\AtBeginDocument{\DeclareFontEncoding{T2A}{}{}} + +\newcommand{\lyxmathsym}[1]{\ifmmode\begingroup\def\b@ld{bold} + \text{\ifx\math@version\b@ld\bfseries\fi#1}\endgroup\else#1\fi} + +%% Because html converters don't know tabularnewline +\providecommand{\tabularnewline}{\\} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands. +\usepackage{multirow} + + + +\usepackage{babel} + + + + + + +\usepackage{babel} + + + + + + +\usepackage{babel} + + + + + +\usepackage{babel} + + +\makeatother + +\usepackage{babel} +\begin{document} +\begin{flushright} +ф. 07-726А +\par\end{flushright} + +\begin{center} +\textbf{Формулярные данные по 06В.00.0100ВТУ} +\par\end{center} + +\begin{center} +двигателя ТВ7-117В №\rule[-1pt]{3.5cm}{0.4pt} Температура наружного +воздуха $t_{\text{н}}$, \rule[-1pt]{1cm}{0.4pt}, $\,^{\circ}\mbox{C}$ +\par\end{center} + +от\_\_\_\_\_\_\_\_\_\_ <<\rule[-1pt]{1.1cm}{0.4pt}>> \rule[-1pt]{2.5cm}{0.4pt} +20~~~~г.~~~~~~Давление наружного воздуха, $P_{\text{Н}}$\rule[-1pt]{1cm}{0.4pt} +мм. рт. ст. + +Drossel55.Table1 + +\begin{longtable}{|>{\centering}m{0.04\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.09\paperwidth}|>{\centering}m{0.09\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.09\paperwidth}|} +\hline + \newpage + & \multirow{2}{0.1\paperwidth}{\textbf{\centering{}}\linebreak{} + Мощность на выводном валу \textbf{N л.с.} } & \multicolumn{2}{c|}{Частота вращения ротора} & \multirow{2}{0.1\paperwidth}{\centering{}Температура газа +перед свободнойтурбиной не более \textbf{t$_{4}$},$\,^{\circ}\mbox{C}$} & \multirow{2}{0.09\paperwidth}{\centering{}Удельный расход +топлива не более \textbf{C$_{R\text{ пр}}$}г/л.с.ч.}\tabularnewline +\hline + & & турбо-компрессора не более \textbf{n$_{\text{тк пр}}$}, \% & свободной турбины \textbf{n$_{\lyxmathsym{ст}}$}, \% & & \tabularnewline +\hline + ТУ & & 101,0 & 98$\pm$0,5 & 805 & -\tabularnewline +\hline + Факт & & & & & \tabularnewline +\hline + ТУ & 3000 & 98,5 & 98$\pm$0,5 & 795 & -\tabularnewline +\hline + Факт & & & & & \tabularnewline +\hline + ТУ & 2800 & 97,5 & 98$\pm$0,5 & 775 & 205\tabularnewline +\hline +\newpage Факт & & & & & \tabularnewline +\hline + ТУ & 2100 & 94,0 & 98$\pm$0,5 & 705 & -\tabularnewline +\hline + Факт & & & & & \tabularnewline +\hline + ТУ & 1900 & 93,0 & 98$\pm$0,5 & 680 & 221\tabularnewline +\hline \newpage + Факт & & & & & \tabularnewline +\hline + ТУ & - & - & 80$\pm$0,5 & - & -\tabularnewline +\hline + Факт & & & & & \tabularnewline +\hline +\end{longtable} + +\begin{flushleft} +{*} - измеренные параметры\hspace*{1in}\textbf{\textsc{Настроечные +параметры}} +\par\end{flushleft} + +\begin{flushleft} +Drossel55.Table2\foreignlanguage{english}{}% +\begin{longtable}{|>{\centering}m{0.15\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\raggedright}m{0.19\paperwidth}|} +\hline +\multicolumn{1}{|>{\centering}m{0.2\paperwidth}|}{\centering{}\textbf{Параметр} } & \multirow{2}{0.1\paperwidth}{\textbf{\centering{}Обозначение}} & \multirow{2}{0.1\paperwidth}{\textbf{\centering{}Режим}} & \multirow{2}{0.1\paperwidth}{\textbf{\centering{}Значение, +полученное при испытании}} \tabularnewline +\hline +\multicolumn{1}{|>{\centering}p{0.2\paperwidth}|}{ \textbf{Наименование и единица измерения} } & & & \tabularnewline +\endhead +\hline\newpage +\multicolumn{1}{|c|}{ 1 } & 2 & 3 & 4 \tabularnewline +\hline +\multicolumn{1}{|>{\centering}p{0.2\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина частоты вращения + +ротора турбокомпрессора, \%% +\end{minipage}} & \centering{}$n_{\text{тк\_мг}}0$ & МГ & \tabularnewline +\hline +\multicolumn{1}{|>{\centering}p{0.08\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина частоты вращения + +ротора турбокомпрессора, \%% +\end{minipage}} & \centering{}$n_{\text{тк\_взл}}0$ & <<Взлёт>> & \tabularnewline +\hline +\multicolumn{1}{|c|}{ % +\begin{minipage}[c]{0.45\columnwidth}% +Настроечная величина минимальной частоты вращения ротора турбокомпрессора, +\%% +\end{minipage}} & \centering{}$n_{\text{тк\_мин}}0$ & МГ & \tabularnewline +\hline\newpage +\multicolumn{1}{|c|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина перестройки частоты вращения ротора турбокомпрессора +при <<Разрешении РПМ>>,\%% +\end{minipage}} & \centering{}$\Delta n_{\text{тк\_взл}}0$ & <<Взлёт>> & \tabularnewline +\hline +\newpage\multicolumn{1}{|>{\centering}p{0.08\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина перестройки частоты вращения ротора турбокомпрессора +по команде <<Тренировочный режим>>, \%% +\end{minipage}} & \centering{}$\Delta n_{\text{тк\_тр}}0$ & <<Взлёт>> & \tabularnewline +\hline +\multicolumn{1}{|c|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Расходный коэффициент 1-го контура форсунок% +\end{minipage}} & \centering{}$\Psi_{(\mu F)}$ & - & \tabularnewline +\hline +\multicolumn{1}{|>{\centering}p{0.1\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Программный расход топлива в РС, кг/ч% +\end{minipage}} & \centering{}$G_{\text{т прог РС МГ}}$ & - & \tabularnewline +\hline + Начальное смещение, град & \centering{}$\phi_{\text{икм}}0$ & \multirow{2}{0.1\paperwidth}{\centering{}-} & \tabularnewline +\hline + Коэффициент характеристики & \centering{}$K$ & & \tabularnewline +\hline +\end{longtable} +\par\end{flushleft} + +Расход масла, л/ч \rule[-1pt]{2cm}{0.4pt} (не более 0,2) + +\begin{flushleft} +\textbf{Зависимость между положением дозирующей иглы и расходом топлива +$G_{\text{т}}=f(\alpha_{\text{дк}})$} +\par\end{flushleft} + +\begin{flushleft} +Drossel55.Table3 +\par\end{flushleft} + +\begin{flushleft} +\begin{longtable}{|>{\centering}p{0.1\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|} +\toprule +\multicolumn{1}{|c|}{Параметр} & \multicolumn{10}{c|}{Значение, полученное при испытании}\tabularnewline +\midrule + Обозначение & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10\tabularnewline +\midrule + \newpage $(\alpha_{\text{дк}})$ & & & & & & & & & & \tabularnewline +\midrule + $G_{\text{Т}}$ & & & & & & & & & & \tabularnewline +\midrule +\newpage Инженер по испытаниям & \multicolumn{3}{c|}{% +\begin{minipage}[t]{0.1\columnwidth}% +Начальник БТК ИК% +\end{minipage}} & \multicolumn{4}{>{\centering}p{0.15\paperwidth}|}{% +\begin{minipage}[t]{0.15\columnwidth}% +Начальник участка ИД% +\end{minipage}} & \multicolumn{3}{c|}{% +\begin{minipage}[t]{0.15\columnwidth}% +Представитель заказчика% +\end{minipage}}\tabularnewline +\midrule + & \multicolumn{3}{c|}{} & \multicolumn{4}{c|}{} & \multicolumn{3}{c|}{}\tabularnewline +\bottomrule +\end{longtable} +\par\end{flushleft} + +\begin{tabular}{|>{\raggedright}m{0.11\paperwidth}|>{\centering}m{0.04\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.09\paperwidth}|>{\centering}m{0.09\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.09\paperwidth}|} +\hline + \newpage +\multirow{2}{0.11\paperwidth}{\centering{}\linebreak{} + Режим работы двигателя} & & \multirow{2}{0.1\paperwidth}{\textbf{\centering{}}\linebreak{} + Мощность на выводном валу \textbf{N л.с.} } & \multicolumn{2}{c|}{Частота вращения ротора} & \multirow{2}{0.1\paperwidth}{\centering{}Температура газа +перед свободнойтурбиной не более \textbf{t$_{4}$},$\,^{\circ}\mbox{C}$} & \multirow{2}{0.09\paperwidth}{\centering{}Удельный расход +топлива не более \textbf{C$_{R\text{ пр}}$}г/л.с.ч.}\tabularnewline +\hline + & & & турбо-компрессора не более \textbf{n$_{\text{тк пр}}$}, \% & свободной турбины \textbf{n$_{\lyxmathsym{ст}}$}, \% & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{{*}2,5-минутной мощности} & ТУ & & 101,0 & 98$\pm$0,5 & 805 & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{30-минутной мощности} & ТУ & 3000 & 98,5 & 98$\pm$0,5 & 795 & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{ВЗЛ} & ТУ & 2800 & 97,5 & 98$\pm$0,5 & 775 & 205\tabularnewline +\hline +\newpage & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{МП} & ТУ & 2100 & 94,0 & 98$\pm$0,5 & 705 & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{МКр} & ТУ & 1900 & 93,0 & 98$\pm$0,5 & 680 & 221\tabularnewline +\hline \newpage + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{{*} ЗМГ} & ТУ & - & - & 80$\pm$0,5 & - & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\end{tabular} + +\begin{flushleft} +{*} - измеренные параметры\hspace*{1in}\textbf{\textsc{Настроечные +параметры}} +\par\end{flushleft} + +\begin{flushleft} +Drossel55.Table2\foreignlanguage{english}{}% +\begin{tabular}{|>{\centering}m{0.15\paperwidth}|>{\centering}m{0.15\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\raggedright}m{0.19\paperwidth}|} +\hline +\hline\newpage +\multicolumn{2}{|c|}{ 1 } & 2 & 3 & 4 \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.2\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина частоты вращения + +ротора турбокомпрессора, \%% +\end{minipage}} & \centering{}$n_{\text{тк\_мг}}0$ & МГ & \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.08\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина частоты вращения + +ротора турбокомпрессора, \%% +\end{minipage}} & \centering{}$n_{\text{тк\_взл}}0$ & <<Взлёт>> & \tabularnewline +\hline +\multicolumn{2}{|c|}{ % +\begin{minipage}[c]{0.45\columnwidth}% +Настроечная величина минимальной частоты вращения ротора турбокомпрессора, +\%% +\end{minipage}} & \centering{}$n_{\text{тк\_мин}}0$ & МГ & \tabularnewline +\hline\newpage +\multicolumn{2}{|c|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина перестройки частоты вращения ротора турбокомпрессора +при <<Разрешении РПМ>>,\%% +\end{minipage}} & \centering{}$\Delta n_{\text{тк\_взл}}0$ & <<Взлёт>> & \tabularnewline +\hline +\newpage\multicolumn{2}{|>{\centering}p{0.08\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина перестройки частоты вращения ротора турбокомпрессора +по команде <<Тренировочный режим>>, \%% +\end{minipage}} & \centering{}$\Delta n_{\text{тк\_тр}}0$ & <<Взлёт>> & \tabularnewline +\hline +\multicolumn{2}{|c|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Расходный коэффициент 1-го контура форсунок% +\end{minipage}} & \centering{}$\Psi_{(\mu F)}$ & - & \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.1\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Программный расход топлива в РС, кг/ч% +\end{minipage}} & \centering{}$G_{\text{т прог РС МГ}}$ & - & \tabularnewline +\hline +\multirow{2}{0.15\paperwidth}{Параметры измерителя крутящего +момента\foreignlanguage{english}{ } } & Начальное смещение, град & \centering{}$\phi_{\text{икм}}0$ & \multirow{2}{0.1\paperwidth}{\centering{}-} & \tabularnewline +\hline + & Коэффициент характеристики & \centering{}$K$ & & \tabularnewline +\hline +\end{tabular} +\par\end{flushleft} + +Расход масла, л/ч \rule[-1pt]{2cm}{0.4pt} (не более 0,2) + +\begin{flushleft} +\textbf{Зависимость между положением дозирующей иглы и расходом топлива +$G_{\text{т}}=f(\alpha_{\text{дк}})$} +\par\end{flushleft} + +\begin{flushleft} +Drossel55.Table3 +\par\end{flushleft} + +\begin{flushleft} +\begin{tabular}{|>{\centering}p{0.15\paperwidth}|>{\centering}p{0.1\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|} +\toprule +\multicolumn{2}{|c|}{Параметр} & \multicolumn{10}{c|}{Значение, полученное при испытании}\tabularnewline +\midrule +Наименование и единица измерения & Обозначение & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10\tabularnewline +\midrule + \newpage Положение дозирующей иглы, град & $(\alpha_{\text{дк}})$ & & & & & & & & & & \tabularnewline +\midrule +Расход топлива, кг/ч & $G_{\text{Т}}$ & & & & & & & & & & \tabularnewline +\midrule +\newpage Исполнитель & Инженер по испытаниям & \multicolumn{3}{c|}{% +\begin{minipage}[t]{0.1\columnwidth}% +Начальник БТК ИК% +\end{minipage}} & \multicolumn{4}{>{\centering}p{0.15\paperwidth}|}{% +\begin{minipage}[t]{0.15\columnwidth}% +Начальник участка ИД% +\end{minipage}} & \multicolumn{3}{c|}{% +\begin{minipage}[t]{0.15\columnwidth}% +Представитель заказчика% +\end{minipage}}\tabularnewline +\midrule + & & \multicolumn{3}{c|}{} & \multicolumn{4}{c|}{} & \multicolumn{3}{c|}{}\tabularnewline +\bottomrule +\end{tabular} +\par\end{flushleft} + + +\end{document} diff --git a/test/tex/ltable_rm1000row.tex b/test/tex/ltable_rm1000row.tex new file mode 100644 index 0000000..c71d52a --- /dev/null +++ b/test/tex/ltable_rm1000row.tex @@ -0,0 +1,359 @@ +%% LyX 2.0.3 created this file. For more info, see http://www.lyx.org/. +%% Do not edit unless you really know what you are doing. +\documentclass[english,russian]{article} +\usepackage[T1]{fontenc} +\usepackage[utf8x]{inputenc} +\usepackage{geometry} +\geometry{verbose} +\usepackage{array} +\usepackage{longtable} +\usepackage{textcomp} +\usepackage{amstext} +\usepackage{graphicx} + +\makeatletter + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LyX specific LaTeX commands. +\DeclareRobustCommand{\cyrtext}{% + \fontencoding{T2A}\selectfont\def\encodingdefault{T2A}} +\DeclareRobustCommand{\textcyr}[1]{\leavevmode{\cyrtext #1}} +\AtBeginDocument{\DeclareFontEncoding{T2A}{}{}} + +\newcommand{\lyxmathsym}[1]{\ifmmode\begingroup\def\b@ld{bold} + \text{\ifx\math@version\b@ld\bfseries\fi#1}\endgroup\else#1\fi} + +%% Because html converters don't know tabularnewline +\providecommand{\tabularnewline}{\\} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands. +\usepackage{multirow} + + + +\usepackage{babel} + + + + + + +\usepackage{babel} + + + + + + +\usepackage{babel} + + + + + +\usepackage{babel} + + +\makeatother + +\usepackage{babel} +\begin{document} +\begin{flushright} +ф. 07-726А +\par\end{flushright} + +\begin{center} +\textbf{Формулярные данные по 06В.00.0100ВТУ} +\par\end{center} + +\begin{center} +двигателя ТВ7-117В №\rule[-1pt]{3.5cm}{0.4pt} Температура наружного +воздуха $t_{\text{н}}$, \rule[-1pt]{1cm}{0.4pt}, $\,^{\circ}\mbox{C}$ +\par\end{center} + +от\_\_\_\_\_\_\_\_\_\_ <<\rule[-1pt]{1.1cm}{0.4pt}>> \rule[-1pt]{2.5cm}{0.4pt} +20~~~~г.~~~~~~Давление наружного воздуха, $P_{\text{Н}}$\rule[-1pt]{1cm}{0.4pt} +мм. рт. ст. + +Drossel55.Table1 + +\begin{longtable}{|>{\raggedright}m{0.11\paperwidth}|>{\centering}m{0.04\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.09\paperwidth}|>{\centering}m{0.09\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.09\paperwidth}|} +\hline + \newpage +\multirow{2}{0.11\paperwidth}{\centering{}\linebreak{} + Режим работы двигателя} & & \multirow{2}{0.1\paperwidth}{\textbf{\centering{}}\linebreak{} + Мощность на выводном валу \textbf{N л.с.} } & \multicolumn{2}{c|}{Частота вращения ротора} & \multirow{2}{0.1\paperwidth}{\centering{}Температура газа +перед свободнойтурбиной не более \textbf{t$_{4}$},$\,^{\circ}\mbox{C}$} & \multirow{2}{0.09\paperwidth}{\centering{}Удельный расход +топлива не более \textbf{C$_{R\text{ пр}}$}г/л.с.ч.}\tabularnewline +\hline + & & & турбо-компрессора не более \textbf{n$_{\text{тк пр}}$}, \% & свободной турбины \textbf{n$_{\lyxmathsym{ст}}$}, \% & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{{*}2,5-минутной мощности} & ТУ & & 101,0 & 98$\pm$0,5 & 805 & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{30-минутной мощности} & ТУ & 3000 & 98,5 & 98$\pm$0,5 & 795 & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{ВЗЛ} & ТУ & 2800 & 97,5 & 98$\pm$0,5 & 775 & 205\tabularnewline +\hline +\newpage & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{МП} & ТУ & 2100 & 94,0 & 98$\pm$0,5 & 705 & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{МКр} & ТУ & 1900 & 93,0 & 98$\pm$0,5 & 680 & 221\tabularnewline +\hline \newpage + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{{*} ЗМГ} & ТУ & - & - & 80$\pm$0,5 & - & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\end{longtable} + +\begin{flushleft} +{*} - измеренные параметры\hspace*{1in}\textbf{\textsc{Настроечные +параметры}} +\par\end{flushleft} + +\begin{flushleft} +Drossel55.Table2\foreignlanguage{english}{}% +\begin{longtable}{|>{\centering}m{0.15\paperwidth}|>{\centering}m{0.15\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\raggedright}m{0.19\paperwidth}|} +\hline +\multicolumn{2}{|>{\centering}m{0.2\paperwidth}|}{\centering{}\textbf{Параметр} } & \multirow{2}{0.1\paperwidth}{\textbf{\centering{}Обозначение}} & \multirow{2}{0.1\paperwidth}{\textbf{\centering{}Режим}} & \multirow{2}{0.1\paperwidth}{\textbf{\centering{}Значение, +полученное при испытании}} \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.2\paperwidth}|}{ \textbf{Наименование и единица измерения} } & & & \tabularnewline +\endhead +\hline\newpage +\multicolumn{2}{|c|}{ 1 } & 2 & 3 & 4 \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.2\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина частоты вращения + +ротора турбокомпрессора, \%% +\end{minipage}} & \centering{}$n_{\text{тк\_мг}}0$ & МГ & \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.08\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина частоты вращения + +ротора турбокомпрессора, \%% +\end{minipage}} & \centering{}$n_{\text{тк\_взл}}0$ & <<Взлёт>> & \tabularnewline +\hline +\multicolumn{2}{|c|}{ % +\begin{minipage}[c]{0.45\columnwidth}% +Настроечная величина минимальной частоты вращения ротора турбокомпрессора, +\%% +\end{minipage}} & \centering{}$n_{\text{тк\_мин}}0$ & МГ & \tabularnewline +\hline\newpage +\multicolumn{2}{|c|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина перестройки частоты вращения ротора турбокомпрессора +при <<Разрешении РПМ>>,\%% +\end{minipage}} & \centering{}$\Delta n_{\text{тк\_взл}}0$ & <<Взлёт>> & \tabularnewline +\hline +\newpage\multicolumn{2}{|>{\centering}p{0.08\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина перестройки частоты вращения ротора турбокомпрессора +по команде <<Тренировочный режим>>, \%% +\end{minipage}} & \centering{}$\Delta n_{\text{тк\_тр}}0$ & <<Взлёт>> & \tabularnewline +\hline +\multicolumn{2}{|c|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Расходный коэффициент 1-го контура форсунок% +\end{minipage}} & \centering{}$\Psi_{(\mu F)}$ & - & \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.1\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Программный расход топлива в РС, кг/ч% +\end{minipage}} & \centering{}$G_{\text{т прог РС МГ}}$ & - & \tabularnewline +\hline +\multirow{2}{0.15\paperwidth}{Параметры измерителя крутящего +момента\foreignlanguage{english}{ } } & Начальное смещение, град & \centering{}$\phi_{\text{икм}}0$ & \multirow{2}{0.1\paperwidth}{\centering{}-} & \tabularnewline +\hline + & Коэффициент характеристики & \centering{}$K$ & & \tabularnewline +\hline +\end{longtable} +\par\end{flushleft} + +Расход масла, л/ч \rule[-1pt]{2cm}{0.4pt} (не более 0,2) + +\begin{flushleft} +\textbf{Зависимость между положением дозирующей иглы и расходом топлива +$G_{\text{т}}=f(\alpha_{\text{дк}})$} +\par\end{flushleft} + +\begin{flushleft} +Drossel55.Table3 +\par\end{flushleft} + +\begin{flushleft} +\begin{longtable}{|>{\centering}p{0.15\paperwidth}|>{\centering}p{0.1\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|} +\toprule +\multicolumn{2}{|c|}{Параметр} & \multicolumn{10}{c|}{Значение, полученное при испытании}\tabularnewline +\midrule +Наименование и единица измерения & Обозначение & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10\tabularnewline +\midrule + \newpage Положение дозирующей иглы, град & $(\alpha_{\text{дк}})$ & & & & & & & & & & \tabularnewline +\midrule +Расход топлива, кг/ч & $G_{\text{Т}}$ & & & & & & & & & & \tabularnewline +\midrule +\newpage Исполнитель & Инженер по испытаниям & \multicolumn{3}{c|}{% +\begin{minipage}[t]{0.1\columnwidth}% +Начальник БТК ИК% +\end{minipage}} & \multicolumn{4}{>{\centering}p{0.15\paperwidth}|}{% +\begin{minipage}[t]{0.15\columnwidth}% +Начальник участка ИД% +\end{minipage}} & \multicolumn{3}{c|}{% +\begin{minipage}[t]{0.15\columnwidth}% +Представитель заказчика% +\end{minipage}}\tabularnewline +\midrule + & & \multicolumn{3}{c|}{} & \multicolumn{4}{c|}{} & \multicolumn{3}{c|}{}\tabularnewline +\bottomrule +\end{longtable} +\par\end{flushleft} + +\begin{tabular}{|>{\raggedright}m{0.11\paperwidth}|>{\centering}m{0.04\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.09\paperwidth}|>{\centering}m{0.09\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.09\paperwidth}|} +\hline + \newpage +\multirow{2}{0.11\paperwidth}{\centering{}\linebreak{} + Режим работы двигателя} & & \multirow{2}{0.1\paperwidth}{\textbf{\centering{}}\linebreak{} + Мощность на выводном валу \textbf{N л.с.} } & \multicolumn{2}{c|}{Частота вращения ротора} & \multirow{2}{0.1\paperwidth}{\centering{}Температура газа +перед свободнойтурбиной не более \textbf{t$_{4}$},$\,^{\circ}\mbox{C}$} & \multirow{2}{0.09\paperwidth}{\centering{}Удельный расход +топлива не более \textbf{C$_{R\text{ пр}}$}г/л.с.ч.}\tabularnewline +\hline + & & & турбо-компрессора не более \textbf{n$_{\text{тк пр}}$}, \% & свободной турбины \textbf{n$_{\lyxmathsym{ст}}$}, \% & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{{*}2,5-минутной мощности} & ТУ & & 101,0 & 98$\pm$0,5 & 805 & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{30-минутной мощности} & ТУ & 3000 & 98,5 & 98$\pm$0,5 & 795 & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{ВЗЛ} & ТУ & 2800 & 97,5 & 98$\pm$0,5 & 775 & 205\tabularnewline +\hline +\newpage & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{МП} & ТУ & 2100 & 94,0 & 98$\pm$0,5 & 705 & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{МКр} & ТУ & 1900 & 93,0 & 98$\pm$0,5 & 680 & 221\tabularnewline +\hline \newpage + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{{*} ЗМГ} & ТУ & - & - & 80$\pm$0,5 & - & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\end{tabular} + +\begin{flushleft} +{*} - измеренные параметры\hspace*{1in}\textbf{\textsc{Настроечные +параметры}} +\par\end{flushleft} + +\begin{flushleft} +Drossel55.Table2\foreignlanguage{english}{}% +\begin{tabular}{|>{\centering}m{0.15\paperwidth}|>{\centering}m{0.15\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\raggedright}m{0.19\paperwidth}|} +\hline +\hline\newpage +\multicolumn{2}{|c|}{ 1 } & 2 & 3 & 4 \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.2\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина частоты вращения + +ротора турбокомпрессора, \%% +\end{minipage}} & \centering{}$n_{\text{тк\_мг}}0$ & МГ & \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.08\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина частоты вращения + +ротора турбокомпрессора, \%% +\end{minipage}} & \centering{}$n_{\text{тк\_взл}}0$ & <<Взлёт>> & \tabularnewline +\hline +\multicolumn{2}{|c|}{ % +\begin{minipage}[c]{0.45\columnwidth}% +Настроечная величина минимальной частоты вращения ротора турбокомпрессора, +\%% +\end{minipage}} & \centering{}$n_{\text{тк\_мин}}0$ & МГ & \tabularnewline +\hline\newpage +\multicolumn{2}{|c|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина перестройки частоты вращения ротора турбокомпрессора +при <<Разрешении РПМ>>,\%% +\end{minipage}} & \centering{}$\Delta n_{\text{тк\_взл}}0$ & <<Взлёт>> & \tabularnewline +\hline +\newpage\multicolumn{2}{|>{\centering}p{0.08\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина перестройки частоты вращения ротора турбокомпрессора +по команде <<Тренировочный режим>>, \%% +\end{minipage}} & \centering{}$\Delta n_{\text{тк\_тр}}0$ & <<Взлёт>> & \tabularnewline +\hline +\multicolumn{2}{|c|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Расходный коэффициент 1-го контура форсунок% +\end{minipage}} & \centering{}$\Psi_{(\mu F)}$ & - & \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.1\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Программный расход топлива в РС, кг/ч% +\end{minipage}} & \centering{}$G_{\text{т прог РС МГ}}$ & - & \tabularnewline +\hline +\multirow{2}{0.15\paperwidth}{Параметры измерителя крутящего +момента\foreignlanguage{english}{ } } & Начальное смещение, град & \centering{}$\phi_{\text{икм}}0$ & \multirow{2}{0.1\paperwidth}{\centering{}-} & \tabularnewline +\hline + & Коэффициент характеристики & \centering{}$K$ & & \tabularnewline +\hline +\end{tabular} +\par\end{flushleft} + +Расход масла, л/ч \rule[-1pt]{2cm}{0.4pt} (не более 0,2) + +\begin{flushleft} +\textbf{Зависимость между положением дозирующей иглы и расходом топлива +$G_{\text{т}}=f(\alpha_{\text{дк}})$} +\par\end{flushleft} + +\begin{flushleft} +Drossel55.Table3 +\par\end{flushleft} + +\begin{flushleft} +\begin{tabular}{|>{\centering}p{0.15\paperwidth}|>{\centering}p{0.1\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|} +\toprule +\multicolumn{2}{|c|}{Параметр} & \multicolumn{10}{c|}{Значение, полученное при испытании}\tabularnewline +\midrule +Наименование и единица измерения & Обозначение & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10\tabularnewline +\midrule + \newpage Положение дозирующей иглы, град & $(\alpha_{\text{дк}})$ & & & & & & & & & & \tabularnewline +\midrule +Расход топлива, кг/ч & $G_{\text{Т}}$ & & & & & & & & & & \tabularnewline +\midrule +\newpage Исполнитель & Инженер по испытаниям & \multicolumn{3}{c|}{% +\begin{minipage}[t]{0.1\columnwidth}% +Начальник БТК ИК% +\end{minipage}} & \multicolumn{4}{>{\centering}p{0.15\paperwidth}|}{% +\begin{minipage}[t]{0.15\columnwidth}% +Начальник участка ИД% +\end{minipage}} & \multicolumn{3}{c|}{% +\begin{minipage}[t]{0.15\columnwidth}% +Представитель заказчика% +\end{minipage}}\tabularnewline +\midrule + & & \multicolumn{3}{c|}{} & \multicolumn{4}{c|}{} & \multicolumn{3}{c|}{}\tabularnewline +\bottomrule +\end{tabular} +\par\end{flushleft} + + +\end{document} diff --git a/test/tex/ltable_rm1row.tex b/test/tex/ltable_rm1row.tex new file mode 100644 index 0000000..1c77930 --- /dev/null +++ b/test/tex/ltable_rm1row.tex @@ -0,0 +1,359 @@ +%% LyX 2.0.3 created this file. For more info, see http://www.lyx.org/. +%% Do not edit unless you really know what you are doing. +\documentclass[english,russian]{article} +\usepackage[T1]{fontenc} +\usepackage[utf8x]{inputenc} +\usepackage{geometry} +\geometry{verbose} +\usepackage{array} +\usepackage{longtable} +\usepackage{textcomp} +\usepackage{amstext} +\usepackage{graphicx} + +\makeatletter + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LyX specific LaTeX commands. +\DeclareRobustCommand{\cyrtext}{% + \fontencoding{T2A}\selectfont\def\encodingdefault{T2A}} +\DeclareRobustCommand{\textcyr}[1]{\leavevmode{\cyrtext #1}} +\AtBeginDocument{\DeclareFontEncoding{T2A}{}{}} + +\newcommand{\lyxmathsym}[1]{\ifmmode\begingroup\def\b@ld{bold} + \text{\ifx\math@version\b@ld\bfseries\fi#1}\endgroup\else#1\fi} + +%% Because html converters don't know tabularnewline +\providecommand{\tabularnewline}{\\} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands. +\usepackage{multirow} + + + +\usepackage{babel} + + + + + + +\usepackage{babel} + + + + + + +\usepackage{babel} + + + + + +\usepackage{babel} + + +\makeatother + +\usepackage{babel} +\begin{document} +\begin{flushright} +ф. 07-726А +\par\end{flushright} + +\begin{center} +\textbf{Формулярные данные по 06В.00.0100ВТУ} +\par\end{center} + +\begin{center} +двигателя ТВ7-117В №\rule[-1pt]{3.5cm}{0.4pt} Температура наружного +воздуха $t_{\text{н}}$, \rule[-1pt]{1cm}{0.4pt}, $\,^{\circ}\mbox{C}$ +\par\end{center} + +от\_\_\_\_\_\_\_\_\_\_ <<\rule[-1pt]{1.1cm}{0.4pt}>> \rule[-1pt]{2.5cm}{0.4pt} +20~~~~г.~~~~~~Давление наружного воздуха, $P_{\text{Н}}$\rule[-1pt]{1cm}{0.4pt} +мм. рт. ст. + +Drossel55.Table1 + +\begin{longtable}{|>{\raggedright}m{0.11\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.09\paperwidth}|>{\centering}m{0.09\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.09\paperwidth}|} +\hline + \newpage +\multirow{2}{0.11\paperwidth}{\centering{}\linebreak{} + Режим работы двигателя} & \multirow{2}{0.1\paperwidth}{\textbf{\centering{}}\linebreak{} + Мощность на выводном валу \textbf{N л.с.} } & \multicolumn{2}{c|}{Частота вращения ротора} & \multirow{2}{0.1\paperwidth}{\centering{}Температура газа +перед свободнойтурбиной не более \textbf{t$_{4}$},$\,^{\circ}\mbox{C}$} & \multirow{2}{0.09\paperwidth}{\centering{}Удельный расход +топлива не более \textbf{C$_{R\text{ пр}}$}г/л.с.ч.}\tabularnewline +\hline + & & турбо-компрессора не более \textbf{n$_{\text{тк пр}}$}, \% & свободной турбины \textbf{n$_{\lyxmathsym{ст}}$}, \% & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{{*}2,5-минутной мощности} & & 101,0 & 98$\pm$0,5 & 805 & -\tabularnewline +\hline + & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{30-минутной мощности} & 3000 & 98,5 & 98$\pm$0,5 & 795 & -\tabularnewline +\hline + & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{ВЗЛ} & 2800 & 97,5 & 98$\pm$0,5 & 775 & 205\tabularnewline +\hline +\newpage & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{МП} & 2100 & 94,0 & 98$\pm$0,5 & 705 & -\tabularnewline +\hline + & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{МКр} & 1900 & 93,0 & 98$\pm$0,5 & 680 & 221\tabularnewline +\hline \newpage + & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{{*} ЗМГ} & - & - & 80$\pm$0,5 & - & -\tabularnewline +\hline + & & & & & \tabularnewline +\hline +\end{longtable} + +\begin{flushleft} +{*} - измеренные параметры\hspace*{1in}\textbf{\textsc{Настроечные +параметры}} +\par\end{flushleft} + +\begin{flushleft} +Drossel55.Table2\foreignlanguage{english}{}% +\begin{longtable}{|>{\centering}m{0.15\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\raggedright}m{0.19\paperwidth}|} +\hline +\multicolumn{1}{|>{\centering}m{0.2\paperwidth}|}{\centering{}\textbf{Параметр} } & \multirow{2}{0.1\paperwidth}{\textbf{\centering{}Обозначение}} & \multirow{2}{0.1\paperwidth}{\textbf{\centering{}Режим}} & \multirow{2}{0.1\paperwidth}{\textbf{\centering{}Значение, +полученное при испытании}} \tabularnewline +\hline +\multicolumn{1}{|>{\centering}p{0.2\paperwidth}|}{ \textbf{Наименование и единица измерения} } & & & \tabularnewline +\endhead +\hline\newpage +\multicolumn{1}{|c|}{ 1 } & 2 & 3 & 4 \tabularnewline +\hline +\multicolumn{1}{|>{\centering}p{0.2\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина частоты вращения + +ротора турбокомпрессора, \%% +\end{minipage}} & \centering{}$n_{\text{тк\_мг}}0$ & МГ & \tabularnewline +\hline +\multicolumn{1}{|>{\centering}p{0.08\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина частоты вращения + +ротора турбокомпрессора, \%% +\end{minipage}} & \centering{}$n_{\text{тк\_взл}}0$ & <<Взлёт>> & \tabularnewline +\hline +\multicolumn{1}{|c|}{ % +\begin{minipage}[c]{0.45\columnwidth}% +Настроечная величина минимальной частоты вращения ротора турбокомпрессора, +\%% +\end{minipage}} & \centering{}$n_{\text{тк\_мин}}0$ & МГ & \tabularnewline +\hline\newpage +\multicolumn{1}{|c|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина перестройки частоты вращения ротора турбокомпрессора +при <<Разрешении РПМ>>,\%% +\end{minipage}} & \centering{}$\Delta n_{\text{тк\_взл}}0$ & <<Взлёт>> & \tabularnewline +\hline +\newpage\multicolumn{1}{|>{\centering}p{0.08\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина перестройки частоты вращения ротора турбокомпрессора +по команде <<Тренировочный режим>>, \%% +\end{minipage}} & \centering{}$\Delta n_{\text{тк\_тр}}0$ & <<Взлёт>> & \tabularnewline +\hline +\multicolumn{1}{|c|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Расходный коэффициент 1-го контура форсунок% +\end{minipage}} & \centering{}$\Psi_{(\mu F)}$ & - & \tabularnewline +\hline +\multicolumn{1}{|>{\centering}p{0.1\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Программный расход топлива в РС, кг/ч% +\end{minipage}} & \centering{}$G_{\text{т прог РС МГ}}$ & - & \tabularnewline +\hline +\multirow{2}{0.15\paperwidth}{Параметры измерителя крутящего +момента\foreignlanguage{english}{ } } & \centering{}$\phi_{\text{икм}}0$ & \multirow{2}{0.1\paperwidth}{\centering{}-} & \tabularnewline +\hline + & \centering{}$K$ & & \tabularnewline +\hline +\end{longtable} +\par\end{flushleft} + +Расход масла, л/ч \rule[-1pt]{2cm}{0.4pt} (не более 0,2) + +\begin{flushleft} +\textbf{Зависимость между положением дозирующей иглы и расходом топлива +$G_{\text{т}}=f(\alpha_{\text{дк}})$} +\par\end{flushleft} + +\begin{flushleft} +Drossel55.Table3 +\par\end{flushleft} + +\begin{flushleft} +\begin{longtable}{|>{\centering}p{0.15\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|} +\toprule +\multicolumn{1}{|c|}{Параметр} & \multicolumn{10}{c|}{Значение, полученное при испытании}\tabularnewline +\midrule +Наименование и единица измерения & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10\tabularnewline +\midrule + \newpage Положение дозирующей иглы, град & & & & & & & & & & \tabularnewline +\midrule +Расход топлива, кг/ч & & & & & & & & & & \tabularnewline +\midrule +\newpage Исполнитель & \multicolumn{3}{c|}{% +\begin{minipage}[t]{0.1\columnwidth}% +Начальник БТК ИК% +\end{minipage}} & \multicolumn{4}{>{\centering}p{0.15\paperwidth}|}{% +\begin{minipage}[t]{0.15\columnwidth}% +Начальник участка ИД% +\end{minipage}} & \multicolumn{3}{c|}{% +\begin{minipage}[t]{0.15\columnwidth}% +Представитель заказчика% +\end{minipage}}\tabularnewline +\midrule + & \multicolumn{3}{c|}{} & \multicolumn{4}{c|}{} & \multicolumn{3}{c|}{}\tabularnewline +\bottomrule +\end{longtable} +\par\end{flushleft} + +\begin{tabular}{|>{\raggedright}m{0.11\paperwidth}|>{\centering}m{0.04\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.09\paperwidth}|>{\centering}m{0.09\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.09\paperwidth}|} +\hline + \newpage +\multirow{2}{0.11\paperwidth}{\centering{}\linebreak{} + Режим работы двигателя} & & \multirow{2}{0.1\paperwidth}{\textbf{\centering{}}\linebreak{} + Мощность на выводном валу \textbf{N л.с.} } & \multicolumn{2}{c|}{Частота вращения ротора} & \multirow{2}{0.1\paperwidth}{\centering{}Температура газа +перед свободнойтурбиной не более \textbf{t$_{4}$},$\,^{\circ}\mbox{C}$} & \multirow{2}{0.09\paperwidth}{\centering{}Удельный расход +топлива не более \textbf{C$_{R\text{ пр}}$}г/л.с.ч.}\tabularnewline +\hline + & & & турбо-компрессора не более \textbf{n$_{\text{тк пр}}$}, \% & свободной турбины \textbf{n$_{\lyxmathsym{ст}}$}, \% & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{{*}2,5-минутной мощности} & ТУ & & 101,0 & 98$\pm$0,5 & 805 & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{30-минутной мощности} & ТУ & 3000 & 98,5 & 98$\pm$0,5 & 795 & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{ВЗЛ} & ТУ & 2800 & 97,5 & 98$\pm$0,5 & 775 & 205\tabularnewline +\hline +\newpage & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{МП} & ТУ & 2100 & 94,0 & 98$\pm$0,5 & 705 & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{МКр} & ТУ & 1900 & 93,0 & 98$\pm$0,5 & 680 & 221\tabularnewline +\hline \newpage + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{{*} ЗМГ} & ТУ & - & - & 80$\pm$0,5 & - & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\end{tabular} + +\begin{flushleft} +{*} - измеренные параметры\hspace*{1in}\textbf{\textsc{Настроечные +параметры}} +\par\end{flushleft} + +\begin{flushleft} +Drossel55.Table2\foreignlanguage{english}{}% +\begin{tabular}{|>{\centering}m{0.15\paperwidth}|>{\centering}m{0.15\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\raggedright}m{0.19\paperwidth}|} +\hline +\hline\newpage +\multicolumn{2}{|c|}{ 1 } & 2 & 3 & 4 \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.2\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина частоты вращения + +ротора турбокомпрессора, \%% +\end{minipage}} & \centering{}$n_{\text{тк\_мг}}0$ & МГ & \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.08\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина частоты вращения + +ротора турбокомпрессора, \%% +\end{minipage}} & \centering{}$n_{\text{тк\_взл}}0$ & <<Взлёт>> & \tabularnewline +\hline +\multicolumn{2}{|c|}{ % +\begin{minipage}[c]{0.45\columnwidth}% +Настроечная величина минимальной частоты вращения ротора турбокомпрессора, +\%% +\end{minipage}} & \centering{}$n_{\text{тк\_мин}}0$ & МГ & \tabularnewline +\hline\newpage +\multicolumn{2}{|c|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина перестройки частоты вращения ротора турбокомпрессора +при <<Разрешении РПМ>>,\%% +\end{minipage}} & \centering{}$\Delta n_{\text{тк\_взл}}0$ & <<Взлёт>> & \tabularnewline +\hline +\newpage\multicolumn{2}{|>{\centering}p{0.08\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина перестройки частоты вращения ротора турбокомпрессора +по команде <<Тренировочный режим>>, \%% +\end{minipage}} & \centering{}$\Delta n_{\text{тк\_тр}}0$ & <<Взлёт>> & \tabularnewline +\hline +\multicolumn{2}{|c|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Расходный коэффициент 1-го контура форсунок% +\end{minipage}} & \centering{}$\Psi_{(\mu F)}$ & - & \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.1\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Программный расход топлива в РС, кг/ч% +\end{minipage}} & \centering{}$G_{\text{т прог РС МГ}}$ & - & \tabularnewline +\hline +\multirow{2}{0.15\paperwidth}{Параметры измерителя крутящего +момента\foreignlanguage{english}{ } } & Начальное смещение, град & \centering{}$\phi_{\text{икм}}0$ & \multirow{2}{0.1\paperwidth}{\centering{}-} & \tabularnewline +\hline + & Коэффициент характеристики & \centering{}$K$ & & \tabularnewline +\hline +\end{tabular} +\par\end{flushleft} + +Расход масла, л/ч \rule[-1pt]{2cm}{0.4pt} (не более 0,2) + +\begin{flushleft} +\textbf{Зависимость между положением дозирующей иглы и расходом топлива +$G_{\text{т}}=f(\alpha_{\text{дк}})$} +\par\end{flushleft} + +\begin{flushleft} +Drossel55.Table3 +\par\end{flushleft} + +\begin{flushleft} +\begin{tabular}{|>{\centering}p{0.15\paperwidth}|>{\centering}p{0.1\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|} +\toprule +\multicolumn{2}{|c|}{Параметр} & \multicolumn{10}{c|}{Значение, полученное при испытании}\tabularnewline +\midrule +Наименование и единица измерения & Обозначение & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10\tabularnewline +\midrule + \newpage Положение дозирующей иглы, град & $(\alpha_{\text{дк}})$ & & & & & & & & & & \tabularnewline +\midrule +Расход топлива, кг/ч & $G_{\text{Т}}$ & & & & & & & & & & \tabularnewline +\midrule +\newpage Исполнитель & Инженер по испытаниям & \multicolumn{3}{c|}{% +\begin{minipage}[t]{0.1\columnwidth}% +Начальник БТК ИК% +\end{minipage}} & \multicolumn{4}{>{\centering}p{0.15\paperwidth}|}{% +\begin{minipage}[t]{0.15\columnwidth}% +Начальник участка ИД% +\end{minipage}} & \multicolumn{3}{c|}{% +\begin{minipage}[t]{0.15\columnwidth}% +Представитель заказчика% +\end{minipage}}\tabularnewline +\midrule + & & \multicolumn{3}{c|}{} & \multicolumn{4}{c|}{} & \multicolumn{3}{c|}{}\tabularnewline +\bottomrule +\end{tabular} +\par\end{flushleft} + + +\end{document} diff --git a/test/tex/ltable_rm_last_row.tex b/test/tex/ltable_rm_last_row.tex new file mode 100644 index 0000000..f6f0a86 --- /dev/null +++ b/test/tex/ltable_rm_last_row.tex @@ -0,0 +1,357 @@ +%% LyX 2.0.3 created this file. For more info, see http://www.lyx.org/. +%% Do not edit unless you really know what you are doing. +\documentclass[english,russian]{article} +\usepackage[T1]{fontenc} +\usepackage[utf8x]{inputenc} +\usepackage{geometry} +\geometry{verbose} +\usepackage{array} +\usepackage{longtable} +\usepackage{textcomp} +\usepackage{amstext} +\usepackage{graphicx} + +\makeatletter + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LyX specific LaTeX commands. +\DeclareRobustCommand{\cyrtext}{% + \fontencoding{T2A}\selectfont\def\encodingdefault{T2A}} +\DeclareRobustCommand{\textcyr}[1]{\leavevmode{\cyrtext #1}} +\AtBeginDocument{\DeclareFontEncoding{T2A}{}{}} + +\newcommand{\lyxmathsym}[1]{\ifmmode\begingroup\def\b@ld{bold} + \text{\ifx\math@version\b@ld\bfseries\fi#1}\endgroup\else#1\fi} + +%% Because html converters don't know tabularnewline +\providecommand{\tabularnewline}{\\} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands. +\usepackage{multirow} + + + +\usepackage{babel} + + + + + + +\usepackage{babel} + + + + + + +\usepackage{babel} + + + + + +\usepackage{babel} + + +\makeatother + +\usepackage{babel} +\begin{document} +\begin{flushright} +ф. 07-726А +\par\end{flushright} + +\begin{center} +\textbf{Формулярные данные по 06В.00.0100ВТУ} +\par\end{center} + +\begin{center} +двигателя ТВ7-117В №\rule[-1pt]{3.5cm}{0.4pt} Температура наружного +воздуха $t_{\text{н}}$, \rule[-1pt]{1cm}{0.4pt}, $\,^{\circ}\mbox{C}$ +\par\end{center} + +от\_\_\_\_\_\_\_\_\_\_ <<\rule[-1pt]{1.1cm}{0.4pt}>> \rule[-1pt]{2.5cm}{0.4pt} +20~~~~г.~~~~~~Давление наружного воздуха, $P_{\text{Н}}$\rule[-1pt]{1cm}{0.4pt} +мм. рт. ст. + +Drossel55.Table1 + +\begin{longtable}{|>{\raggedright}m{0.11\paperwidth}|>{\centering}m{0.04\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.09\paperwidth}|>{\centering}m{0.09\paperwidth}|>{\centering}m{0.1\paperwidth}|} +\hline + \newpage +\multirow{2}{0.11\paperwidth}{\centering{}\linebreak{} + Режим работы двигателя} & & \multirow{2}{0.1\paperwidth}{\textbf{\centering{}}\linebreak{} + Мощность на выводном валу \textbf{N л.с.} } & \multicolumn{2}{c|}{Частота вращения ротора} & \multirow{2}{0.1\paperwidth}{\centering{}Температура газа +перед свободнойтурбиной не более \textbf{t$_{4}$},$\,^{\circ}\mbox{C}$} \tabularnewline +\hline + & & & турбо-компрессора не более \textbf{n$_{\text{тк пр}}$}, \% & свободной турбины \textbf{n$_{\lyxmathsym{ст}}$}, \% & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{{*}2,5-минутной мощности} & ТУ & & 101,0 & 98$\pm$0,5 & 805 \tabularnewline +\hline + & Факт & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{30-минутной мощности} & ТУ & 3000 & 98,5 & 98$\pm$0,5 & 795 \tabularnewline +\hline + & Факт & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{ВЗЛ} & ТУ & 2800 & 97,5 & 98$\pm$0,5 & 775 \tabularnewline +\hline +\newpage & Факт & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{МП} & ТУ & 2100 & 94,0 & 98$\pm$0,5 & 705 \tabularnewline +\hline + & Факт & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{МКр} & ТУ & 1900 & 93,0 & 98$\pm$0,5 & 680 \tabularnewline +\hline \newpage + & Факт & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{{*} ЗМГ} & ТУ & - & - & 80$\pm$0,5 & - \tabularnewline +\hline + & Факт & & & & \tabularnewline +\hline +\end{longtable} + +\begin{flushleft} +{*} - измеренные параметры\hspace*{1in}\textbf{\textsc{Настроечные +параметры}} +\par\end{flushleft} + +\begin{flushleft} +Drossel55.Table2\foreignlanguage{english}{}% +\begin{longtable}{|>{\centering}m{0.15\paperwidth}|>{\centering}m{0.15\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.1\paperwidth}|} +\hline +\multicolumn{2}{|>{\centering}m{0.2\paperwidth}|}{\centering{}\textbf{Параметр} } & \multirow{2}{0.1\paperwidth}{\textbf{\centering{}Обозначение}} & \multirow{2}{0.1\paperwidth}{\textbf{\centering{}Режим}} \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.2\paperwidth}|}{ \textbf{Наименование и единица измерения} } & & \tabularnewline +\endhead +\hline\newpage +\multicolumn{2}{|c|}{ 1 } & 2 & 3 \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.2\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина частоты вращения + +ротора турбокомпрессора, \%% +\end{minipage}} & \centering{}$n_{\text{тк\_мг}}0$ & МГ \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.08\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина частоты вращения + +ротора турбокомпрессора, \%% +\end{minipage}} & \centering{}$n_{\text{тк\_взл}}0$ & <<Взлёт>> \tabularnewline +\hline +\multicolumn{2}{|c|}{ % +\begin{minipage}[c]{0.45\columnwidth}% +Настроечная величина минимальной частоты вращения ротора турбокомпрессора, +\%% +\end{minipage}} & \centering{}$n_{\text{тк\_мин}}0$ & МГ \tabularnewline +\hline\newpage +\multicolumn{2}{|c|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина перестройки частоты вращения ротора турбокомпрессора +при <<Разрешении РПМ>>,\%% +\end{minipage}} & \centering{}$\Delta n_{\text{тк\_взл}}0$ & <<Взлёт>> \tabularnewline +\hline +\newpage\multicolumn{2}{|>{\centering}p{0.08\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина перестройки частоты вращения ротора турбокомпрессора +по команде <<Тренировочный режим>>, \%% +\end{minipage}} & \centering{}$\Delta n_{\text{тк\_тр}}0$ & <<Взлёт>> \tabularnewline +\hline +\multicolumn{2}{|c|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Расходный коэффициент 1-го контура форсунок% +\end{minipage}} & \centering{}$\Psi_{(\mu F)}$ & - \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.1\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Программный расход топлива в РС, кг/ч% +\end{minipage}} & \centering{}$G_{\text{т прог РС МГ}}$ & - \tabularnewline +\hline +\multirow{2}{0.15\paperwidth}{Параметры измерителя крутящего +момента\foreignlanguage{english}{ } } & Начальное смещение, град & \centering{}$\phi_{\text{икм}}0$ & \multirow{2}{0.1\paperwidth}{\centering{}-} \tabularnewline +\hline + & Коэффициент характеристики & \centering{}$K$ & \tabularnewline +\hline +\end{longtable} +\par\end{flushleft} + +Расход масла, л/ч \rule[-1pt]{2cm}{0.4pt} (не более 0,2) + +\begin{flushleft} +\textbf{Зависимость между положением дозирующей иглы и расходом топлива +$G_{\text{т}}=f(\alpha_{\text{дк}})$} +\par\end{flushleft} + +\begin{flushleft} +Drossel55.Table3 +\par\end{flushleft} + +\begin{flushleft} +\begin{longtable}{|>{\centering}p{0.15\paperwidth}|>{\centering}p{0.1\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|} +\toprule +\multicolumn{2}{|c|}{Параметр} & \multicolumn{9}{c|}{Значение, полученное при испытании}\tabularnewline +\midrule +Наименование и единица измерения & Обозначение & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 \tabularnewline +\midrule + \newpage Положение дозирующей иглы, град & $(\alpha_{\text{дк}})$ & & & & & & & & & \tabularnewline +\midrule +Расход топлива, кг/ч & $G_{\text{Т}}$ & & & & & & & & & \tabularnewline +\midrule +\newpage Исполнитель & Инженер по испытаниям & \multicolumn{3}{c|}{% +\begin{minipage}[t]{0.1\columnwidth}% +Начальник БТК ИК% +\end{minipage}} & \multicolumn{4}{>{\centering}p{0.15\paperwidth}|}{% +\begin{minipage}[t]{0.15\columnwidth}% +Начальник участка ИД% +\end{minipage}} & \multicolumn{2}{c|}{% +\begin{minipage}[t]{0.15\columnwidth}% +Представитель заказчика% +\end{minipage}}\tabularnewline +\midrule + & & \multicolumn{3}{c|}{} & \multicolumn{4}{c|}{} & \multicolumn{2}{c|}{}\tabularnewline +\bottomrule +\end{longtable} +\par\end{flushleft} + +\begin{tabular}{|>{\raggedright}m{0.11\paperwidth}|>{\centering}m{0.04\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.09\paperwidth}|>{\centering}m{0.09\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.09\paperwidth}|} +\hline + \newpage +\multirow{2}{0.11\paperwidth}{\centering{}\linebreak{} + Режим работы двигателя} & & \multirow{2}{0.1\paperwidth}{\textbf{\centering{}}\linebreak{} + Мощность на выводном валу \textbf{N л.с.} } & \multicolumn{2}{c|}{Частота вращения ротора} & \multirow{2}{0.1\paperwidth}{\centering{}Температура газа +перед свободнойтурбиной не более \textbf{t$_{4}$},$\,^{\circ}\mbox{C}$} & \multirow{2}{0.09\paperwidth}{\centering{}Удельный расход +топлива не более \textbf{C$_{R\text{ пр}}$}г/л.с.ч.}\tabularnewline +\hline + & & & турбо-компрессора не более \textbf{n$_{\text{тк пр}}$}, \% & свободной турбины \textbf{n$_{\lyxmathsym{ст}}$}, \% & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{{*}2,5-минутной мощности} & ТУ & & 101,0 & 98$\pm$0,5 & 805 & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{30-минутной мощности} & ТУ & 3000 & 98,5 & 98$\pm$0,5 & 795 & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{ВЗЛ} & ТУ & 2800 & 97,5 & 98$\pm$0,5 & 775 & 205\tabularnewline +\hline +\newpage & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{МП} & ТУ & 2100 & 94,0 & 98$\pm$0,5 & 705 & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{МКр} & ТУ & 1900 & 93,0 & 98$\pm$0,5 & 680 & 221\tabularnewline +\hline \newpage + & Факт & & & & & \tabularnewline +\hline +\multirow{2}{0.11\paperwidth}{{*} ЗМГ} & ТУ & - & - & 80$\pm$0,5 & - & -\tabularnewline +\hline + & Факт & & & & & \tabularnewline +\hline +\end{tabular} + +\begin{flushleft} +{*} - измеренные параметры\hspace*{1in}\textbf{\textsc{Настроечные +параметры}} +\par\end{flushleft} + +\begin{flushleft} +Drossel55.Table2\foreignlanguage{english}{}% +\begin{tabular}{|>{\centering}m{0.15\paperwidth}|>{\centering}m{0.15\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\centering}m{0.1\paperwidth}|>{\raggedright}m{0.19\paperwidth}|} +\hline +\hline\newpage +\multicolumn{2}{|c|}{ 1 } & 2 & 3 & 4 \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.2\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина частоты вращения + +ротора турбокомпрессора, \%% +\end{minipage}} & \centering{}$n_{\text{тк\_мг}}0$ & МГ & \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.08\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина частоты вращения + +ротора турбокомпрессора, \%% +\end{minipage}} & \centering{}$n_{\text{тк\_взл}}0$ & <<Взлёт>> & \tabularnewline +\hline +\multicolumn{2}{|c|}{ % +\begin{minipage}[c]{0.45\columnwidth}% +Настроечная величина минимальной частоты вращения ротора турбокомпрессора, +\%% +\end{minipage}} & \centering{}$n_{\text{тк\_мин}}0$ & МГ & \tabularnewline +\hline\newpage +\multicolumn{2}{|c|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина перестройки частоты вращения ротора турбокомпрессора +при <<Разрешении РПМ>>,\%% +\end{minipage}} & \centering{}$\Delta n_{\text{тк\_взл}}0$ & <<Взлёт>> & \tabularnewline +\hline +\newpage\multicolumn{2}{|>{\centering}p{0.08\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Настроечная величина перестройки частоты вращения ротора турбокомпрессора +по команде <<Тренировочный режим>>, \%% +\end{minipage}} & \centering{}$\Delta n_{\text{тк\_тр}}0$ & <<Взлёт>> & \tabularnewline +\hline +\multicolumn{2}{|c|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Расходный коэффициент 1-го контура форсунок% +\end{minipage}} & \centering{}$\Psi_{(\mu F)}$ & - & \tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.1\paperwidth}|}{ % +\begin{minipage}[t]{0.45\columnwidth}% +Программный расход топлива в РС, кг/ч% +\end{minipage}} & \centering{}$G_{\text{т прог РС МГ}}$ & - & \tabularnewline +\hline +\multirow{2}{0.15\paperwidth}{Параметры измерителя крутящего +момента\foreignlanguage{english}{ } } & Начальное смещение, град & \centering{}$\phi_{\text{икм}}0$ & \multirow{2}{0.1\paperwidth}{\centering{}-} & \tabularnewline +\hline + & Коэффициент характеристики & \centering{}$K$ & & \tabularnewline +\hline +\end{tabular} +\par\end{flushleft} + +Расход масла, л/ч \rule[-1pt]{2cm}{0.4pt} (не более 0,2) + +\begin{flushleft} +\textbf{Зависимость между положением дозирующей иглы и расходом топлива +$G_{\text{т}}=f(\alpha_{\text{дк}})$} +\par\end{flushleft} + +\begin{flushleft} +Drossel55.Table3 +\par\end{flushleft} + +\begin{flushleft} +\begin{tabular}{|>{\centering}p{0.15\paperwidth}|>{\centering}p{0.1\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|>{\centering}p{0.03\paperwidth}|} +\toprule +\multicolumn{2}{|c|}{Параметр} & \multicolumn{10}{c|}{Значение, полученное при испытании}\tabularnewline +\midrule +Наименование и единица измерения & Обозначение & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10\tabularnewline +\midrule + \newpage Положение дозирующей иглы, град & $(\alpha_{\text{дк}})$ & & & & & & & & & & \tabularnewline +\midrule +Расход топлива, кг/ч & $G_{\text{Т}}$ & & & & & & & & & & \tabularnewline +\midrule +\newpage Исполнитель & Инженер по испытаниям & \multicolumn{3}{c|}{% +\begin{minipage}[t]{0.1\columnwidth}% +Начальник БТК ИК% +\end{minipage}} & \multicolumn{4}{>{\centering}p{0.15\paperwidth}|}{% +\begin{minipage}[t]{0.15\columnwidth}% +Начальник участка ИД% +\end{minipage}} & \multicolumn{3}{c|}{% +\begin{minipage}[t]{0.15\columnwidth}% +Представитель заказчика% +\end{minipage}}\tabularnewline +\midrule + & & \multicolumn{3}{c|}{} & \multicolumn{4}{c|}{} & \multicolumn{3}{c|}{}\tabularnewline +\bottomrule +\end{tabular} +\par\end{flushleft} + + +\end{document} diff --git a/test/tex/ltable_square_arg.lyx b/test/tex/ltable_square_arg.lyx new file mode 100644 index 0000000..a65220c --- /dev/null +++ b/test/tex/ltable_square_arg.lyx @@ -0,0 +1,126 @@ +#LyX 2.0 created this file. For more info see http://www.lyx.org/ +\lyxformat 413 +\begin_document +\begin_header +\textclass article +\use_default_options true +\maintain_unincluded_children false +\language english +\language_package default +\inputencoding auto +\fontencoding global +\font_roman default +\font_sans default +\font_typewriter default +\font_default_family default +\use_non_tex_fonts false +\font_sc false +\font_osf false +\font_sf_scale 100 +\font_tt_scale 100 + +\graphics default +\default_output_format default +\output_sync 0 +\bibtex_command default +\index_command default +\paperfontsize default +\use_hyperref false +\papersize default +\use_geometry false +\use_amsmath 1 +\use_esint 1 +\use_mhchem 1 +\use_mathdots 1 +\cite_engine basic +\use_bibtopic false +\use_indices false +\paperorientation portrait +\suppress_date false +\use_refstyle 1 +\index Index +\shortcut idx +\color #008000 +\end_index +\secnumdepth 3 +\tocdepth 3 +\paragraph_separation indent +\paragraph_indentation default +\quotes_language english +\papercolumns 1 +\papersides 1 +\paperpagestyle default +\tracking_changes false +\output_changes false +\html_math_output 0 +\html_css_as_file 0 +\html_be_strict false +\end_header + +\begin_body + +\begin_layout Standard +\begin_inset Tabular + + + + + +\begin_inset Text + +\begin_layout Plain Layout +Center +\end_layout + +\end_inset + + + + +\end_inset + + +\begin_inset Tabular + + + + + +\begin_inset Text + +\begin_layout Plain Layout +Left +\end_layout + +\end_inset + + + + +\end_inset + + +\begin_inset Tabular + + + + + +\begin_inset Text + +\begin_layout Plain Layout +Right +\end_layout + +\end_inset + + + + +\end_inset + + +\end_layout + +\end_body +\end_document diff --git a/test/tex/ltable_square_arg.tex b/test/tex/ltable_square_arg.tex new file mode 100644 index 0000000..55653f4 --- /dev/null +++ b/test/tex/ltable_square_arg.tex @@ -0,0 +1,27 @@ +%% LyX 2.0.3 created this file. For more info, see http://www.lyx.org/. +%% Do not edit unless you really know what you are doing. +\documentclass[english]{article} +\usepackage[T1]{fontenc} +\usepackage[latin9]{inputenc} +\usepackage{longtable} + +\makeatletter + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LyX specific LaTeX commands. +%% Because html converters don't know tabularnewline +\providecommand{\tabularnewline}{\\} + +\makeatother + +\usepackage{babel} +\begin{document} +\begin{longtable}[c]{c} +Center\tabularnewline +\end{longtable}% +\begin{longtable}[l]{c} +Left\tabularnewline +\end{longtable}% +\begin{longtable}[r]{c} +Right\tabularnewline +\end{longtable} +\end{document} diff --git a/test/tex/ltable_test.c b/test/tex/ltable_test.c new file mode 100644 index 0000000..2105a30 --- /dev/null +++ b/test/tex/ltable_test.c @@ -0,0 +1,177 @@ +///@cond INTERNAL +#include + +#include +#include + +#include + +#include "txr-texparser.h" + +int main (int argc, char *argv[]) +{ + GError *parse_error = NULL; + GError *error = NULL; + gchar *contents = NULL, + *generated = NULL, + *generated_etalon = NULL; + TXRGlob *doc = NULL; + TXRGlobIter it; + + setlocale (LC_ALL, ""); + +#if (!GLIB_CHECK_VERSION (2, 36, 0)) + g_type_init (); +#endif + + /* warning stub */ + g_assert (4 == argc || 5 == argc); + + /* load file contents + */ + if (!g_file_get_contents (argv[1], &contents, NULL, &error)) + { + g_printf ("Unable to read file: %s\n", error->message); + goto err; + } + g_assert ((contents == NULL && error != NULL) + || (contents != NULL && error == NULL)); + + if (!g_file_get_contents (argv[2], &generated_etalon, NULL, &error)) + { + g_printf ("Unable to read file: %s\n", error->message); + goto err; + } + g_assert ((generated_etalon == NULL && error != NULL) + || (generated_etalon != NULL && error == NULL)); + + /* parse TeX */ + doc = txr_parse (contents, &parse_error); + + if (parse_error) + { + g_print ("Error parsing TeX document: %s\n", parse_error->message); + goto err; + } + + else + { + puts ("TeX document successfully parsed\n"); + } + + /* Perform several col/row operations */ + g_printf ("Walk through all objects\n"); + for (it = txr_glob_first (doc); it; it = txr_glob_iter_next (it)) + { + g_printf ("%s\n", G_OBJECT_TYPE_NAME (*it)); + + if (!g_strcmp0 ("TXRLongtable", G_OBJECT_TYPE_NAME (*it))) + { + TXRLongtable *ltable = TXR_LONGTABLE (*it); + guint last_row = txr_col_params_length (txr_longtable_get_col_params (ltable)) - 1; + + if (!g_strcmp0 ("rm0row", argv[3])) + txr_longtable_remove_col (ltable, 0, TXR_TABLE_OP_LINE_STYLE_BORDER | TXR_TABLE_OP_LINE_STYLE_DBLLINES); + else if (!g_strcmp0 ("rm1row", argv[3])) + txr_longtable_remove_col (ltable, 1, TXR_TABLE_OP_LINE_STYLE_BORDER | TXR_TABLE_OP_LINE_STYLE_DBLLINES); + else if (!g_strcmp0 ("rm1000row", argv[3])) + txr_longtable_remove_col (ltable, 1000, TXR_TABLE_OP_LINE_STYLE_BORDER | TXR_TABLE_OP_LINE_STYLE_DBLLINES); + else if (!g_strcmp0 ("rm_last_row", argv[3])) + txr_longtable_remove_col (ltable, last_row, TXR_TABLE_OP_LINE_STYLE_BORDER | TXR_TABLE_OP_LINE_STYLE_DBLLINES); + else if (!g_strcmp0 ("clone_0_0", argv[3])) + txr_longtable_clone_col (ltable, 0, 0, TRUE, TXR_TABLE_OP_LINE_STYLE_BORDER | TXR_TABLE_OP_LINE_STYLE_DBLLINES); + else if (!g_strcmp0 ("clone_0_1", argv[3])) + txr_longtable_clone_col (ltable, 0, 1, FALSE, TXR_TABLE_OP_LINE_STYLE_BORDER | TXR_TABLE_OP_LINE_STYLE_DBLLINES); + else if (!g_strcmp0 ("clone_1_0", argv[3])) + txr_longtable_clone_col (ltable, 1, 0, TRUE, TXR_TABLE_OP_LINE_STYLE_BORDER | TXR_TABLE_OP_LINE_STYLE_DBLLINES); + else if (!g_strcmp0 ("clone_0_last", argv[3])) + txr_longtable_clone_col (ltable, 0, last_row, FALSE, TXR_TABLE_OP_LINE_STYLE_BORDER | TXR_TABLE_OP_LINE_STYLE_DBLLINES); + else if (!g_strcmp0 ("clone_last_0", argv[3])) + txr_longtable_clone_col (ltable, last_row, 0, TRUE, TXR_TABLE_OP_LINE_STYLE_BORDER | TXR_TABLE_OP_LINE_STYLE_DBLLINES); + else if (!g_strcmp0 ("clone_0_lastp1", argv[3])) + txr_longtable_clone_col (ltable, 0, last_row + 1, FALSE, TXR_TABLE_OP_LINE_STYLE_BORDER | TXR_TABLE_OP_LINE_STYLE_DBLLINES); + else if (!g_strcmp0 ("clone_lastp1_0", argv[3])) + txr_longtable_clone_col (ltable, last_row + 1, 0, TRUE, TXR_TABLE_OP_LINE_STYLE_BORDER | TXR_TABLE_OP_LINE_STYLE_DBLLINES); + else if (!g_strcmp0 ("clone_0_1000", argv[3])) + txr_longtable_clone_col (ltable, 0, 1000, FALSE, TXR_TABLE_OP_LINE_STYLE_BORDER | TXR_TABLE_OP_LINE_STYLE_DBLLINES); + else if (!g_strcmp0 ("clone_1000_0", argv[3])) + txr_longtable_clone_col (ltable, 1000, 0, TRUE, TXR_TABLE_OP_LINE_STYLE_BORDER | TXR_TABLE_OP_LINE_STYLE_DBLLINES); + else if (!g_strcmp0 ("append_row0", argv[3])) + { + TXRSubtable *table = txr_longtable_get_table (ltable); + + if (table) + { + TXRSubtableIter table_it; + TXRRow *row; + + table_it = txr_subtable_first (table); + if (table_it && NULL != (row = TXR_ROW (*table_it))) + txr_subtable_append (table, txr_row_clone (row), + TXR_TABLE_OP_LINE_STYLE_BORDER | TXR_TABLE_OP_LINE_STYLE_DBLLINES); + } + } + else + { + g_print ("Incorrect operation '%s' specified.\n", argv[3]); + goto err; + } + } + else if (!g_strcmp0 ("TXRTabular", G_OBJECT_TYPE_NAME (*it))) + { + TXRTabular *tabular = TXR_TABULAR (*it); + + if (!g_strcmp0 ("append_row0", argv[3])) + { + TXRSubtable *table = txr_tabular_get_table (tabular); + + if (table) + { + TXRSubtableIter table_it; + TXRRow *row; + + table_it = txr_subtable_first (table); + if (table_it && NULL != (row = TXR_ROW (*table_it))) + txr_subtable_append (table, txr_row_clone (row), + TXR_TABLE_OP_LINE_STYLE_BORDER | TXR_TABLE_OP_LINE_STYLE_DBLLINES); + } + } + } + } + g_printf ("end of objects\n\n"); + + + /* generate plain-TeX document */ + generated = txr_glob_gen (doc); + + if (!g_strcmp0 (generated_etalon, generated)) + g_printf ("Etalon and generated text are EQUAL ;-)\n"); + else + g_printf ("Etalon and generated text are NOT EQUAL ;-(\n"); + + g_printf ("--- Generated plain-TeX (generated) ---\n%s", generated); + + if (argv[4]) + g_file_set_contents (argv[4], generated, -1, NULL); + +err: +//end: + g_free (contents); + g_free (generated); + g_free (generated_etalon); + + if (parse_error) + { + g_error_free (parse_error); + } + + if (error) + { + g_error_free (error); + } + + txr_glob_unref (doc); + + return 0; +} +///@endcond diff --git a/test/tex/old_tex_parser.geany b/test/tex/old_tex_parser.geany new file mode 100644 index 0000000..1e8e15d --- /dev/null +++ b/test/tex/old_tex_parser.geany @@ -0,0 +1,47 @@ + +[indentation] +indent_width=8 +indent_type=1 +indent_hard_tab_width=8 +detect_indent=false +indent_mode=2 + +[project] +name=tex_parser +base_path=/home/kolan/dev/c/tex_parser/ +description= + +[long line marker] +long_line_behaviour=1 +long_line_column=72 + +[files] +current_page=3 +FILE_NAME_0=259;C;0;16;1;1;1;/home/kolan/dev/c/tex_parser/tex_parser_test.c;0 +FILE_NAME_1=3895;C;0;16;1;1;1;/home/kolan/dev/c/tex_parser/tex_parser.c;0 +FILE_NAME_2=3453;C;0;16;1;1;1;/home/kolan/dev/c/tex_parser/tex_parser.h;0 +FILE_NAME_3=579;C;0;16;1;1;1;/home/kolan/dev/c/tex_parser/tex_parser_tags.h;0 + +[build-menu] +NF_00_LB=_Сделать +NF_00_CM=make +NF_00_WD=%p +NF_01_LB=Сделать заданную _цель +NF_01_CM=make +NF_01_WD=%p +NF_02_LB=Сделать _объект +NF_02_CM=make %e.o +NF_02_WD=%p +CFT_00_LB=_Скомпилировать +CFT_00_CM=gcc -Wall -c "%f" +CFT_00_WD=%p +CFT_01_LB=_Сборка +CFT_01_CM=gcc -Wall -o "%e" "%f" -lhash +CFT_01_WD=%p +CFT_02_LB= +CFT_02_CM= +CFT_02_WD=%p +filetypes=C; +EX_00_LB=_Выполнить +EX_00_CM=./tex_parser_test ex1.tex +EX_00_WD=%p diff --git a/test/tex/table_in_table.tex b/test/tex/table_in_table.tex new file mode 100644 index 0000000..7959128 --- /dev/null +++ b/test/tex/table_in_table.tex @@ -0,0 +1,161 @@ +%% LyX 2.0.5 created this file. For more info, see http://www.lyx.org/. +%% Do not edit unless you really know what you are doing. +\documentclass{article} +\usepackage[T1]{fontenc} +\usepackage[latin9]{inputenc} +\usepackage{longtable} + +\makeatletter + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LyX specific LaTeX commands. +%% Because html converters don't know tabularnewline +\providecommand{\tabularnewline}{\\} + +\makeatother + +\begin{document} +\begin{longtable}{|c|c|c|c|c|} +\caption{} +\tabularnewline +\caption{} +\tabularnewline +\endfirsthead +\caption{} +\tabularnewline +\endhead +\caption{} +\tabularnewline +\endfoot +\caption{} +\tabularnewline +\endlastfoot +\hline + & & & & \tabularnewline +\hline +\hline + & & % +\begin{tabular}{|c|c|c|c|} +\hline + & & & \tabularnewline +\hline +\hline + & & & \tabularnewline +\hline + & & & \tabularnewline +\hline + & & & \tabularnewline +\hline + & & & \tabularnewline +\hline +\end{tabular} & & \tabularnewline +\hline + & & & & \tabularnewline +\hline + & & & & \tabularnewline +\hline +\end{longtable} + +\begin{tabular}{|c|c|c|c|c|} +\hline + & & & & \tabularnewline +\hline +\hline + & & & & \tabularnewline +\hline + & & % +\begin{tabular}{|c|c|c|c|} +\hline + & & & \tabularnewline +\hline +\hline + & & & \tabularnewline +\hline + & & & \tabularnewline +\hline + & & & \tabularnewline +\hline +\end{tabular} & & \tabularnewline +\hline + & & & & \tabularnewline +\hline + & & & & \tabularnewline +\hline + & & & & \tabularnewline +\hline +\end{tabular} + +\begin{tabular}{|c|c|c|c|c|} +\hline + & & & & \tabularnewline +\hline +\hline + & & & & \tabularnewline +\hline + & & % +\begin{longtable}{|c|c|c|c|} +\hline + & & & \tabularnewline +\hline +\hline + & & & \tabularnewline +\hline + & & & \tabularnewline +\hline + & & & \tabularnewline +\hline +\end{longtable} & & \tabularnewline +\hline + & & & & \tabularnewline +\hline + & & & & \tabularnewline +\hline + & & & & \tabularnewline +\hline +\end{tabular} + +\begin{longtable}{|c|c|c|c|c|} +\caption{} +\tabularnewline +\caption{} +\tabularnewline +\endfirsthead +\caption{} +\tabularnewline +\endhead +\caption{} +\tabularnewline +\endfoot +\caption{} +\tabularnewline +\endlastfoot +\hline + & & & & \tabularnewline +\hline +\hline + & & % +\begin{tabular}{|c|c|c|c|} +\hline + & & & \tabularnewline +\hline +\hline + & & & \tabularnewline +\hline + & & & \tabularnewline +\hline + & & & \tabularnewline +\hline + & & & \tabularnewline +\hline +\end{tabular} & & \tabularnewline +\hline + & & & & \tabularnewline +\hline + & & & & \tabularnewline +\hline +\end{longtable} + +\begin{tabular}{|c|c|c|c|c|} +\begin{tabular}{|c|c|c|c|}intext\tabularnewline\end{tabular}\tabularnewline +outtext +\end{tabular} +\end{document} diff --git a/test/tex/table_rows.etalon.tex b/test/tex/table_rows.etalon.tex new file mode 100644 index 0000000..dd4fd18 --- /dev/null +++ b/test/tex/table_rows.etalon.tex @@ -0,0 +1,55 @@ +%% LyX 2.0.5 created this file. For more info, see http://www.lyx.org/. +%% Do not edit unless you really know what you are doing. +\documentclass{article} +\usepackage[T1]{fontenc} +\usepackage[latin9]{inputenc} +\usepackage{longtable} + +\makeatletter + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LyX specific LaTeX commands. +%% Because html converters don't know tabularnewline +\providecommand{\tabularnewline}{\\} + +\makeatother + +\begin{document} +\begin{longtable}{ccccc} + ldskjf & sdlf & sdfl ja & dspfaj & sdlfj \tabularnewline + ldskjf & sdlf & sdfl ja & dspfaj & sdlfj \tabularnewline +\end{longtable} + +fdsa + +sdf + +s + +\begin{tabular}{ccccc} + ldskfj & sdfjap & dslkfj & sdlaf;j & afksjd \tabularnewline + ldskfj & sdfjap & dslkfj & sdlaf;j & afksjd \tabularnewline +\end{tabular} + +\begin{longtable}{ccccc} +\hline + ldskjf & sdlf & sdfl ja & dspfaj & sdlfj \tabularnewline +\hline + ldskjf & sdlf & sdfl ja & dspfaj & sdlfj \tabularnewline +\hline +\end{longtable} + +fdsa + +sdf + +s + +\begin{tabular}{ccccc} +\hline + ldskfj & sdfjap & dslkfj & sdlaf;j & afksjd \tabularnewline +\hline + ldskfj & sdfjap & dslkfj & sdlaf;j & afksjd \tabularnewline +\hline +\end{tabular} + +\end{document} diff --git a/test/tex/table_rows.tex b/test/tex/table_rows.tex new file mode 100644 index 0000000..d29770b --- /dev/null +++ b/test/tex/table_rows.tex @@ -0,0 +1,49 @@ +%% LyX 2.0.5 created this file. For more info, see http://www.lyx.org/. +%% Do not edit unless you really know what you are doing. +\documentclass{article} +\usepackage[T1]{fontenc} +\usepackage[latin9]{inputenc} +\usepackage{longtable} + +\makeatletter + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LyX specific LaTeX commands. +%% Because html converters don't know tabularnewline +\providecommand{\tabularnewline}{\\} + +\makeatother + +\begin{document} +\begin{longtable}{ccccc} + ldskjf & sdlf & sdfl ja & dspfaj & sdlfj \tabularnewline +\end{longtable} + +fdsa + +sdf + +s + +\begin{tabular}{ccccc} + ldskfj & sdfjap & dslkfj & sdlaf;j & afksjd \tabularnewline +\end{tabular} + +\begin{longtable}{ccccc} +\hline + ldskjf & sdlf & sdfl ja & dspfaj & sdlfj \tabularnewline +\hline +\end{longtable} + +fdsa + +sdf + +s + +\begin{tabular}{ccccc} +\hline + ldskfj & sdfjap & dslkfj & sdlaf;j & afksjd \tabularnewline +\hline +\end{tabular} + +\end{document} diff --git a/test/tex/throttle.lyx b/test/tex/throttle.lyx new file mode 100644 index 0000000..b7ef81c --- /dev/null +++ b/test/tex/throttle.lyx @@ -0,0 +1,4609 @@ +#LyX file created by tex2lyx 2.0.3 +\lyxformat 413 +\begin_document +\begin_header +\textclass article +\begin_preamble +\usepackage{multirow} + + + +\usepackage{babel} + +\end_preamble +\use_default_options false +\language russian +\language_package default +\inputencoding utf8x +\fontencoding T1 +\font_roman default +\font_sans default +\font_typewriter default +\font_default_family default +\font_sc false +\font_osf false +\font_sf_scale 100 +\font_tt_scale 100 +\graphics default +\paperfontsize default +\spacing single +\use_hyperref 0 +\papersize default +\use_geometry true +\use_amsmath 1 +\use_esint 1 +\use_mhchem 0 +\use_mathdots 0 +\cite_engine basic +\use_bibtopic false +\use_indices false +\paperorientation portrait +\suppress_date false +\use_refstyle 0 +\secnumdepth 3 +\tocdepth 3 +\paragraph_separation indent +\paragraph_indentation default +\quotes_language french +\papercolumns 1 +\papersides 1 +\paperpagestyle default +\tracking_changes false +\output_changes false +\html_math_output 0 +\html_css_as_file 0 +\html_be_strict false +\end_header + +\begin_body + +\begin_layout Standard + +DrosselTable1 +\end_layout + +\begin_layout Standard + + +\begin_inset Tabular + + + + + + + + + + + + +\begin_inset Text + +\begin_layout Standard + +Сводный протокол результатов испытания двигателя ТВ7-117В № +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + + + +\begin_inset Text + +\begin_layout Standard + +Стенд №18 +\begin_inset space ~ + +\end_inset + + +\begin_inset space ~ + +\end_inset + + ИУД СИК +\begin_inset space ~ + +\end_inset + + Дата: +\begin_inset space ~ + +\end_inset + + +\begin_inset space ~ + +\end_inset + + +\begin_inset space ~ + +\end_inset + + +\begin_inset space ~ + +\end_inset + + +\begin_inset space ~ + +\end_inset + + +\begin_inset space ~ + +\end_inset + + +\begin_inset space ~ + +\end_inset + + +\begin_inset space ~ + +\end_inset + + г. Время: +\begin_inset space ~ + +\end_inset + + +\begin_inset space ~ + +\end_inset + + +\begin_inset space ~ + +\end_inset + + +\begin_inset space ~ + +\end_inset + + +\begin_inset space ~ + +\end_inset + + +\begin_inset space ~ + +\end_inset + + +\begin_inset space ~ + +\end_inset + + +\begin_inset space ~ + +\end_inset + + +\begin_inset space ~ + +\end_inset + + Рн = +\begin_inset space ~ + +\end_inset + + +\begin_inset space ~ + +\end_inset + + +\begin_inset space ~ + +\end_inset + + мм рт ст +\begin_inset space ~ + +\end_inset + + +\begin_inset space ~ + +\end_inset + + tвх = +\begin_inset space ~ + +\end_inset + + +\begin_inset space ~ + +\end_inset + + +\begin_inset space ~ + +\end_inset + + +\begin_inset Formula $\,^{\circ}\mbox{C}$ +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + + + +\begin_inset Text + +\begin_layout Standard + +Характеристика +\begin_inset space ~ + +\end_inset + + +\begin_inset space ~ + +\end_inset + + +\begin_inset space ~ + +\end_inset + + +\begin_inset space ~ + +\end_inset + + +\begin_inset space ~ + +\end_inset + + +\begin_inset space ~ + +\end_inset + + +\begin_inset space ~ + +\end_inset + + Акт сдачи, контрольные точки +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + + + +\begin_inset Text + +\begin_layout Standard + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +centering +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{} +\end_layout + +\end_inset + +Составил +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +Инженер по испытаниям +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +Начальник БТК +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +Начальник участка УИД СИК +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +Представитель заказчика +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + + + +\begin_inset Text + +\begin_layout Standard + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +centering +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{} +\end_layout + +\end_inset + + +\shape italic +Подпись +\shape default + +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + + +\shape italic +Подпись +\shape default + +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +centering +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{} +\end_layout + +\end_inset + + +\shape italic +Подпись +\shape default + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +centering +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{} +\end_layout + +\end_inset + + +\shape italic +Подпись +\shape default + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + + +\shape italic +Подпись +\shape default + +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + + + +\begin_inset Text + +\begin_layout Standard + + +\shape italic +фамилия +\shape default + +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + + +\shape italic +фамилия +\shape default + +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + + +\shape italic +фамилия +\shape default + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + + +\shape italic +фамилия +\shape default + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + + +\shape italic +фамилия +\shape default + +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + + + +\begin_inset Text + +\begin_layout Standard + +Усреднённые значения по режимам +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + + + +\begin_inset Text + +\begin_layout Standard + +Параметр +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +Nепр +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +Ce +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +Gт пр +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +nтк пр +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +t*z ст пр +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +Пк +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Standard + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +centering +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{ +\end_layout + +\end_inset + +Режим +\begin_inset ERT +status collapsed + +\begin_layout Standard + +} +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + + + +\begin_inset Text + +\begin_layout Standard + +ЗМГ +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + + + +\begin_inset Text + +\begin_layout Standard + +0,4 мП +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + + + +\begin_inset Text + +\begin_layout Standard + +Ne1650 +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + + + +\begin_inset Text + +\begin_layout Standard + +Мкр +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + + + +\begin_inset Text + +\begin_layout Standard + +МП +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + + + +\begin_inset Text + +\begin_layout Standard + +Ne2500 +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + + + +\begin_inset Text + +\begin_layout Standard + +Взл +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + + + +\begin_inset Text + +\begin_layout Standard + +30-мин.м. +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + + + +\begin_inset Text + +\begin_layout Standard + +Замеренные параметры +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + + + +\begin_inset Text + +\begin_layout Standard + +Параметр +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +Ne +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +Ce +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +Gт +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +nтк +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +t*z ст +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +Пк +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Standard + +ЗМГ +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + + + +\begin_inset Text + +\begin_layout Standard + +2,5 мин.м. +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + + + +\begin_inset Text + +\begin_layout Standard + +Оценка режимов по ТУ +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + + + +\begin_inset Text + +\begin_layout Standard + +Параметр +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +multirow +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{ +\end_layout + +\end_inset + +2 +\begin_inset ERT +status collapsed + +\begin_layout Standard + +} +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{ +\end_layout + +\end_inset + +0.07 +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +paperwidth +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +} +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{ +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +centering +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{} +\end_layout + +\end_inset + +Neпр +\begin_inset ERT +status collapsed + +\begin_layout Standard + +} +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +multirow +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{ +\end_layout + +\end_inset + +2 +\begin_inset ERT +status collapsed + +\begin_layout Standard + +} +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{ +\end_layout + +\end_inset + +0.07 +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +paperwidth +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +} +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{ +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +centering +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{} +\end_layout + +\end_inset + +не более nтк пр,% +\begin_inset ERT +status collapsed + +\begin_layout Standard + +} +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +multirow +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{ +\end_layout + +\end_inset + +2 +\begin_inset ERT +status collapsed + +\begin_layout Standard + +} +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{ +\end_layout + +\end_inset + +0.07 +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +paperheight +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +} +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{ +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +centering +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{} +\end_layout + +\end_inset + +nст,% +\begin_inset ERT +status collapsed + +\begin_layout Standard + +} +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +multirow +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{ +\end_layout + +\end_inset + +2 +\begin_inset ERT +status collapsed + +\begin_layout Standard + +} +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{ +\end_layout + +\end_inset + +0.07 +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +paperheight +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +} +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{ +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +centering +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{} +\end_layout + +\end_inset + +не более t*z ст пр, +\begin_inset Formula $\,^{\circ}\mbox{C}$ +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +} +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +multirow +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{ +\end_layout + +\end_inset + +2 +\begin_inset ERT +status collapsed + +\begin_layout Standard + +} +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{ +\end_layout + +\end_inset + +0.07 +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +paperheight +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +} +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{ +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +centering +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{} +\end_layout + +\end_inset + +не более Ce г/л.с.ч. +\begin_inset ERT +status collapsed + +\begin_layout Standard + +} +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +multirow +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{ +\end_layout + +\end_inset + +2 +\begin_inset ERT +status collapsed + +\begin_layout Standard + +} +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{ +\end_layout + +\end_inset + +0.07 +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +paperheight +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +} +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{ +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +centering +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{} +\end_layout + +\end_inset + +Gт пр, кг/час +\begin_inset ERT +status collapsed + +\begin_layout Standard + +} +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Standard + +Режим +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +ТУ +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +1900 +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +93,0 +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +98,0 +\begin_inset Formula $\pm$ +\end_inset + +0,5 +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +680 +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +221 +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +- +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Standard + +Мкр +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +Факт +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +Откл. +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +ТУ +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +2100 +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +94,0 +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +98,0 +\begin_inset Formula $\pm$ +\end_inset + +0,5 +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +705 +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +- +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +- +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Standard + +МП +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +Факт +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +Откл. +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +ТУ +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +2800 +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +97,5 +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +98,0 +\begin_inset Formula $\pm$ +\end_inset + +0,5 +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +775 +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +205 +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +- +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Standard + +Взл +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +Факт +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +Откл. +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +ТУ +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +3000 +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +98,5 +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +98,0 +\begin_inset Formula $\pm$ +\end_inset + +0,5 +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +795 +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +- +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +- +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Standard + +30-мин.м. +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +Факт +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +Откл. +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + + + +\begin_inset Text + +\begin_layout Standard + +Замеренные параметры +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + + + +\begin_inset Text + +\begin_layout Standard + +Параметр +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +multirow +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{ +\end_layout + +\end_inset + +2 +\begin_inset ERT +status collapsed + +\begin_layout Standard + +} +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{ +\end_layout + +\end_inset + +0.07 +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +paperwidth +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +} +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{ +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +centering +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{} +\end_layout + +\end_inset + +Ne +\begin_inset ERT +status collapsed + +\begin_layout Standard + +} +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +multirow +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{ +\end_layout + +\end_inset + +2 +\begin_inset ERT +status collapsed + +\begin_layout Standard + +} +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{ +\end_layout + +\end_inset + +0.07 +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +paperwidth +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +} +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{ +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +centering +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{} +\end_layout + +\end_inset + +не более nтк,% +\begin_inset ERT +status collapsed + +\begin_layout Standard + +} +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +multirow +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{ +\end_layout + +\end_inset + +2 +\begin_inset ERT +status collapsed + +\begin_layout Standard + +} +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{ +\end_layout + +\end_inset + +0.07 +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +paperheight +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +} +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{ +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +centering +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{} +\end_layout + +\end_inset + +nст,% +\begin_inset ERT +status collapsed + +\begin_layout Standard + +} +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +multirow +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{ +\end_layout + +\end_inset + +2 +\begin_inset ERT +status collapsed + +\begin_layout Standard + +} +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{ +\end_layout + +\end_inset + +0.07 +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +paperheight +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +} +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{ +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +centering +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{} +\end_layout + +\end_inset + +не более t*z ст, +\begin_inset Formula $\,^{\circ}\mbox{C}$ +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +} +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +multirow +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{ +\end_layout + +\end_inset + +2 +\begin_inset ERT +status collapsed + +\begin_layout Standard + +} +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{ +\end_layout + +\end_inset + +0.07 +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +paperheight +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +} +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{ +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +centering +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{} +\end_layout + +\end_inset + +не более Ce г/л.с.ч. +\begin_inset ERT +status collapsed + +\begin_layout Standard + +} +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +multirow +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{ +\end_layout + +\end_inset + +2 +\begin_inset ERT +status collapsed + +\begin_layout Standard + +} +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{ +\end_layout + +\end_inset + +0.07 +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +paperheight +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +} +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{ +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + + +\backslash +centering +\end_layout + +\end_inset + + +\begin_inset ERT +status collapsed + +\begin_layout Standard + +{} +\end_layout + +\end_inset + +Gт, кг/час +\begin_inset ERT +status collapsed + +\begin_layout Standard + +} +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Standard + +Режим +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +ТУ +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +- +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +80,0 +\begin_inset Formula $\pm$ +\end_inset + +0,5 +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +- +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +- +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +- +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Standard + +ЗМГ +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +Факт +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +Откл. +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +ТУ +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +- +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +101,0 +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +98,0 +\begin_inset Formula $\pm$ +\end_inset + +0,5 +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +805 +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +- +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +- +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Standard + +2,5 мин.м. +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +Факт +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\begin_layout Standard + +Откл. +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + + + +\begin_inset Text + +\begin_layout Standard + +A0 +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + + + +\begin_inset Text + +\begin_layout Standard + +A1 +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + + + +\begin_inset Text + +\begin_layout Standard + +A2 +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + + + +\begin_inset Text + +\begin_layout Standard + +СКО +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + + + +\begin_inset Text + +\begin_layout Standard + +Примечание +\end_layout + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + +\begin_inset Text + +\end_inset + + + + +\end_inset + + +\end_layout + +\begin_layout Standard + + +\begin_inset Graphics + filename 174.eps + scale 300 + rotateAngle 25 + +\end_inset + + +\end_layout + +\end_body +\end_document diff --git a/test/tex/throttle.tex b/test/tex/throttle.tex new file mode 100644 index 0000000..06b60b7 --- /dev/null +++ b/test/tex/throttle.tex @@ -0,0 +1,232 @@ +%% LyX 2.0.3 created this file. For more info, see http://www.lyx.org/. +%% Do not edit unless you really know what you are doing. +\documentclass[russian]{article} +\usepackage[T1]{fontenc} +\usepackage[utf8x]{inputenc} +\usepackage{geometry} +\geometry{verbose} +\usepackage{array} +\usepackage{longtable} +\usepackage{textcomp} +\usepackage{multirow} +\usepackage{graphicx} + +\makeatletter + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LyX specific LaTeX commands. +\DeclareRobustCommand{\cyrtext}{% + \fontencoding{T2A}\selectfont\def\encodingdefault{T2A}} +\DeclareRobustCommand{\textcyr}[1]{\leavevmode{\cyrtext #1}} +\AtBeginDocument{\DeclareFontEncoding{T2A}{}{}} + +%% Because html converters don't know tabularnewline +\providecommand{\tabularnewline}{\\} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands. +\usepackage{multirow} + +\makeatother + +\usepackage{babel} +\begin{document} +DrosselTable1 + +\begin{longtable}{|||>{\centering}p{0.11\linewidth}|||||||||>{\raggedright}p{0.05\linewidth}|>{\centering}p{0.07\paperwidth}|p{0.07\paperwidth}|||||>{\centering}m{0.07\paperheight}|>{\centering}m{0.07\paperheight}|>{\centering}p{0.07\paperheight}|>{\centering}p{0.07\paperheight}|||} +\hline +\multicolumn{8}{|c|}{Сводный протокол результатов испытания двигателя ТВ7-117В №}\tabularnewline +\multicolumn{8}{|c|}{Стенд №18 ~~ ИУД СИК ~ Дата: ~~~~~~~~ г. Время: ~~~~~~~~~ +Рн = ~~~ мм рт ст~~ tвх = ~~~ $\,^{\circ}\mbox{C}$}\tabularnewline +\multicolumn{8}{|c|}{Характеристика ~~~~~~~ Акт сдачи, контрольные точки}\tabularnewline +\hline +\endhead +\multicolumn{2}{|>{\centering}m{0.11\linewidth}|}{\centering{}Составил} & \multicolumn{2}{c|}{Инженер по испытаниям} & Начальник БТК & Начальник участка УИД СИК & \multicolumn{2}{c|}{Представитель заказчика}\tabularnewline +\hline +\newpage\multicolumn{2}{|>{\centering}p{0.11\linewidth}|}{\centering{}\textit{Подпись}} & \multicolumn{2}{c|}{\textit{Подпись}} & \centering{}\textit{Подпись} & \centering{}\textit{Подпись} & \multicolumn{2}{c|}{\textit{Подпись}}\tabularnewline +\multicolumn{2}{|>{\centering}p{0.11\linewidth}|}{\textit{фамилия}} & \multicolumn{2}{c|}{\textit{фамилия}} & \multicolumn{1}{c|}{\textit{фамилия}} & \textit{фамилия} & \multicolumn{2}{c|}{\textit{фамилия}}\tabularnewline +\hline +\endfoot +\multicolumn{8}{|l|}{Усреднённые значения по режимам}\tabularnewline +\hline +\multicolumn{2}{|c|}{Параметр} & Nепр & Ce & Gт пр & nтк пр & t{*}z ст пр & Пк\tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.07\paperwidth}|}{\centering{Режим}} & & & & & & \tabularnewline +\hline +\multicolumn{2}{|l|}{ЗМГ} & & & & & & \tabularnewline +\hline +\multicolumn{2}{|l|}{0,4 мП} & & & & & & \tabularnewline +\hline +\multicolumn{2}{|l|}{Ne1650} & & & & & & \tabularnewline +\hline\newpage +\multicolumn{2}{|l|}{Мкр} & & & & & & \tabularnewline +\hline +\multicolumn{2}{|l|}{МП} & & & & & & \tabularnewline +\hline +\multicolumn{2}{|l|}{Ne2500} & & \multicolumn{1}{c}{\multirow{2}{*}{Много текста}} & & & & \tabularnewline +\hline +\multicolumn{2}{|l|}{Взл} & & & \multicolumn{1}{||c||}{\multirow{4}{*}{Много текста}} & & & \tabularnewline +\hline +\multicolumn{2}{|l|}{30-мин.м.} & & & & & & \tabularnewline +\hline \newpage +\multicolumn{8}{|c|}{Замеренные параметры}\tabularnewline +\hline +\multicolumn{2}{|c|}{Параметр} & Ne & Ce & Gт & nтк & t{*}z ст & Пк\tabularnewline +\hline +\multicolumn{2}{|l|}{ЗМГ} & & & & & & \tabularnewline +\hline +\multicolumn{2}{|l|}{2,5 мин.м.} & & & & & & \tabularnewline +\hline + \newpage \multicolumn{8}{|c|}{Оценка режимов по ТУ}\tabularnewline +\hline +\multicolumn{2}{|c|}{Параметр} & \multirow{2}{0.07\paperwidth}{\centering{}Neпр} & \multirow{2}{0.07\paperwidth}{\centering{}не более nтк пр,\%} & \multirow{2}{0.07\paperheight}{\centering{}nст,\%} & \multirow{2}{0.07\paperheight}{\centering{}не более t{*}z ст пр,$\,^{\circ}\mbox{C}$} & \multirow{2}{0.07\paperheight}{\centering{}не более Ce г/л.с.ч.} & \multirow{2}{0.07\paperheight}{\centering{}Gт пр, кг/час}\tabularnewline +\cline{1-2} +\multicolumn{2}{|c|}{Режим} & & & & & & \tabularnewline +\hline + & ТУ & 1900 & 93,0 & 98,0$\pm$0,5 & 680 & 221 & -\tabularnewline +\hline +\cline{1-1} \cline{3-3} \cline{5-6} +Мкр & Факт & & & & & & \tabularnewline +\hline + & Откл. & & & & & & \tabularnewline +\hline + & ТУ & 2100 & 94,0 & 98,0$\pm$0,5 & 705 & - & -\tabularnewline +\hline +МП & Факт & \ \ \ \ & & & & & \tabularnewline +\hline + & Откл. & & & & & & \tabularnewline +\hline + & ТУ & 2800 & 97,5 & 98,0$\pm$0,5 & 775 & 205 & -\tabularnewline +\hline +Взл & Факт & & & & & & \tabularnewline +\hline + & Откл. & & & & & & \tabularnewline +\hline + & ТУ & 3000 & 98,5 & 98,0$\pm$0,5 & 795 & - & -\tabularnewline +\hline +30-мин.м. & Факт & & & & & & \tabularnewline +\hline + & Откл. & & & & & & \tabularnewline +\hline +\newpage \multicolumn{8}{|c|}{Замеренные параметры}\tabularnewline +\hline +\multicolumn{2}{|c|}{Параметр} & \multirow{2}{0.07\paperwidth}{\centering{}Ne} & \multirow{2}{0.07\paperwidth}{\centering{}не более nтк,\%} & \multirow{2}{0.07\paperheight}{\centering{}nст,\%} & \multirow{2}{0.07\paperheight}{\centering{}не более t{*}z ст,$\,^{\circ}\mbox{C}$} & \multirow{2}{0.07\paperheight}{\centering{}не более Ce г/л.с.ч.} & \multirow{2}{0.07\paperheight}{\centering{}Gт, кг/час}\tabularnewline +\cline{1-2} +\multicolumn{2}{|c|}{Режим} & & & & & & \tabularnewline +\hline \newpage + & ТУ & - & & 80,0$\pm$0,5 & - & - & -\tabularnewline +\hline +ЗМГ & Факт & & & & & & \tabularnewline +\hline + & Откл. & & & & & & \tabularnewline +\hline + & ТУ & - & 101,0 & 98,0$\pm$0,5 & 805 & - & -\tabularnewline +\hline +2,5 мин.м. & Факт & & & & & & \tabularnewline +\hline + & Откл. & & & & & & \tabularnewline +\hline +\multicolumn{3}{|c|}{A0} & & & & & \tabularnewline +\hline +\multicolumn{3}{|c|}{A1} & & & & & \tabularnewline +\hline +\multicolumn{3}{|c|}{A2} & & & & & \tabularnewline +\hline +\multicolumn{3}{|c|}{СКО} & & & & & \tabularnewline +\hline +\multicolumn{3}{|c|}{Примечание} & \multicolumn{5}{c|}{}\tabularnewline +\hline +\end{longtable} + +\begin{tabular}{|||>{\centering}p{0.11\linewidth}|||||||||>{\raggedright}p{0.05\linewidth}|p{0.07\paperwidth}|>{\centering}p{0.07\paperwidth}|||||>{\centering}m{0.07\paperheight}|>{\centering}m{0.07\paperheight}|>{\centering}p{0.07\paperheight}|>{\centering}p{0.07\paperheight}|||} +\hline +\multicolumn{8}{|l|}{Усреднённые значения по режимам}\tabularnewline +\hline +\multicolumn{2}{|c|}{Параметр} & Nепр & Ce & Gт пр & nтк пр & t{*}z ст пр & Пк\tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.07\paperwidth}|}{\centering{Режим}} & & & & & & \tabularnewline +\hline +\multicolumn{2}{|l|}{ЗМГ} & & & & & & \tabularnewline +\hline +\multicolumn{2}{|l|}{0,4 мП} & & & & & & \tabularnewline +\hline +\multicolumn{2}{|l|}{Ne1650} & \ \ \ \ \ \ \ & & & & & \tabularnewline +\hline\newpage +\multicolumn{2}{|l|}{Мкр} & & & & & & \tabularnewline +\hline +\multicolumn{2}{|l|}{МП} & & & & & & \tabularnewline +\hline +\multicolumn{2}{|l|}{Ne2500} & & \multicolumn{1}{c}{\multirow{2}{*}{Много текста}} & & & & \tabularnewline +\hline +\multicolumn{2}{|l|}{Взл} & & & \multicolumn{1}{||c||}{\multirow{4}{*}{Много текста}} & & & \tabularnewline +\hline +\multicolumn{2}{|l|}{30-мин.м.} & & & & & & \tabularnewline +\hline \newpage +\multicolumn{8}{|c|}{Замеренные параметры}\tabularnewline +\hline +\multicolumn{2}{|c|}{Параметр} & Ne & Ce & Gт & nтк & t{*}z ст & Пк\tabularnewline +\hline +\multicolumn{2}{|l|}{ЗМГ} & & & & & & \tabularnewline +\hline +\multicolumn{2}{|l|}{2,5 мин.м.} & & & & & & \tabularnewline +\hline + \newpage \multicolumn{8}{|c|}{Оценка режимов по ТУ}\tabularnewline +\hline +\multicolumn{2}{|c|}{Параметр} & \multirow{2}{0.07\paperwidth}{\centering{}Neпр} & \multirow{2}{0.07\paperwidth}{\centering{}не более nтк пр,\%} & \multirow{2}{0.07\paperheight}{\centering{}nст,\%} & \multirow{2}{0.07\paperheight}{\centering{}не более t{*}z ст пр,$\,^{\circ}\mbox{C}$} & \multirow{2}{0.07\paperheight}{\centering{}не более Ce г/л.с.ч.} & \multirow{2}{0.07\paperheight}{\centering{}Gт пр, кг/час}\tabularnewline +\cline{1-2} +\multicolumn{2}{|c|}{Режим} & & & & & & \tabularnewline +\hline + & ТУ & 1900 & 93,0 & 98,0$\pm$0,5 & 680 & 221 & -\tabularnewline +\hline +\cline{1-1} \cline{3-3} \cline{5-6} +Мкр & Факт & & & & & & \tabularnewline +\hline + & Откл. & & & & & & \tabularnewline +\hline + & ТУ & 2100 & 94,0 & 98,0$\pm$0,5 & 705 & - & -\tabularnewline +\hline +МП & Факт & & & & & & \tabularnewline +\hline + & Откл. & & & & & & \tabularnewline +\hline + & ТУ & 2800 & 97,5 & 98,0$\pm$0,5 & 775 & 205 & -\tabularnewline +\hline +Взл & Факт & & & & & & \tabularnewline +\hline + & Откл. & & & & & & \tabularnewline +\hline + & ТУ & 3000 & 98,5 & 98,0$\pm$0,5 & 795 & - & -\tabularnewline +\hline +30-мин.м. & Факт & & & & & & \tabularnewline +\hline + & Откл. & & & & & & \tabularnewline +\hline +\newpage \multicolumn{8}{|c|}{Замеренные параметры}\tabularnewline +\hline +\multicolumn{2}{|c|}{Параметр} & \multirow{2}{0.07\paperwidth}{\centering{}Ne} & \multirow{2}{0.07\paperwidth}{\centering{}не более nтк,\%} & \multirow{2}{0.07\paperheight}{\centering{}nст,\%} & \multirow{2}{0.07\paperheight}{\centering{}не более t{*}z ст,$\,^{\circ}\mbox{C}$} & \multirow{2}{0.07\paperheight}{\centering{}не более Ce г/л.с.ч.} & \multirow{2}{0.07\paperheight}{\centering{}Gт, кг/час}\tabularnewline +\cline{1-2} +\multicolumn{2}{|c|}{Режим} & & & & & & \tabularnewline +\hline \newpage + & ТУ & - & & 80,0$\pm$0,5 & - & - & -\tabularnewline +\hline +ЗМГ & Факт & & & & & & \tabularnewline +\hline + & Откл. & & & & & & \tabularnewline +\hline + & ТУ & - & 101,0 & 98,0$\pm$0,5 & 805 & - & -\tabularnewline +\hline +2,5 мин.м. & Факт & & & & & & \tabularnewline +\hline + & Откл. & & & & & & \tabularnewline +\hline +\multicolumn{3}{|c|}{A0} & & & & & \tabularnewline +\hline +\multicolumn{3}{|c|}{A1} & & & & & \tabularnewline +\hline +\multicolumn{3}{|c|}{A2} & & & & & \tabularnewline +\hline +\multicolumn{3}{|c|}{СКО} & & & & & \tabularnewline +\hline +\multicolumn{3}{|c|}{Примечание} & \multicolumn{5}{c|}{}\tabularnewline +\hline +\end{tabular} + +\end{document} diff --git a/test/tex/throttle_VK2500.tex b/test/tex/throttle_VK2500.tex new file mode 100644 index 0000000..62a748d --- /dev/null +++ b/test/tex/throttle_VK2500.tex @@ -0,0 +1,135 @@ +%% LyX 2.0.3 created this file. For more info, see http://www.lyx.org/. +%% Do not edit unless you really know what you are doing. +\documentclass[russian]{article} +\usepackage[T1]{fontenc} +\usepackage[utf8x]{inputenc} +\usepackage[a4paper]{geometry} +\geometry{verbose,tmargin=1cm,bmargin=2cm,lmargin=2cm,rmargin=1cm} +\usepackage{array} +\usepackage{longtable} +\usepackage{textcomp} +\usepackage{multirow} + +\makeatletter + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LyX specific LaTeX commands. +\DeclareRobustCommand{\cyrtext}{% + \fontencoding{T2A}\selectfont\def\encodingdefault{T2A}} +\DeclareRobustCommand{\textcyr}[1]{\leavevmode{\cyrtext #1}} +\AtBeginDocument{\DeclareFontEncoding{T2A}{}{}} + +%% Because html converters don't know tabularnewline +\providecommand{\tabularnewline}{\\} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands. +\usepackage{multirow} + + + +\usepackage{babel} + +\makeatother + +\usepackage{babel} +\begin{document} +Номера замеров: {[}Zamer.List{]} + +{[}Zamer.Stend.Last{]} + +\begin{flushright} +Форма 07-622 +\par\end{flushright} + +\begin{longtable}{|>{\centering}p{0.11\linewidth}||>{\raggedright}p{0.05\linewidth}|c|c|c|c|c|c|} +\hline +\multicolumn{8}{|c|}{\textbf{\large Сводный протокол результатов испытания двигателя }}\tabularnewline +\multicolumn{8}{|c|}{\textbf{\large ВК-2500-02 № {[}Zamer.EngineData.Last{]}}}\tabularnewline +\multicolumn{8}{|c|}{Стенд № {[}Zamer.Stend.Last{]} ~~ ИУД СИК ~ Дата: {[}Zamer.Time2.Last{]} }\tabularnewline +\multicolumn{8}{|c|}{Рн = {[}Zamer.Ph.Last{]} мм рт ст~~ tвх = {[}Zamer.tvh\_zv.Last{]} +$\,^{\circ}\mbox{C}$}\tabularnewline +\multicolumn{8}{|c|}{Характеристика ~~~~~~~ Акт сдачи, контрольные точки}\tabularnewline +\endhead +\hline +\multicolumn{2}{|c|}{} & Nе & nтк & tг & Gт & Gв & Пк\tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.07\paperwidth}|}{Режим МГ} & \multicolumn{6}{c|}{}\tabularnewline +\hline +\multicolumn{2}{|l|}{Факт.} & {[}AvZam.Ne.modeMG{]} & {[}AvZam.ntk.modeMG{]} & {[}AvZam.tg.modeMG{]} & {[}AvZam.Gt.modeMG{]} & {[}AvZam.Gv.modeMG{]} & {[}AvZam.Pik.modeMG{]}\tabularnewline +\hline +\multicolumn{2}{|l|}{ТУ} & {[}TU.Ne.modeMG{]} & {[}TU.ntk.modeMG{]} & {[}TU.tg.modeMG{]} & {[}TU.Gt.modeMG{]} & {[}TU.Gv.modeMG{]} & {[}TU.Pik.modeMG{]}\tabularnewline +\hline +\multicolumn{2}{|l|}{Откл.} & {[}Diff.Ne.modeMG{]} & {[}Diff.ntk.modeMG{]} & {[}Diff.tg.modeMG{]} & {[}Diff.Gt.modeMG{]} & {[}Diff.Gv.modeMG{]} & {[}Diff.Pik.modeMG{]}\tabularnewline +\hline +\end{longtable}% +\begin{longtable}{|c|c|c|c|c|c|c|c|} +\hline +Режим & Ne пр & nтк пр & tг пр & Gт пр & Ce & Gв пр & Пк\tabularnewline +\hline +ЧР & {[}AvZam.Ne\_pr.modeChR{]} & {[}AvZam.ntk\_pr.modeChR{]} & {[}AvZam.tg\_pr.modeChR{]} & {[}AvZam.Gt\_pr.modeChR{]} & {[}AvZam.Ce.modeChR{]} & {[}AvZam.Gv\_pr.modeChR{]} & {[}AvZam.Pik.modeChR{]}\tabularnewline +\hline +Взлет & {[}AvZam.Ne\_pr.modeVZL{]} & {[}AvZam.ntk\_pr.modeVZL{]} & {[}AvZam.tg\_pr.modeVZL{]} & {[}AvZam.Gt\_pr.modeVZL{]} & {[}AvZam.Ce.modeVZL{]} & {[}AvZam.Gv\_pr.modeVzl{]} & {[}AvZam.Pik.modeVzl{]}\tabularnewline +\hline +Номинал & {[}AvZam.Ne\_pr.modeMP{]} & {[}AvZam.ntk\_pr.modeMP{]} & {[}AvZam.tg\_pr.modeMP{]} & {[}AvZam.Gt\_pr.modeMP{]} & {[}AvZam.Ce.modeMP{]} & {[}AvZam.Gv\_pr.modeMP{]} & {[}AvZam.Pik.modeMP{]}\tabularnewline +\hline +1крейс. & {[}AvZam.Ne\_pr.mode1KR{]} & {[}AvZam.ntk\_pr.mode1KR{]} & {[}AvZam.tg\_pr.mode1KR{]} & {[}AvZam.Gt\_pr.mode1KR{]} & {[}AvZam.Ce.mode1KR{]} & {[}AvZam.Gv\_pr.mode1KR{]} & {[}AvZam.Pik.mode1KR{]}\tabularnewline +\hline +2крейс. & {[}AvZam.Ne\_pr.mode2KR{]} & {[}AvZam.ntk\_pr.mode2KR{]} & {[}AvZam.tg\_pr.mode2KR{]} & {[}AvZam.Gt\_pr.mode2KR{]} & {[}AvZam.Ce.mode2KR{]} & {[}AvZam.Gv\_pr.mode2KR{]} & {[}AvZam.Pik.mode2KR{]}\tabularnewline +\hline +\multicolumn{2}{|c|}{А0} & {[}Coef.ntk\_pr.0{]} & {[}Coef.tg\_pr.0{]} & {[}Coef.Gt\_pr.0{]} & {[}Coef.Ce.0{]} & {[}Coef.Gv\_pr.0{]} & {[}Coef.Pik.0{]}\tabularnewline +\hline +\multicolumn{2}{|c|}{А1} & {[}Coef.ntk\_pr.1{]} & {[}Coef.tg\_pr.1{]} & {[}Coef.Gt\_pr.1{]} & {[}Coef.Ce.1{]} & {[}Coef.Gv\_pr.1{]} & {[}Coef.Pik.1{]}\tabularnewline +\hline +\multicolumn{2}{|c|}{А2} & {[}Coef.ntk\_pr.2{]} & {[}Coef.tg\_pr.2{]} & {[}Coef.Gt\_pr.2{]} & {[}Coef.Ce.2{]} & {[}Coef.Gv\_pr.2{]} & {[}Coef.Pik.2{]}\tabularnewline +\hline +\multicolumn{2}{|c|}{СКО} & {[}Coef.ntk\_pr.SKO{]} & {[}Coef.tg\_pr.SKO{]} & {[}Coef.Gt\_pr.SKO{]} & {[}Coef.Ce.SKO{]} & {[}Coef.Gv\_pr.SKO{]} & {[}Coef.Pik.SKO{]}\tabularnewline +\hline +\end{longtable}% +\begin{longtable}{|c|c|c|c|c|c|c|} +\hline + & Режим & ЧР & Взлет & Номинал & 1 крейс. & 2 крейс\tabularnewline +\hline +Парам. & Ne пр & {[}TU.Ne\_pr.modeChR{]} & {[}TU.Ne\_pr.modeVZL{]} & {[}TU.Ne\_pr.modeMP{]} & {[}TU.Ne\_pr.mode1KR{]} & {[}TU.Ne\_pr.mode2KR{]}\tabularnewline +\hline +Gт пр & Факт. & {[}Aprox.Gt\_pr.modeChR{]} & {[}Aprox.Gt\_pr.modeVZL{]} & {[}Aprox.Gt\_pr.modeMP{]} & {[}Aprox.Gt\_pr.mode1KR{]} & {[}Aprox.Gt\_pr.mode2KR{]}\tabularnewline +\hline +\multirow{3}{*}{Ce} & Факт. & {[}Aprox.Ce.modeChR{]} & {[}Aprox.Ce.modeVzl{]} & {[}Aprox.Ce.modeMP{]} & {[}Aprox.Ce.mode1KR{]} & {[}Aprox.Ce.mode2KR{]}\tabularnewline +\cline{2-7} + & ТУ & {[}TU.Ce.modeChR{]} & - & - & - & -\tabularnewline +\cline{2-7} + & Откл. & {[}Diff.Ce.modeChR{]} & - & - & - & -\tabularnewline +\hline +\multirow{3}{*}{nтк пр} & Факт. & {[}Aprox.ntk\_pr.modeChR{]} & {[}Aprox.ntk\_pr.modeVzl{]} & {[}Aprox.ntk\_pr.modeMP{]} & {[}Aprox.ntk\_pr.mode1KR{]} & {[}Aprox.ntk\_pr.mode2KR{]}\tabularnewline +\cline{2-7} + & ТУ & {[}TU.ntk\_pr.modeChR{]} & {[}TU.ntk\_pr.modeVzl{]} & {[}TU.ntk\_pr.modeMP{]} & {[}TU.ntk\_pr.mode1KR{]} & {[}TU.ntk\_pr.mode2KR{]}\tabularnewline +\cline{2-7} + & Откл. & {[}Diff.ntk\_pr\_modeChR{]} & {[}Diff.ntk\_pr\_modeVzl{]} & {[}Diff.ntk\_pr\_modeMP{]} & {[}Diff.ntk\_pr\_mode1KR{]} & {[}Diff.ntk\_pr\_mode2KR{]}\tabularnewline +\hline +\multirow{3}{*}{tг пр} & Факт. & {[}Aprox.tg\_pr.modeChR{]} & {[}Aprox.tg\_pr.modeVzl{]} & {[}Aprox.tg\_pr.modeMP{]} & {[}Aprox.tg\_pr.mode1KR{]} & {[}Aprox.tg\_pr.mode2KR{]}\tabularnewline +\cline{2-7} + & ТУ & {[}TU.tg\_pr.modeChR{]} & {[}TU.tg\_pr.modeVzl{]} & {[}TU.tg\_pr.modeMP{]} & {[}TU.tg\_pr.mode1KR{]} & {[}TU.tg\_pr.mode2KR{]}\tabularnewline +\cline{2-7} + & Откл. & {[}Diff.tg\_pr.modeChR{]} & {[}Diff.tg\_pr.modeVzl{]} & {[}Diff.tg\_pr.modeMP{]} & {[}Diff.tg\_pr.mode1KR{]} & {[}Diff.tg\_pr.mode2KR{]}\tabularnewline +\hline +\multirow{3}{*}{Gв пр} & Факт. & {[}Aprox.Gv\_pr.modeChR{]} & {[}Aprox.Gv\_pr.modeVzl{]} & {[}Aprox.Gv\_pr.modeMP{]} & {[}Aprox.Gv\_pr.mode1KR{]} & {[}Aprox.Gv\_pr.mode2KR{]}\tabularnewline +\cline{2-7} + & ТУ & {[}TU.Gv\_pr.modeChR{]} & - & - & - & -\tabularnewline +\cline{2-7} + & Откл. & {[}Diff.Gv\_pr.modeChR{]} & - & - & - & -\tabularnewline +\hline +\multirow{3}{*}{Пк} & Факт. & {[}Aprox.Pik.modeChR{]} & {[}Aprox.Pik.modeVzl{]} & {[}Aprox.Pik.modeMP{]} & {[}Aprox.Pik.mode1KR{]} & {[}Aprox.Pik.mode2KR{]}\tabularnewline +\cline{2-7} + & ТУ & {[}TU.Pik.modeChR{]} & - & - & - & -\tabularnewline +\cline{2-7} + & Откл. & {[}Diff.Pik.modeChR{]} & - & - & - & -\tabularnewline +\hline +\end{longtable}% +\begin{longtable}{|c|c|c|c|} +\hline +Инженер по испытаниям & Начальник БТК & Начальник УИД СИК & Представитель заказчика\tabularnewline +\hline + & & & \tabularnewline + & & & {[}Test1{]}\tabularnewline +\hline +\endfoot +\end{longtable}{[}Test2{]} +\end{document} diff --git a/test/tex/throttle_VK2500PS.tex b/test/tex/throttle_VK2500PS.tex new file mode 100644 index 0000000..6f238c2 --- /dev/null +++ b/test/tex/throttle_VK2500PS.tex @@ -0,0 +1,144 @@ +%% LyX 2.0.3 created this file. For more info, see http://www.lyx.org/. +%% Do not edit unless you really know what you are doing. +\documentclass[russian]{article} +\usepackage[T1]{fontenc} +\usepackage[utf8x]{inputenc} +\usepackage[a4paper]{geometry} +\geometry{verbose,tmargin=1cm,bmargin=2cm,lmargin=2cm,rmargin=1cm} +\usepackage{array} +\usepackage{longtable} +\usepackage{textcomp} +\usepackage{multirow} + +\makeatletter + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LyX specific LaTeX commands. +\DeclareRobustCommand{\cyrtext}{% + \fontencoding{T2A}\selectfont\def\encodingdefault{T2A}} +\DeclareRobustCommand{\textcyr}[1]{\leavevmode{\cyrtext #1}} +\AtBeginDocument{\DeclareFontEncoding{T2A}{}{}} + +%% Because html converters don't know tabularnewline +\providecommand{\tabularnewline}{\\} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands. +\usepackage{multirow} + + + +\usepackage{babel} + +\makeatother + +\usepackage{babel} +\begin{document} +Номера замеров: {[}Zamer.List{]} + +\begin{flushright} +Форма 07-622 +\par\end{flushright} + +\begin{longtable}{|c|>{\raggedright}p{0.05\linewidth}|c|c|c|c|c|c|} +\hline +\multicolumn{8}{|c}{\textbf{\large Сводный протокол результатов испытания двигателя }}\tabularnewline +\multicolumn{8}{|c}{\textbf{\large {[}Zamer.EngineData.Last{]}}}\tabularnewline +\multicolumn{8}{|c}{Стенд № {[}Zamer.Stend.Last{]} ~~ ИУД СИК ~ Дата: {[}Zamer.Time2.Last{]} }\tabularnewline +\multicolumn{8}{|c}{Рн = {[}Zamer.Ph.Last{]} мм рт.ст.~~ tвх = {[}Zamer.tvh\_zv.Last{]} +$\,^{\circ}\mbox{C}$}\tabularnewline +\multicolumn{8}{|c}{Характеристика ~~~~~~~ Акт сдачи, контрольные точки}\tabularnewline +\endhead +\hline +\multicolumn{2}{|c|}{} & Nе & nтк & tг & Gт & Gв пр & Пк\tabularnewline +\hline +\multirow{3}{*}{МГ} & Факт. & {[}AvZam.Ne.modeMG{]} & {[}AvZam.ntk.modeMG{]} & {[}AvZam.tg.modeMG{]} & {[}AvZam.Gt.modeMG{]} & {[}AvZam.Gv\_pr.modeMG{]} & {[}AvZam.Pik.modeMG{]}\tabularnewline +\cline{2-8} + & ТУ & - & {[}TUAver.ntk.modeMG{]} & {[}TUAver.tg.modeMG{]} & {[}TUAver.Gt.modeMG{]} & - & -\tabularnewline +\cline{2-8} + & Откл. & - & {[}DiffAver.ntk.modeMG{]} & {[}DiffAver.tg.modeMG{]} & {[}DiffAver.Gt.modeMG{]} & - & -\tabularnewline +\hline +\multirow{3}{*}{2,5-мин. м.} & Факт. & {[}AvZam.Ne.mode\_2\_5\_min{]} & {[}AvZam.ntk.mode\_2\_5\_min{]} & {[}AvZam.tg.mode\_2\_5\_min{]} & {[}AvZam.Gt.mode\_2\_5\_min{]} & {[}AvZam.Gv\_pr.mode\_2\_5\_min{]} & {[}AvZam.Pik.mode\_2\_5\_min{]}\tabularnewline +\cline{2-8} + & ТУ & {[}TUAver.Ne.mode\_2\_5\_min{]} & {[}TUAver.ntk.mode\_2\_5\_min{]} & {[}TUAver.tg.mode\_2\_5\_min{]} & - & - & -\tabularnewline +\cline{2-8} + & Откл. & {[}DiffAver.Ne.mode\_2\_5\_min{]} & {[}DiffAver.ntk.mode\_2\_5\_min{]} & {[}DiffAver.tg.mode\_2\_5\_min{]} & - & - & -\tabularnewline +\hline +\end{longtable}% +\begin{longtable}{|c|c|c|c|c|c|c|c|} +\hline +Режим & Ne пр & nтк пр & tг пр & Gт пр & Ce & Gв пр & Пк\tabularnewline +\hline +30 мин. м. & {[}AvZam.Ne\_pr.mode\_30\_min{]} & {[}AvZam.ntk\_pr.mode\_30\_min{]} & {[}AvZam.tg\_pr.mode\_30\_min{]} & {[}AvZam.Gt\_pr.mode\_30\_min{]} & {[}AvZam.Ce.mode\_30\_min{]} & {[}AvZam.Gv\_pr.mode\_30\_min{]} & {[}AvZam.Pik.mode\_30\_min{]}\tabularnewline +\hline +Взлет & {[}AvZam.Ne\_pr.modeVZL{]} & {[}AvZam.ntk\_pr.modeVZL{]} & {[}AvZam.tg\_pr.modeVZL{]} & {[}AvZam.Gt\_pr.modeVZL{]} & {[}AvZam.Ce.modeVZL{]} & {[}AvZam.Gv\_pr.modeVzl{]} & {[}AvZam.Pik.modeVzl{]}\tabularnewline +\hline +МП & {[}AvZam.Ne\_pr.modeMP{]} & {[}AvZam.ntk\_pr.modeMP{]} & {[}AvZam.tg\_pr.modeMP{]} & {[}AvZam.Gt\_pr.modeMP{]} & {[}AvZam.Ce.modeMP{]} & {[}AvZam.Gv\_pr.modeMP{]} & {[}AvZam.Pik.modeMP{]}\tabularnewline +\hline +1крейс. & {[}AvZam.Ne\_pr.mode1KR{]} & {[}AvZam.ntk\_pr.mode1KR{]} & {[}AvZam.tg\_pr.mode1KR{]} & {[}AvZam.Gt\_pr.mode1KR{]} & {[}AvZam.Ce.mode1KR{]} & {[}AvZam.Gv\_pr.mode1KR{]} & {[}AvZam.Pik.mode1KR{]}\tabularnewline +\hline +2крейс. & {[}AvZam.Ne\_pr.mode2KR{]} & {[}AvZam.ntk\_pr.mode2KR{]} & {[}AvZam.tg\_pr.mode2KR{]} & {[}AvZam.Gt\_pr.mode2KR{]} & {[}AvZam.Ce.mode2KR{]} & {[}AvZam.Gv\_pr.mode2KR{]} & {[}AvZam.Pik.mode2KR{]}\tabularnewline +\hline +\multicolumn{2}{|c|}{А0} & {[}Coef.ntk\_pr.0{]} & {[}Coef.tg\_pr.0{]} & {[}Coef.Gt\_pr.0{]} & {[}Coef.Ce.0{]} & {[}Coef.Gv\_pr.0{]} & {[}Coef.Pik.0{]}\tabularnewline +\hline +\multicolumn{2}{|c|}{А1} & {[}Coef.ntk\_pr.1{]} & {[}Coef.tg\_pr.1{]} & {[}Coef.Gt\_pr.1{]} & {[}Coef.Ce.1{]} & {[}Coef.Gv\_pr.1{]} & {[}Coef.Pik.1{]}\tabularnewline +\hline +\multicolumn{2}{|c|}{А2} & {[}Coef.ntk\_pr.2{]} & {[}Coef.tg\_pr.2{]} & {[}Coef.Gt\_pr.2{]} & {[}Coef.Ce.2{]} & {[}Coef.Gv\_pr.2{]} & {[}Coef.Pik.2{]}\tabularnewline +\hline +\multicolumn{2}{|c|}{СКО} & {[}SKO.ntk\_pr{]} & {[}SKO.tg\_pr{]} & {[}SKO.Gt\_pr{]} & {[}SKO.Ce{]} & {[}SKO.Gv\_pr{]} & {[}SKO.Pik{]}\tabularnewline +\hline +\end{longtable}% +\begin{longtable}{|c|c|c|c|c|c|c|} +\hline + & Режим & 30-мин. м. & Взлет & МП & 1крейс. & 2крейс.\tabularnewline +\hline +Парам. & Ne пр & {[}TU.Ne\_pr.mode\_30\_min{]} & {[}TU.Ne\_pr.modeVZL{]} & {[}TU.Ne\_pr.modeMP{]} & {[}TU.Ne\_pr.mode1KR{]} & {[}TU.Ne\_pr.mode2KR{]}\tabularnewline +\hline +Gт пр & Факт. & {[}Aprox.Gt\_pr.mode\_30\_min{]} & {[}Aprox.Gt\_pr.modeVZL{]} & {[}Aprox.Gt\_pr.modeMP{]} & {[}Aprox.Gt\_pr.mode1KR{]} & {[}Aprox.Gt\_pr.mode2KR{]}\tabularnewline +\hline +\multirow{3}{*}{Ce} & Факт. & {[}Aprox.Ce.mode\_30\_min{]} & {[}Aprox.Ce.modeVzl{]} & {[}Aprox.Ce.modeMP{]} & {[}Aprox.Ce.mode1KR{]} & {[}Aprox.Ce.mode2KR{]}\tabularnewline +\cline{2-7} + & ТУ & - & {[}TU.Ce.modeVzl{]} & - & - & -\tabularnewline +\cline{2-7} + & Откл. & - & {[}Diff.Ce.modeVzl{]} & - & - & -\tabularnewline +\hline +\multirow{3}{*}{nтк пр} & Факт. & {[}Aprox.ntk\_pr.mode\_30\_min{]} & {[}Aprox.ntk\_pr.modeVzl{]} & {[}Aprox.ntk\_pr.modeMP{]} & {[}Aprox.ntk\_pr.mode1KR{]} & {[}Aprox.ntk\_pr.mode2KR{]}\tabularnewline +\cline{2-7} + & ТУ & {[}TU.ntk\_pr.mode\_30\_min{]} & {[}TU.ntk\_pr.modeVzl{]} & {[}TU.ntk\_pr.modeMP{]} & {[}TU.ntk\_pr.mode1KR{]} & {[}TU.ntk\_pr.mode2KR{]}\tabularnewline +\cline{2-7} + & Откл. & {[}Diff.ntk\_pr.mode\_30\_min{]} & {[}Diff.ntk\_pr.modeVzl{]} & {[}Diff.ntk\_pr.modeMP{]} & {[}Diff.ntk\_pr.mode1KR{]} & {[}Diff.ntk\_pr.mode2KR{]}\tabularnewline +\hline +\multirow{3}{*}{tг пр} & Факт. & {[}Aprox.tg\_pr.mode\_30\_min{]} & {[}Aprox.tg\_pr.modeVzl{]} & {[}Aprox.tg\_pr.modeMP{]} & {[}Aprox.tg\_pr.mode1KR{]} & {[}Aprox.tg\_pr.mode2KR{]}\tabularnewline +\cline{2-7} + & ТУ & {[}TU.tg\_pr.mode\_30\_min{]} & {[}TU.tg\_pr.modeVzl{]} & {[}TU.tg\_pr.modeMP{]} & {[}TU.tg\_pr.mode1KR{]} & {[}TU.tg\_pr.mode2KR{]}\tabularnewline +\cline{2-7} + & Откл. & {[}Diff.tg\_pr.mode\_30\_min{]} & {[}Diff.tg\_pr.modeVzl{]} & {[}Diff.tg\_pr.modeMP{]} & {[}Diff.tg\_pr.mode1KR{]} & {[}Diff.tg\_pr.mode2KR{]}\tabularnewline +\hline +\multirow{3}{*}{Gв пр} & Факт. & {[}Aprox.Gv\_pr.mode\_30\_min{]} & {[}Aprox.Gv\_pr.modeVzl{]} & {[}Aprox.Gv\_pr.modeMP{]} & {[}Aprox.Gv\_pr.mode1KR{]} & {[}Aprox.Gv\_pr.mode2KR{]}\tabularnewline +\cline{2-7} + & ТУ & - & - & - & - & -\tabularnewline +\cline{2-7} + & Откл. & - & - & - & - & -\tabularnewline +\hline +\multirow{3}{*}{Пк} & Факт. & {[}Aprox.Pik.mode\_30\_min{]} & {[}Aprox.Pik.modeVzl{]} & {[}Aprox.Pik.modeMP{]} & {[}Aprox.Pik.mode1KR{]} & {[}Aprox.Pik.mode2KR{]}\tabularnewline +\cline{2-7} + & ТУ & - & - & - & - & -\tabularnewline +\cline{2-7} + & Откл. & - & - & - & - & -\tabularnewline +\hline +\end{longtable}% +\begin{longtable}{l} +Gв пр = {[}Aprox.Gv\_pr.2400{]} при Ne пр = 2400 ТУ {[}TU.Gv\_pr.2400{]} +Откл. = {[}Diff.Gv\_pr.2400{]}\tabularnewline +Пк = {[}Aprox.Pik.2400{]} при Ne пр = 2400 ТУ {[}TU.Pik.2400{]} Откл. += {[}Diff.Pik.2400{]}\tabularnewline +\end{longtable} + +\begin{longtable}{|c|c|c|c|} +\hline +Инженер по испытаниям & Начальник БТК & Начальник УИД СИК & Представитель заказчика\tabularnewline +\hline + & & & \tabularnewline + & & & \tabularnewline +\hline +\endfoot +\end{longtable} +\end{document} diff --git a/test/tex/throttle_VK2500PS_dos_newlines.tex b/test/tex/throttle_VK2500PS_dos_newlines.tex new file mode 100644 index 0000000..8560085 --- /dev/null +++ b/test/tex/throttle_VK2500PS_dos_newlines.tex @@ -0,0 +1,144 @@ + +%% Do not edit unless you really know what you are doing. +\documentclass[russian]{article} +\usepackage[T1]{fontenc} +\usepackage[utf8x]{inputenc} +\usepackage[a4paper]{geometry} +\geometry{verbose,tmargin=1cm,bmargin=2cm,lmargin=2cm,rmargin=1cm} +\usepackage{array} +\usepackage{longtable} +\usepackage{textcomp} +\usepackage{multirow} + +\makeatletter + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LyX specific LaTeX commands. +\DeclareRobustCommand{\cyrtext}{% + \fontencoding{T2A}\selectfont\def\encodingdefault{T2A}} +\DeclareRobustCommand{\textcyr}[1]{\leavevmode{\cyrtext #1}} +\AtBeginDocument{\DeclareFontEncoding{T2A}{}{}} + +%% Because html converters don't know tabularnewline +\providecommand{\tabularnewline}{\\} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands. +\usepackage{multirow} + + + +\usepackage{babel} + +\makeatother + +\usepackage{babel} +\begin{document} +Номера замеров: {[}Zamer.List{]} + +\begin{flushright} +Форма 07-622 +\par\end{flushright} + +\begin{longtable}{|c|>{\raggedright}p{0.05\linewidth}|c|c|c|c|c|c|} +\hline +\multicolumn{8}{|c}{\textbf{\large Сводный протокол результатов испытания двигателя }}\tabularnewline +\multicolumn{8}{|c}{\textbf{\large {[}Zamer.EngineData.Last{]}}}\tabularnewline +\multicolumn{8}{|c}{Стенд № {[}Zamer.Stend.Last{]} ~~ ИУД СИК ~ Дата: {[}Zamer.Time2.Last{]} }\tabularnewline +\multicolumn{8}{|c}{Рн = {[}Zamer.Ph.Last{]} мм рт.ст.~~ tвх = {[}Zamer.tvh\_zv.Last{]} +$\,^{\circ}\mbox{C}$}\tabularnewline +\multicolumn{8}{|c}{Характеристика ~~~~~~~ Акт сдачи, контрольные точки}\tabularnewline +\endhead +\hline +\multicolumn{2}{|c|}{} & Nе & nтк & tг & Gт & Gв пр & Пк\tabularnewline +\hline +\multirow{3}{*}{МГ} & Факт. & {[}AvZam.Ne.modeMG{]} & {[}AvZam.ntk.modeMG{]} & {[}AvZam.tg.modeMG{]} & {[}AvZam.Gt.modeMG{]} & {[}AvZam.Gv\_pr.modeMG{]} & {[}AvZam.Pik.modeMG{]}\tabularnewline +\cline{2-8} + & ТУ & - & {[}TUAver.ntk.modeMG{]} & {[}TUAver.tg.modeMG{]} & {[}TUAver.Gt.modeMG{]} & - & -\tabularnewline +\cline{2-8} + & Откл. & - & {[}DiffAver.ntk.modeMG{]} & {[}DiffAver.tg.modeMG{]} & {[}DiffAver.Gt.modeMG{]} & - & -\tabularnewline +\hline +\multirow{3}{*}{2,5-мин. м.} & Факт. & {[}AvZam.Ne.mode\_2\_5\_min{]} & {[}AvZam.ntk.mode\_2\_5\_min{]} & {[}AvZam.tg.mode\_2\_5\_min{]} & {[}AvZam.Gt.mode\_2\_5\_min{]} & {[}AvZam.Gv\_pr.mode\_2\_5\_min{]} & {[}AvZam.Pik.mode\_2\_5\_min{]}\tabularnewline +\cline{2-8} + & ТУ & {[}TUAver.Ne.mode\_2\_5\_min{]} & {[}TUAver.ntk.mode\_2\_5\_min{]} & {[}TUAver.tg.mode\_2\_5\_min{]} & - & - & -\tabularnewline +\cline{2-8} + & Откл. & {[}DiffAver.Ne.mode\_2\_5\_min{]} & {[}DiffAver.ntk.mode\_2\_5\_min{]} & {[}DiffAver.tg.mode\_2\_5\_min{]} & - & - & -\tabularnewline +\hline +\end{longtable}% +\begin{longtable}{|c|c|c|c|c|c|c|c|} +\hline +Режим & Ne пр & nтк пр & tг пр & Gт пр & Ce & Gв пр & Пк\tabularnewline +\hline +30 мин. м. & {[}AvZam.Ne\_pr.mode\_30\_min{]} & {[}AvZam.ntk\_pr.mode\_30\_min{]} & {[}AvZam.tg\_pr.mode\_30\_min{]} & {[}AvZam.Gt\_pr.mode\_30\_min{]} & {[}AvZam.Ce.mode\_30\_min{]} & {[}AvZam.Gv\_pr.mode\_30\_min{]} & {[}AvZam.Pik.mode\_30\_min{]}\tabularnewline +\hline +Взлет & {[}AvZam.Ne\_pr.modeVZL{]} & {[}AvZam.ntk\_pr.modeVZL{]} & {[}AvZam.tg\_pr.modeVZL{]} & {[}AvZam.Gt\_pr.modeVZL{]} & {[}AvZam.Ce.modeVZL{]} & {[}AvZam.Gv\_pr.modeVzl{]} & {[}AvZam.Pik.modeVzl{]}\tabularnewline +\hline +МП & {[}AvZam.Ne\_pr.modeMP{]} & {[}AvZam.ntk\_pr.modeMP{]} & {[}AvZam.tg\_pr.modeMP{]} & {[}AvZam.Gt\_pr.modeMP{]} & {[}AvZam.Ce.modeMP{]} & {[}AvZam.Gv\_pr.modeMP{]} & {[}AvZam.Pik.modeMP{]}\tabularnewline +\hline +1крейс. & {[}AvZam.Ne\_pr.mode1KR{]} & {[}AvZam.ntk\_pr.mode1KR{]} & {[}AvZam.tg\_pr.mode1KR{]} & {[}AvZam.Gt\_pr.mode1KR{]} & {[}AvZam.Ce.mode1KR{]} & {[}AvZam.Gv\_pr.mode1KR{]} & {[}AvZam.Pik.mode1KR{]}\tabularnewline +\hline +2крейс. & {[}AvZam.Ne\_pr.mode2KR{]} & {[}AvZam.ntk\_pr.mode2KR{]} & {[}AvZam.tg\_pr.mode2KR{]} & {[}AvZam.Gt\_pr.mode2KR{]} & {[}AvZam.Ce.mode2KR{]} & {[}AvZam.Gv\_pr.mode2KR{]} & {[}AvZam.Pik.mode2KR{]}\tabularnewline +\hline +\multicolumn{2}{|c|}{А0} & {[}Coef.ntk\_pr.0{]} & {[}Coef.tg\_pr.0{]} & {[}Coef.Gt\_pr.0{]} & {[}Coef.Ce.0{]} & {[}Coef.Gv\_pr.0{]} & {[}Coef.Pik.0{]}\tabularnewline +\hline +\multicolumn{2}{|c|}{А1} & {[}Coef.ntk\_pr.1{]} & {[}Coef.tg\_pr.1{]} & {[}Coef.Gt\_pr.1{]} & {[}Coef.Ce.1{]} & {[}Coef.Gv\_pr.1{]} & {[}Coef.Pik.1{]}\tabularnewline +\hline +\multicolumn{2}{|c|}{А2} & {[}Coef.ntk\_pr.2{]} & {[}Coef.tg\_pr.2{]} & {[}Coef.Gt\_pr.2{]} & {[}Coef.Ce.2{]} & {[}Coef.Gv\_pr.2{]} & {[}Coef.Pik.2{]}\tabularnewline +\hline +\multicolumn{2}{|c|}{СКО} & {[}SKO.ntk\_pr{]} & {[}SKO.tg\_pr{]} & {[}SKO.Gt\_pr{]} & {[}SKO.Ce{]} & {[}SKO.Gv\_pr{]} & {[}SKO.Pik{]}\tabularnewline +\hline +\end{longtable}% +\begin{longtable}{|c|c|c|c|c|c|c|} +\hline + & Режим & 30-мин. м. & Взлет & МП & 1крейс. & 2крейс.\tabularnewline +\hline +Парам. & Ne пр & {[}TU.Ne\_pr.mode\_30\_min{]} & {[}TU.Ne\_pr.modeVZL{]} & {[}TU.Ne\_pr.modeMP{]} & {[}TU.Ne\_pr.mode1KR{]} & {[}TU.Ne\_pr.mode2KR{]}\tabularnewline +\hline +Gт пр & Факт. & {[}Aprox.Gt\_pr.mode\_30\_min{]} & {[}Aprox.Gt\_pr.modeVZL{]} & {[}Aprox.Gt\_pr.modeMP{]} & {[}Aprox.Gt\_pr.mode1KR{]} & {[}Aprox.Gt\_pr.mode2KR{]}\tabularnewline +\hline +\multirow{3}{*}{Ce} & Факт. & {[}Aprox.Ce.mode\_30\_min{]} & {[}Aprox.Ce.modeVzl{]} & {[}Aprox.Ce.modeMP{]} & {[}Aprox.Ce.mode1KR{]} & {[}Aprox.Ce.mode2KR{]}\tabularnewline +\cline{2-7} + & ТУ & - & {[}TU.Ce.modeVzl{]} & - & - & -\tabularnewline +\cline{2-7} + & Откл. & - & {[}Diff.Ce.modeVzl{]} & - & - & -\tabularnewline +\hline +\multirow{3}{*}{nтк пр} & Факт. & {[}Aprox.ntk\_pr.mode\_30\_min{]} & {[}Aprox.ntk\_pr.modeVzl{]} & {[}Aprox.ntk\_pr.modeMP{]} & {[}Aprox.ntk\_pr.mode1KR{]} & {[}Aprox.ntk\_pr.mode2KR{]}\tabularnewline +\cline{2-7} + & ТУ & {[}TU.ntk\_pr.mode\_30\_min{]} & {[}TU.ntk\_pr.modeVzl{]} & {[}TU.ntk\_pr.modeMP{]} & {[}TU.ntk\_pr.mode1KR{]} & {[}TU.ntk\_pr.mode2KR{]}\tabularnewline +\cline{2-7} + & Откл. & {[}Diff.ntk\_pr.mode\_30\_min{]} & {[}Diff.ntk\_pr.modeVzl{]} & {[}Diff.ntk\_pr.modeMP{]} & {[}Diff.ntk\_pr.mode1KR{]} & {[}Diff.ntk\_pr.mode2KR{]}\tabularnewline +\hline +\multirow{3}{*}{tг пр} & Факт. & {[}Aprox.tg\_pr.mode\_30\_min{]} & {[}Aprox.tg\_pr.modeVzl{]} & {[}Aprox.tg\_pr.modeMP{]} & {[}Aprox.tg\_pr.mode1KR{]} & {[}Aprox.tg\_pr.mode2KR{]}\tabularnewline +\cline{2-7} + & ТУ & {[}TU.tg\_pr.mode\_30\_min{]} & {[}TU.tg\_pr.modeVzl{]} & {[}TU.tg\_pr.modeMP{]} & {[}TU.tg\_pr.mode1KR{]} & {[}TU.tg\_pr.mode2KR{]}\tabularnewline +\cline{2-7} + & Откл. & {[}Diff.tg\_pr.mode\_30\_min{]} & {[}Diff.tg\_pr.modeVzl{]} & {[}Diff.tg\_pr.modeMP{]} & {[}Diff.tg\_pr.mode1KR{]} & {[}Diff.tg\_pr.mode2KR{]}\tabularnewline +\hline +\multirow{3}{*}{Gв пр} & Факт. & {[}Aprox.Gv\_pr.mode\_30\_min{]} & {[}Aprox.Gv\_pr.modeVzl{]} & {[}Aprox.Gv\_pr.modeMP{]} & {[}Aprox.Gv\_pr.mode1KR{]} & {[}Aprox.Gv\_pr.mode2KR{]}\tabularnewline +\cline{2-7} + & ТУ & - & - & - & - & -\tabularnewline +\cline{2-7} + & Откл. & - & - & - & - & -\tabularnewline +\hline +\multirow{3}{*}{Пк} & Факт. & {[}Aprox.Pik.mode\_30\_min{]} & {[}Aprox.Pik.modeVzl{]} & {[}Aprox.Pik.modeMP{]} & {[}Aprox.Pik.mode1KR{]} & {[}Aprox.Pik.mode2KR{]}\tabularnewline +\cline{2-7} + & ТУ & - & - & - & - & -\tabularnewline +\cline{2-7} + & Откл. & - & - & - & - & -\tabularnewline +\hline +\end{longtable}% +\begin{longtable}{l} +Gв пр = {[}Aprox.Gv\_pr.2400{]} при Ne пр = 2400 ТУ {[}TU.Gv\_pr.2400{]} +Откл. = {[}Diff.Gv\_pr.2400{]}\tabularnewline +Пк = {[}Aprox.Pik.2400{]} при Ne пр = 2400 ТУ {[}TU.Pik.2400{]} Откл. += {[}Diff.Pik.2400{]}\tabularnewline +\end{longtable} + +\begin{longtable}{|c|c|c|c|} +\hline +Инженер по испытаниям & Начальник БТК & Начальник УИД СИК & Представитель заказчика\tabularnewline +\hline + & & & \tabularnewline + & & & \tabularnewline +\hline +\endfoot +\end{longtable} +\end{document} diff --git a/test/tex/throttle_err1.tex b/test/tex/throttle_err1.tex new file mode 100644 index 0000000..25d6485 --- /dev/null +++ b/test/tex/throttle_err1.tex @@ -0,0 +1,139 @@ +%% LyX 2.0.3 created this file. For more info, see http://www.lyx.org/. +%% Do not edit unless you really know what you are doing. +\documentclass[russian]{article} +\usepackage[T1]{fontenc} +\usepackage[utf8x]{inputenc} +\usepackage{geometry} +\geometry{verbose} +\usepackage{array} +\usepackage{longtable} +\usepackage{textcomp} +\usepackage{multirow} +\usepackage{graphicx} + +\makeatletter + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LyX specific LaTeX commands. +\DeclareRobustCommand{\cyrtext}{% + \fontencoding{T2A}\selectfont\def\encodingdefault{T2A}} +\DeclareRobustCommand{\textcyr}[1]{\leavevmode{\cyrtext #1}} +\AtBeginDocument{\DeclareFontEncoding{T2A}{}{}} + +%% Because html converters don't know tabularnewline +\providecommand{\tabularnewline}{\\} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands. +\usepackage{multirow} + +\makeatother + +\usepackage{babel} +\begin{document} +DrosselTable1 +\end{longtable} +\begin{longtable}{|>{\centering}p{0.11\linewidth}|>{\raggedright}p{0.05\linewidth}|>{\centering}p{0.07\paperwidth}|>{\centering}p{0.07\paperwidth}|>{\centering}m{0.07\paperheight}|>{\centering}m{0.07\paperheight}|>{\centering}p{0.07\paperheight}|>{\centering}p{0.07\paperheight}|} +\hline +\multicolumn{8}{|c|}{Сводный протокол результатов испытания двигателя ТВ7-117В №}\tabularnewline +\multicolumn{8}{|c|}{Стенд №18 ~~ ИУД СИК ~ Дата: ~~~~~~~~ г. Время: ~~~~~~~~~ +Рн = ~~~ мм рт ст~~ tвх = ~~~ $\,^{\circ}\mbox{C}$}\tabularnewline +\multicolumn{8}{|c|}{Характеристика ~~~~~~~ Акт сдачи, контрольные точки}\tabularnewline +\hline +\endhead +\multicolumn{2}{|>{\centering}m{0.11\linewidth}|}{\centering{}Составил} & \multicolumn{2}{c|}{Инженер по испытаниям} & Начальник БТК & Начальник участка УИД СИК & \multicolumn{2}{c|}{Представитель заказчика}\tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.11\linewidth}|}{\centering{}\textit{Подпись}} & \multicolumn{2}{c|}{\textit{Подпись}} & \centering{}\textit{Подпись} & \centering{}\textit{Подпись} & \multicolumn{2}{c|}{\textit{Подпись}}\tabularnewline +\multicolumn{2}{|>{\centering}p{0.11\linewidth}|}{\textit{фамилия}} & \multicolumn{2}{c|}{\textit{фамилия}} & \multicolumn{1}{c|}{\textit{фамилия}} & \textit{фамилия} & \multicolumn{2}{c|}{\textit{фамилия}}\tabularnewline +\hline +\endfoot +\multicolumn{8}{|l|}{Усреднённые значения по режимам}\tabularnewline +\hline +\multicolumn{2}{|c|}{Параметр} & Nепр & Ce & Gт пр & nтк пр & t{*}z ст пр & Пк\tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.07\paperwidth}|}{\centering{Режим}} & & & & & & \tabularnewline +\hline +\multicolumn{2}{|l|}{ЗМГ} & & & & & & \tabularnewline +\hline +\multicolumn{2}{|l|}{0,4 мП} & & & & & & \tabularnewline +\hline +\multicolumn{2}{|l|}{Ne1650} & & & & & & \tabularnewline +\hline +\multicolumn{2}{|l|}{Мкр} & & & & & & \tabularnewline +\hline +\multicolumn{2}{|l|}{МП} & & & & & & \tabularnewline +\hline +\multicolumn{2}{|l|}{Ne2500} & & & & & & \tabularnewline +\hline +\multicolumn{2}{|l|}{Взл} & & & & & & \tabularnewline +\hline +\multicolumn{2}{|l|}{30-мин.м.} & & & & & & \tabularnewline +\hline +\multicolumn{8}{|c|}{Замеренные параметры}\tabularnewline +\hline +\multicolumn{2}{|c|}{Параметр} & Ne & Ce & Gт & nтк & t{*}z ст & Пк\tabularnewline +\hline +\multicolumn{2}{|l|}{ЗМГ} & & & & & & \tabularnewline +\hline +\multicolumn{2}{|l|}{2,5 мин.м.} & & & & & & \tabularnewline +\hline +\multicolumn{8}{|c|}{Оценка режимов по ТУ}\tabularnewline +\hline +\multicolumn{2}{|c|}{Параметр} & \multirow{2}{0.07\paperwidth}{\centering{}Neпр} & \multirow{2}{0.07\paperwidth}{\centering{}не более nтк пр,\%} & \multirow{2}{0.07\paperheight}{\centering{}nст,\%} & \multirow{2}{0.07\paperheight}{\centering{}не более t{*}z ст пр,$\,^{\circ}\mbox{C}$} & \multirow{2}{0.07\paperheight}{\centering{}не более Ce г/л.с.ч.} & \multirow{2}{0.07\paperheight}{\centering{}Gт пр, кг/час}\tabularnewline +\cline{1-2} +\multicolumn{2}{|c|}{Режим} & & & & & & \tabularnewline +\hline + & ТУ & 1900 & 93,0 & 98,0$\pm$0,5 & 680 & 221 & -\tabularnewline +\hline +Мкр & Факт & & & & & & \tabularnewline +\hline + & Откл. & & & & & & \tabularnewline +\hline + & ТУ & 2100 & 94,0 & 98,0$\pm$0,5 & 705 & - & -\tabularnewline +\hline +МП & Факт & & & & & & \tabularnewline +\hline + & Откл. & & & & & & \tabularnewline +\hline + & ТУ & 2800 & 97,5 & 98,0$\pm$0,5 & 775 & 205 & -\tabularnewline +\hline +Взл & Факт & & & & & & \tabularnewline +\hline + & Откл. & & & & & & \tabularnewline +\hline + & ТУ & 3000 & 98,5 & 98,0$\pm$0,5 & 795 & - & -\tabularnewline +\hline +30-мин.м. & Факт & & & & & & \tabularnewline +\hline + & Откл. & & & & & & \tabularnewline +\hline +\multicolumn{8}{|c|}{Замеренные параметры}\tabularnewline +\hline +\multicolumn{2}{|c|}{Параметр} & \multirow{2}{0.07\paperwidth}{\centering{}Ne} & \multirow{2}{0.07\paperwidth}{\centering{}не более nтк,\%} & \multirow{2}{0.07\paperheight}{\centering{}nст,\%} & \multirow{2}{0.07\paperheight}{\centering{}не более t{*}z ст,$\,^{\circ}\mbox{C}$} & \multirow{2}{0.07\paperheight}{\centering{}не более Ce г/л.с.ч.} & \multirow{2}{0.07\paperheight}{\centering{}Gт, кг/час}\tabularnewline +\cline{1-2} +\multicolumn{2}{|c|}{Режим} & & & & & & \tabularnewline +\hline + & ТУ & - & & 80,0$\pm$0,5 & - & - & -\tabularnewline +\hline +ЗМГ & Факт & & & & & & \tabularnewline +\hline + & Откл. & & & & & & \tabularnewline +\hline + & ТУ & - & 101,0 & 98,0$\pm$0,5 & 805 & - & -\tabularnewline +\hline +2,5 мин.м. & Факт & & & & & & \tabularnewline +\hline + & Откл. & & & & & & \tabularnewline +\hline +\multicolumn{3}{|c|}{A0} & & & & & \tabularnewline +\hline +\multicolumn{3}{|c|}{A1} & & & & & \tabularnewline +\hline +\multicolumn{3}{|c|}{A2} & & & & & \tabularnewline +\hline +\multicolumn{3}{|c|}{СКО} & & & & & \tabularnewline +\hline +\multicolumn{3}{|c|}{Примечание} & \multicolumn{5}{c|}{}\tabularnewline +\hline +\end{longtable} + +\includegraphics[angle=25,scale=3]{174} +\end{document} diff --git a/test/tex/throttle_err2.tex b/test/tex/throttle_err2.tex new file mode 100644 index 0000000..c19b4da --- /dev/null +++ b/test/tex/throttle_err2.tex @@ -0,0 +1,139 @@ +%% LyX 2.0.3 created this file. For more info, see http://www.lyx.org/. +%% Do not edit unless you really know what you are doing. +\documentclass[russian]{article} +\usepackage[T1]{fontenc} +\usepackage[utf8x]{inputenc} +\usepackage{geometry} +\geometry{verbose} +\usepackage{array} +\usepackage{longtable} +\usepackage{textcomp} +\usepackage{multirow} +\usepackage{graphicx} + +\makeatletter + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LyX specific LaTeX commands. +\DeclareRobustCommand{\cyrtext}{% + \fontencoding{T2A}\selectfont\def\encodingdefault{T2A}} +\DeclareRobustCommand{\textcyr}[1]{\leavevmode{\cyrtext #1}} +\AtBeginDocument{\DeclareFontEncoding{T2A}{}{}} + +%% Because html converters don't know tabularnewline +\providecommand{\tabularnewline}{\\} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands. +\usepackage{multirow} + +\makeatother + +\usepackage{babel} +\begin{document} +DrosselTable1 +\begin{longtable} +\begin{longtable}{|>{\centering}p{0.11\linewidth}|>{\raggedright}p{0.05\linewidth}|>{\centering}p{0.07\paperwidth}|>{\centering}p{0.07\paperwidth}|>{\centering}m{0.07\paperheight}|>{\centering}m{0.07\paperheight}|>{\centering}p{0.07\paperheight}|>{\centering}p{0.07\paperheight}|} +\hline +\multicolumn{8}{|c|}{Сводный протокол результатов испытания двигателя ТВ7-117В №}\tabularnewline +\multicolumn{8}{|c|}{Стенд №18 ~~ ИУД СИК ~ Дата: ~~~~~~~~ г. Время: ~~~~~~~~~ +Рн = ~~~ мм рт ст~~ tвх = ~~~ $\,^{\circ}\mbox{C}$}\tabularnewline +\multicolumn{8}{|c|}{Характеристика ~~~~~~~ Акт сдачи, контрольные точки}\tabularnewline +\hline +\endhead +\multicolumn{2}{|>{\centering}m{0.11\linewidth}|}{\centering{}Составил} & \multicolumn{2}{c|}{Инженер по испытаниям} & Начальник БТК & Начальник участка УИД СИК & \multicolumn{2}{c|}{Представитель заказчика}\tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.11\linewidth}|}{\centering{}\textit{Подпись}} & \multicolumn{2}{c|}{\textit{Подпись}} & \centering{}\textit{Подпись} & \centering{}\textit{Подпись} & \multicolumn{2}{c|}{\textit{Подпись}}\tabularnewline +\multicolumn{2}{|>{\centering}p{0.11\linewidth}|}{\textit{фамилия}} & \multicolumn{2}{c|}{\textit{фамилия}} & \multicolumn{1}{c|}{\textit{фамилия}} & \textit{фамилия} & \multicolumn{2}{c|}{\textit{фамилия}}\tabularnewline +\hline +\endfoot +\multicolumn{8}{|l|}{Усреднённые значения по режимам}\tabularnewline +\hline +\multicolumn{2}{|c|}{Параметр} & Nепр & Ce & Gт пр & nтк пр & t{*}z ст пр & Пк\tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.07\paperwidth}|}{\centering{Режим}} & & & & & & \tabularnewline +\hline +\multicolumn{2}{|l|}{ЗМГ} & & & & & & \tabularnewline +\hline +\multicolumn{2}{|l|}{0,4 мП} & & & & & & \tabularnewline +\hline +\multicolumn{2}{|l|}{Ne1650} & & & & & & \tabularnewline +\hline +\multicolumn{2}{|l|}{Мкр} & & & & & & \tabularnewline +\hline +\multicolumn{2}{|l|}{МП} & & & & & & \tabularnewline +\hline +\multicolumn{2}{|l|}{Ne2500} & & & & & & \tabularnewline +\hline +\multicolumn{2}{|l|}{Взл} & & & & & & \tabularnewline +\hline +\multicolumn{2}{|l|}{30-мин.м.} & & & & & & \tabularnewline +\hline +\multicolumn{8}{|c|}{Замеренные параметры}\tabularnewline +\hline +\multicolumn{2}{|c|}{Параметр} & Ne & Ce & Gт & nтк & t{*}z ст & Пк\tabularnewline +\hline +\multicolumn{2}{|l|}{ЗМГ} & & & & & & \tabularnewline +\hline +\multicolumn{2}{|l|}{2,5 мин.м.} & & & & & & \tabularnewline +\hline +\multicolumn{8}{|c|}{Оценка режимов по ТУ}\tabularnewline +\hline +\multicolumn{2}{|c|}{Параметр} & \multirow{2}{0.07\paperwidth}{\centering{}Neпр} & \multirow{2}{0.07\paperwidth}{\centering{}не более nтк пр,\%} & \multirow{2}{0.07\paperheight}{\centering{}nст,\%} & \multirow{2}{0.07\paperheight}{\centering{}не более t{*}z ст пр,$\,^{\circ}\mbox{C}$} & \multirow{2}{0.07\paperheight}{\centering{}не более Ce г/л.с.ч.} & \multirow{2}{0.07\paperheight}{\centering{}Gт пр, кг/час}\tabularnewline +\cline{1-2} +\multicolumn{2}{|c|}{Режим} & & & & & & \tabularnewline +\hline + & ТУ & 1900 & 93,0 & 98,0$\pm$0,5 & 680 & 221 & -\tabularnewline +\hline +Мкр & Факт & & & & & & \tabularnewline +\hline + & Откл. & & & & & & \tabularnewline +\hline + & ТУ & 2100 & 94,0 & 98,0$\pm$0,5 & 705 & - & -\tabularnewline +\hline +МП & Факт & & & & & & \tabularnewline +\hline + & Откл. & & & & & & \tabularnewline +\hline + & ТУ & 2800 & 97,5 & 98,0$\pm$0,5 & 775 & 205 & -\tabularnewline +\hline +Взл & Факт & & & & & & \tabularnewline +\hline + & Откл. & & & & & & \tabularnewline +\hline + & ТУ & 3000 & 98,5 & 98,0$\pm$0,5 & 795 & - & -\tabularnewline +\hline +30-мин.м. & Факт & & & & & & \tabularnewline +\hline + & Откл. & & & & & & \tabularnewline +\hline +\multicolumn{8}{|c|}{Замеренные параметры}\tabularnewline +\hline +\multicolumn{2}{|c|}{Параметр} & \multirow{2}{0.07\paperwidth}{\centering{}Ne} & \multirow{2}{0.07\paperwidth}{\centering{}не более nтк,\%} & \multirow{2}{0.07\paperheight}{\centering{}nст,\%} & \multirow{2}{0.07\paperheight}{\centering{}не более t{*}z ст,$\,^{\circ}\mbox{C}$} & \multirow{2}{0.07\paperheight}{\centering{}не более Ce г/л.с.ч.} & \multirow{2}{0.07\paperheight}{\centering{}Gт, кг/час}\tabularnewline +\cline{1-2} +\multicolumn{2}{|c|}{Режим} & & & & & & \tabularnewline +\hline + & ТУ & - & & 80,0$\pm$0,5 & - & - & -\tabularnewline +\hline +ЗМГ & Факт & & & & & & \tabularnewline +\hline + & Откл. & & & & & & \tabularnewline +\hline + & ТУ & - & 101,0 & 98,0$\pm$0,5 & 805 & - & -\tabularnewline +\hline +2,5 мин.м. & Факт & & & & & & \tabularnewline +\hline + & Откл. & & & & & & \tabularnewline +\hline +\multicolumn{3}{|c|}{A0} & & & & & \tabularnewline +\hline +\multicolumn{3}{|c|}{A1} & & & & & \tabularnewline +\hline +\multicolumn{3}{|c|}{A2} & & & & & \tabularnewline +\hline +\multicolumn{3}{|c|}{СКО} & & & & & \tabularnewline +\hline +\multicolumn{3}{|c|}{Примечание} & \multicolumn{5}{c|}{}\tabularnewline +\hline +\end{longtable} + +\includegraphics[angle=25,scale=3]{174} +\end{document} diff --git a/test/tex/throttle_err3.tex b/test/tex/throttle_err3.tex new file mode 100644 index 0000000..95642af --- /dev/null +++ b/test/tex/throttle_err3.tex @@ -0,0 +1,140 @@ +%% LyX 2.0.3 created this file. For more info, see http://www.lyx.org/. +%% Do not edit unless you really know what you are doing. +\documentclass[russian]{article} +\usepackage[T1]{fontenc} +\usepackage[utf8x]{inputenc} +\usepackage{geometry} +\geometry{verbose} +\usepackage{array} +\usepackage{longtable} +\usepackage{textcomp} +\usepackage{multirow} +\usepackage{graphicx} + +\makeatletter + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LyX specific LaTeX commands. +\DeclareRobustCommand{\cyrtext}{% + \fontencoding{T2A}\selectfont\def\encodingdefault{T2A}} +\DeclareRobustCommand{\textcyr}[1]{\leavevmode{\cyrtext #1}} +\AtBeginDocument{\DeclareFontEncoding{T2A}{}{}} + +%% Because html converters don't know tabularnewline +\providecommand{\tabularnewline}{\\} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands. +\usepackage{multirow} + +\makeatother + +\usepackage{babel} +\begin{document} +DrosselTable1 + +\begin{longtable} +\begin{longtable}{|>{\centering}p{0.11\linewidth}|>{\raggedright}p{0.05\linewidth}|>{\centering}p{0.07\paperwidth}|>{\centering}p{0.07\paperwidth}|>{\centering}m{0.07\paperheight}|>{\centering}m{0.07\paperheight}|>{\centering}p{0.07\paperheight}|>{\centering}p{0.07\paperheight}|} +\hline +\multicolumn{8}{|c|}{Сводный протокол результатов испытания двигателя ТВ7-117В №}\tabularnewline +\multicolumn{8}{|c|}{Стенд №18 ~~ ИУД СИК ~ Дата: ~~~~~~~~ г. Время: ~~~~~~~~~ +Рн = ~~~ мм рт ст~~ tвх = ~~~ $\,^{\circ}\mbox{C}$}\tabularnewline +\multicolumn{8}{|c|}{Характеристика ~~~~~~~ Акт сдачи, контрольные точки}\tabularnewline +\hline +\endhead +\multicolumn{2}{|>{\centering}m{0.11\linewidth}|}{\centering{}Составил} & \multicolumn{2}{c|}{Инженер по испытаниям} & Начальник БТК & Начальник участка УИД СИК & \multicolumn{2}{c|}{Представитель заказчика}\tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.11\linewidth}|}{\centering{}\textit{Подпись}} & \multicolumn{2}{c|}{\textit{Подпись}} & \centering{}\textit{Подпись} & \centering{}\textit{Подпись} & \multicolumn{2}{c|}{\textit{Подпись}}\tabularnewline +\multicolumn{2}{|>{\centering}p{0.11\linewidth}|}{\textit{фамилия}} & \multicolumn{2}{c|}{\textit{фамилия}} & \multicolumn{1}{c|}{\textit{фамилия}} & \textit{фамилия} & \multicolumn{2}{c|}{\textit{фамилия}}\tabularnewline +\hline +\endfoot +\multicolumn{8}{|l|}{Усреднённые значения по режимам}\tabularnewline +\hline +\multicolumn{2}{|c|}{Параметр} & Nепр & Ce & Gт пр & nтк пр & t{*}z ст пр & Пк\tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.07\paperwidth}|}{\centering{Режим}} & & & & & & \tabularnewline +\hline +\multicolumn{2}{|l|}{ЗМГ} & & \end{longtable} & & & & \tabularnewline +\hline +\multicolumn{2}{|l|}{0,4 мП} & & & & & & \tabularnewline +\hline +\multicolumn{2}{|l|}{Ne1650} & & & & & & \tabularnewline +\hline +\multicolumn{2}{|l|}{Мкр} & & & & & & \tabularnewline +\hline +\multicolumn{2}{|l|}{МП} & & & & & & \tabularnewline +\hline +\multicolumn{2}{|l|}{Ne2500} & & & & & & \tabularnewline +\hline +\multicolumn{2}{|l|}{Взл} & & & & & & \tabularnewline +\hline +\multicolumn{2}{|l|}{30-мин.м.} & & & & & & \tabularnewline +\hline +\multicolumn{8}{|c|}{Замеренные параметры}\tabularnewline +\hline +\multicolumn{2}{|c|}{Параметр} & Ne & Ce & Gт & nтк & t{*}z ст & Пк\tabularnewline +\hline +\multicolumn{2}{|l|}{ЗМГ} & & & & & & \tabularnewline +\hline +\multicolumn{2}{|l|}{2,5 мин.м.} & & & & & & \tabularnewline +\hline +\multicolumn{8}{|c|}{Оценка режимов по ТУ}\tabularnewline +\hline +\multicolumn{2}{|c|}{Параметр} & \multirow{2}{0.07\paperwidth}{\centering{}Neпр} & \multirow{2}{0.07\paperwidth}{\centering{}не более nтк пр,\%} & \multirow{2}{0.07\paperheight}{\centering{}nст,\%} & \multirow{2}{0.07\paperheight}{\centering{}не более t{*}z ст пр,$\,^{\circ}\mbox{C}$} & \multirow{2}{0.07\paperheight}{\centering{}не более Ce г/л.с.ч.} & \multirow{2}{0.07\paperheight}{\centering{}Gт пр, кг/час}\tabularnewline +\cline{1-2} +\multicolumn{2}{|c|}{Режим} & & & & & & \tabularnewline +\hline + & ТУ & 1900 & 93,0 & 98,0$\pm$0,5 & 680 & 221 & -\tabularnewline +\hline +Мкр & Факт & & & & & & \tabularnewline +\hline + & Откл. & & & & & & \tabularnewline +\hline + & ТУ & 2100 & 94,0 & 98,0$\pm$0,5 & 705 & - & -\tabularnewline +\hline +МП & Факт & & & & & & \tabularnewline +\hline + & Откл. & & & & & & \tabularnewline +\hline + & ТУ & 2800 & 97,5 & 98,0$\pm$0,5 & 775 & 205 & -\tabularnewline +\hline +Взл & Факт & & & & & & \tabularnewline +\hline + & Откл. & & & & & & \tabularnewline +\hline + & ТУ & 3000 & 98,5 & 98,0$\pm$0,5 & 795 & - & -\tabularnewline +\hline +30-мин.м. & Факт & & & & & & \tabularnewline +\hline + & Откл. & & & & & & \tabularnewline +\hline +\multicolumn{8}{|c|}{Замеренные параметры}\tabularnewline +\hline +\multicolumn{2}{|c|}{Параметр} & \multirow{2}{0.07\paperwidth}{\centering{}Ne} & \multirow{2}{0.07\paperwidth}{\centering{}не более nтк,\%} & \multirow{2}{0.07\paperheight}{\centering{}nст,\%} & \multirow{2}{0.07\paperheight}{\centering{}не более t{*}z ст,$\,^{\circ}\mbox{C}$} & \multirow{2}{0.07\paperheight}{\centering{}не более Ce г/л.с.ч.} & \multirow{2}{0.07\paperheight}{\centering{}Gт, кг/час}\tabularnewline +\cline{1-2} +\multicolumn{2}{|c|}{Режим} & & & & & & \tabularnewline +\hline + & ТУ & - & & 80,0$\pm$0,5 & - & - & -\tabularnewline +\hline +ЗМГ & Факт & & & & & & \tabularnewline +\hline + & Откл. & & & & & & \tabularnewline +\hline + & ТУ & - & 101,0 & 98,0$\pm$0,5 & 805 & - & -\tabularnewline +\hline +2,5 мин.м. & Факт & & & & & & \tabularnewline +\hline + & Откл. & & & & & & \tabularnewline +\hline +\multicolumn{3}{|c|}{A0} & & & & & \tabularnewline +\hline +\multicolumn{3}{|c|}{A1} & & & & & \tabularnewline +\hline +\multicolumn{3}{|c|}{A2} & & & & & \tabularnewline +\hline +\multicolumn{3}{|c|}{СКО} & & & & & \tabularnewline +\hline +\multicolumn{3}{|c|}{Примечание} & \multicolumn{5}{c|}{}\tabularnewline +\hline +\end{longtable} + +\includegraphics[angle=25,scale=3]{174} +\end{document} diff --git a/test/tex/throttle_err4.tex b/test/tex/throttle_err4.tex new file mode 100644 index 0000000..200a78b --- /dev/null +++ b/test/tex/throttle_err4.tex @@ -0,0 +1,139 @@ +%% LyX 2.0.3 created this file. For more info, see http://www.lyx.org/. +%% Do not edit unless you really know what you are doing. +\documentclass[russian]{article} +\usepackage[T1]{fontenc} +\usepackage[utf8x]{inputenc} +\usepackage{geometry} +\geometry{verbose} +\usepackage{array} +\usepackage{longtable} +\usepackage{textcomp} +\usepackage{multirow} +\usepackage{graphicx} + +\makeatletter + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LyX specific LaTeX commands. +\DeclareRobustCommand{\cyrtext}{% + \fontencoding{T2A}\selectfont\def\encodingdefault{T2A}} +\DeclareRobustCommand{\textcyr}[1]{\leavevmode{\cyrtext #1}} +\AtBeginDocument{\DeclareFontEncoding{T2A}{}{}} + +%% Because html converters don't know tabularnewline +\providecommand{\tabularnewline}{\\} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands. +\usepackage{multirow} + +\makeatother + +\usepackage{babel} +\begin{document} +DrosselTable1 +\end{tabular} +\begin{tabular}{|>{\centering}p{0.11\linewidth}|>{\raggedright}p{0.05\linewidth}|>{\centering}p{0.07\paperwidth}|>{\centering}p{0.07\paperwidth}|>{\centering}m{0.07\paperheight}|>{\centering}m{0.07\paperheight}|>{\centering}p{0.07\paperheight}|>{\centering}p{0.07\paperheight}|} +\hline +\multicolumn{8}{|c|}{Сводный протокол результатов испытания двигателя ТВ7-117В №}\tabularnewline +\multicolumn{8}{|c|}{Стенд №18 ~~ ИУД СИК ~ Дата: ~~~~~~~~ г. Время: ~~~~~~~~~ +Рн = ~~~ мм рт ст~~ tвх = ~~~ $\,^{\circ}\mbox{C}$}\tabularnewline +\multicolumn{8}{|c|}{Характеристика ~~~~~~~ Акт сдачи, контрольные точки}\tabularnewline +\hline +\endhead +\multicolumn{2}{|>{\centering}m{0.11\linewidth}|}{\centering{}Составил} & \multicolumn{2}{c|}{Инженер по испытаниям} & Начальник БТК & Начальник участка УИД СИК & \multicolumn{2}{c|}{Представитель заказчика}\tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.11\linewidth}|}{\centering{}\textit{Подпись}} & \multicolumn{2}{c|}{\textit{Подпись}} & \centering{}\textit{Подпись} & \centering{}\textit{Подпись} & \multicolumn{2}{c|}{\textit{Подпись}}\tabularnewline +\multicolumn{2}{|>{\centering}p{0.11\linewidth}|}{\textit{фамилия}} & \multicolumn{2}{c|}{\textit{фамилия}} & \multicolumn{1}{c|}{\textit{фамилия}} & \textit{фамилия} & \multicolumn{2}{c|}{\textit{фамилия}}\tabularnewline +\hline +\endfoot +\multicolumn{8}{|l|}{Усреднённые значения по режимам}\tabularnewline +\hline +\multicolumn{2}{|c|}{Параметр} & Nепр & Ce & Gт пр & nтк пр & t{*}z ст пр & Пк\tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.07\paperwidth}|}{\centering{Режим}} & & & & & & \tabularnewline +\hline +\multicolumn{2}{|l|}{ЗМГ} & & & & & & \tabularnewline +\hline +\multicolumn{2}{|l|}{0,4 мП} & & & & & & \tabularnewline +\hline +\multicolumn{2}{|l|}{Ne1650} & & & & & & \tabularnewline +\hline +\multicolumn{2}{|l|}{Мкр} & & & & & & \tabularnewline +\hline +\multicolumn{2}{|l|}{МП} & & & & & & \tabularnewline +\hline +\multicolumn{2}{|l|}{Ne2500} & & & & & & \tabularnewline +\hline +\multicolumn{2}{|l|}{Взл} & & & & & & \tabularnewline +\hline +\multicolumn{2}{|l|}{30-мин.м.} & & & & & & \tabularnewline +\hline +\multicolumn{8}{|c|}{Замеренные параметры}\tabularnewline +\hline +\multicolumn{2}{|c|}{Параметр} & Ne & Ce & Gт & nтк & t{*}z ст & Пк\tabularnewline +\hline +\multicolumn{2}{|l|}{ЗМГ} & & & & & & \tabularnewline +\hline +\multicolumn{2}{|l|}{2,5 мин.м.} & & & & & & \tabularnewline +\hline +\multicolumn{8}{|c|}{Оценка режимов по ТУ}\tabularnewline +\hline +\multicolumn{2}{|c|}{Параметр} & \multirow{2}{0.07\paperwidth}{\centering{}Neпр} & \multirow{2}{0.07\paperwidth}{\centering{}не более nтк пр,\%} & \multirow{2}{0.07\paperheight}{\centering{}nст,\%} & \multirow{2}{0.07\paperheight}{\centering{}не более t{*}z ст пр,$\,^{\circ}\mbox{C}$} & \multirow{2}{0.07\paperheight}{\centering{}не более Ce г/л.с.ч.} & \multirow{2}{0.07\paperheight}{\centering{}Gт пр, кг/час}\tabularnewline +\cline{1-2} +\multicolumn{2}{|c|}{Режим} & & & & & & \tabularnewline +\hline + & ТУ & 1900 & 93,0 & 98,0$\pm$0,5 & 680 & 221 & -\tabularnewline +\hline +Мкр & Факт & & & & & & \tabularnewline +\hline + & Откл. & & & & & & \tabularnewline +\hline + & ТУ & 2100 & 94,0 & 98,0$\pm$0,5 & 705 & - & -\tabularnewline +\hline +МП & Факт & & & & & & \tabularnewline +\hline + & Откл. & & & & & & \tabularnewline +\hline + & ТУ & 2800 & 97,5 & 98,0$\pm$0,5 & 775 & 205 & -\tabularnewline +\hline +Взл & Факт & & & & & & \tabularnewline +\hline + & Откл. & & & & & & \tabularnewline +\hline + & ТУ & 3000 & 98,5 & 98,0$\pm$0,5 & 795 & - & -\tabularnewline +\hline +30-мин.м. & Факт & & & & & & \tabularnewline +\hline + & Откл. & & & & & & \tabularnewline +\hline +\multicolumn{8}{|c|}{Замеренные параметры}\tabularnewline +\hline +\multicolumn{2}{|c|}{Параметр} & \multirow{2}{0.07\paperwidth}{\centering{}Ne} & \multirow{2}{0.07\paperwidth}{\centering{}не более nтк,\%} & \multirow{2}{0.07\paperheight}{\centering{}nст,\%} & \multirow{2}{0.07\paperheight}{\centering{}не более t{*}z ст,$\,^{\circ}\mbox{C}$} & \multirow{2}{0.07\paperheight}{\centering{}не более Ce г/л.с.ч.} & \multirow{2}{0.07\paperheight}{\centering{}Gт, кг/час}\tabularnewline +\cline{1-2} +\multicolumn{2}{|c|}{Режим} & & & & & & \tabularnewline +\hline + & ТУ & - & & 80,0$\pm$0,5 & - & - & -\tabularnewline +\hline +ЗМГ & Факт & & & & & & \tabularnewline +\hline + & Откл. & & & & & & \tabularnewline +\hline + & ТУ & - & 101,0 & 98,0$\pm$0,5 & 805 & - & -\tabularnewline +\hline +2,5 мин.м. & Факт & & & & & & \tabularnewline +\hline + & Откл. & & & & & & \tabularnewline +\hline +\multicolumn{3}{|c|}{A0} & & & & & \tabularnewline +\hline +\multicolumn{3}{|c|}{A1} & & & & & \tabularnewline +\hline +\multicolumn{3}{|c|}{A2} & & & & & \tabularnewline +\hline +\multicolumn{3}{|c|}{СКО} & & & & & \tabularnewline +\hline +\multicolumn{3}{|c|}{Примечание} & \multicolumn{5}{c|}{}\tabularnewline +\hline +\end{tabular} + +\includegraphics[angle=25,scale=3]{174} +\end{document} diff --git a/test/tex/throttle_err5.tex b/test/tex/throttle_err5.tex new file mode 100644 index 0000000..e05afbb --- /dev/null +++ b/test/tex/throttle_err5.tex @@ -0,0 +1,139 @@ +%% LyX 2.0.3 created this file. For more info, see http://www.lyx.org/. +%% Do not edit unless you really know what you are doing. +\documentclass[russian]{article} +\usepackage[T1]{fontenc} +\usepackage[utf8x]{inputenc} +\usepackage{geometry} +\geometry{verbose} +\usepackage{array} +\usepackage{longtable} +\usepackage{textcomp} +\usepackage{multirow} +\usepackage{graphicx} + +\makeatletter + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LyX specific LaTeX commands. +\DeclareRobustCommand{\cyrtext}{% + \fontencoding{T2A}\selectfont\def\encodingdefault{T2A}} +\DeclareRobustCommand{\textcyr}[1]{\leavevmode{\cyrtext #1}} +\AtBeginDocument{\DeclareFontEncoding{T2A}{}{}} + +%% Because html converters don't know tabularnewline +\providecommand{\tabularnewline}{\\} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands. +\usepackage{multirow} + +\makeatother + +\usepackage{babel} +\begin{document} +DrosselTable1 +\begin{tabular} +\begin{tabular}{|>{\centering}p{0.11\linewidth}|>{\raggedright}p{0.05\linewidth}|>{\centering}p{0.07\paperwidth}|>{\centering}p{0.07\paperwidth}|>{\centering}m{0.07\paperheight}|>{\centering}m{0.07\paperheight}|>{\centering}p{0.07\paperheight}|>{\centering}p{0.07\paperheight}|} +\hline +\multicolumn{8}{|c|}{Сводный протокол результатов испытания двигателя ТВ7-117В №}\tabularnewline +\multicolumn{8}{|c|}{Стенд №18 ~~ ИУД СИК ~ Дата: ~~~~~~~~ г. Время: ~~~~~~~~~ +Рн = ~~~ мм рт ст~~ tвх = ~~~ $\,^{\circ}\mbox{C}$}\tabularnewline +\multicolumn{8}{|c|}{Характеристика ~~~~~~~ Акт сдачи, контрольные точки}\tabularnewline +\hline +\endhead +\multicolumn{2}{|>{\centering}m{0.11\linewidth}|}{\centering{}Составил} & \multicolumn{2}{c|}{Инженер по испытаниям} & Начальник БТК & Начальник участка УИД СИК & \multicolumn{2}{c|}{Представитель заказчика}\tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.11\linewidth}|}{\centering{}\textit{Подпись}} & \multicolumn{2}{c|}{\textit{Подпись}} & \centering{}\textit{Подпись} & \centering{}\textit{Подпись} & \multicolumn{2}{c|}{\textit{Подпись}}\tabularnewline +\multicolumn{2}{|>{\centering}p{0.11\linewidth}|}{\textit{фамилия}} & \multicolumn{2}{c|}{\textit{фамилия}} & \multicolumn{1}{c|}{\textit{фамилия}} & \textit{фамилия} & \multicolumn{2}{c|}{\textit{фамилия}}\tabularnewline +\hline +\endfoot +\multicolumn{8}{|l|}{Усреднённые значения по режимам}\tabularnewline +\hline +\multicolumn{2}{|c|}{Параметр} & Nепр & Ce & Gт пр & nтк пр & t{*}z ст пр & Пк\tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.07\paperwidth}|}{\centering{Режим}} & & & & & & \tabularnewline +\hline +\multicolumn{2}{|l|}{ЗМГ} & & & & & & \tabularnewline +\hline +\multicolumn{2}{|l|}{0,4 мП} & & & & & & \tabularnewline +\hline +\multicolumn{2}{|l|}{Ne1650} & & & & & & \tabularnewline +\hline +\multicolumn{2}{|l|}{Мкр} & & & & & & \tabularnewline +\hline +\multicolumn{2}{|l|}{МП} & & & & & & \tabularnewline +\hline +\multicolumn{2}{|l|}{Ne2500} & & & & & & \tabularnewline +\hline +\multicolumn{2}{|l|}{Взл} & & & & & & \tabularnewline +\hline +\multicolumn{2}{|l|}{30-мин.м.} & & & & & & \tabularnewline +\hline +\multicolumn{8}{|c|}{Замеренные параметры}\tabularnewline +\hline +\multicolumn{2}{|c|}{Параметр} & Ne & Ce & Gт & nтк & t{*}z ст & Пк\tabularnewline +\hline +\multicolumn{2}{|l|}{ЗМГ} & & & & & & \tabularnewline +\hline +\multicolumn{2}{|l|}{2,5 мин.м.} & & & & & & \tabularnewline +\hline +\multicolumn{8}{|c|}{Оценка режимов по ТУ}\tabularnewline +\hline +\multicolumn{2}{|c|}{Параметр} & \multirow{2}{0.07\paperwidth}{\centering{}Neпр} & \multirow{2}{0.07\paperwidth}{\centering{}не более nтк пр,\%} & \multirow{2}{0.07\paperheight}{\centering{}nст,\%} & \multirow{2}{0.07\paperheight}{\centering{}не более t{*}z ст пр,$\,^{\circ}\mbox{C}$} & \multirow{2}{0.07\paperheight}{\centering{}не более Ce г/л.с.ч.} & \multirow{2}{0.07\paperheight}{\centering{}Gт пр, кг/час}\tabularnewline +\cline{1-2} +\multicolumn{2}{|c|}{Режим} & & & & & & \tabularnewline +\hline + & ТУ & 1900 & 93,0 & 98,0$\pm$0,5 & 680 & 221 & -\tabularnewline +\hline +Мкр & Факт & & & & & & \tabularnewline +\hline + & Откл. & & & & & & \tabularnewline +\hline + & ТУ & 2100 & 94,0 & 98,0$\pm$0,5 & 705 & - & -\tabularnewline +\hline +МП & Факт & & & & & & \tabularnewline +\hline + & Откл. & & & & & & \tabularnewline +\hline + & ТУ & 2800 & 97,5 & 98,0$\pm$0,5 & 775 & 205 & -\tabularnewline +\hline +Взл & Факт & & & & & & \tabularnewline +\hline + & Откл. & & & & & & \tabularnewline +\hline + & ТУ & 3000 & 98,5 & 98,0$\pm$0,5 & 795 & - & -\tabularnewline +\hline +30-мин.м. & Факт & & & & & & \tabularnewline +\hline + & Откл. & & & & & & \tabularnewline +\hline +\multicolumn{8}{|c|}{Замеренные параметры}\tabularnewline +\hline +\multicolumn{2}{|c|}{Параметр} & \multirow{2}{0.07\paperwidth}{\centering{}Ne} & \multirow{2}{0.07\paperwidth}{\centering{}не более nтк,\%} & \multirow{2}{0.07\paperheight}{\centering{}nст,\%} & \multirow{2}{0.07\paperheight}{\centering{}не более t{*}z ст,$\,^{\circ}\mbox{C}$} & \multirow{2}{0.07\paperheight}{\centering{}не более Ce г/л.с.ч.} & \multirow{2}{0.07\paperheight}{\centering{}Gт, кг/час}\tabularnewline +\cline{1-2} +\multicolumn{2}{|c|}{Режим} & & & & & & \tabularnewline +\hline + & ТУ & - & & 80,0$\pm$0,5 & - & - & -\tabularnewline +\hline +ЗМГ & Факт & & & & & & \tabularnewline +\hline + & Откл. & & & & & & \tabularnewline +\hline + & ТУ & - & 101,0 & 98,0$\pm$0,5 & 805 & - & -\tabularnewline +\hline +2,5 мин.м. & Факт & & & & & & \tabularnewline +\hline + & Откл. & & & & & & \tabularnewline +\hline +\multicolumn{3}{|c|}{A0} & & & & & \tabularnewline +\hline +\multicolumn{3}{|c|}{A1} & & & & & \tabularnewline +\hline +\multicolumn{3}{|c|}{A2} & & & & & \tabularnewline +\hline +\multicolumn{3}{|c|}{СКО} & & & & & \tabularnewline +\hline +\multicolumn{3}{|c|}{Примечание} & \multicolumn{5}{c|}{}\tabularnewline +\hline +\end{tabular} + +\includegraphics[angle=25,scale=3]{174} +\end{document} diff --git a/test/tex/throttle_err6.tex b/test/tex/throttle_err6.tex new file mode 100644 index 0000000..08e7efa --- /dev/null +++ b/test/tex/throttle_err6.tex @@ -0,0 +1,140 @@ +%% LyX 2.0.3 created this file. For more info, see http://www.lyx.org/. +%% Do not edit unless you really know what you are doing. +\documentclass[russian]{article} +\usepackage[T1]{fontenc} +\usepackage[utf8x]{inputenc} +\usepackage{geometry} +\geometry{verbose} +\usepackage{array} +\usepackage{longtable} +\usepackage{textcomp} +\usepackage{multirow} +\usepackage{graphicx} + +\makeatletter + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LyX specific LaTeX commands. +\DeclareRobustCommand{\cyrtext}{% + \fontencoding{T2A}\selectfont\def\encodingdefault{T2A}} +\DeclareRobustCommand{\textcyr}[1]{\leavevmode{\cyrtext #1}} +\AtBeginDocument{\DeclareFontEncoding{T2A}{}{}} + +%% Because html converters don't know tabularnewline +\providecommand{\tabularnewline}{\\} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands. +\usepackage{multirow} + +\makeatother + +\usepackage{babel} +\begin{document} +DrosselTable1 + +\begin{tabular} +\begin{tabular}{|>{\centering}p{0.11\linewidth}|>{\raggedright}p{0.05\linewidth}|>{\centering}p{0.07\paperwidth}|>{\centering}p{0.07\paperwidth}|>{\centering}m{0.07\paperheight}|>{\centering}m{0.07\paperheight}|>{\centering}p{0.07\paperheight}|>{\centering}p{0.07\paperheight}|} +\hline +\multicolumn{8}{|c|}{Сводный протокол результатов испытания двигателя ТВ7-117В №}\tabularnewline +\multicolumn{8}{|c|}{Стенд №18 ~~ ИУД СИК ~ Дата: ~~~~~~~~ г. Время: ~~~~~~~~~ +Рн = ~~~ мм рт ст~~ tвх = ~~~ $\,^{\circ}\mbox{C}$}\tabularnewline +\multicolumn{8}{|c|}{Характеристика ~~~~~~~ Акт сдачи, контрольные точки}\tabularnewline +\hline +\endhead +\multicolumn{2}{|>{\centering}m{0.11\linewidth}|}{\centering{}Составил} & \multicolumn{2}{c|}{Инженер по испытаниям} & Начальник БТК & Начальник участка УИД СИК & \multicolumn{2}{c|}{Представитель заказчика}\tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.11\linewidth}|}{\centering{}\textit{Подпись}} & \multicolumn{2}{c|}{\textit{Подпись}} & \centering{}\textit{Подпись} & \centering{}\textit{Подпись} & \multicolumn{2}{c|}{\textit{Подпись}}\tabularnewline +\multicolumn{2}{|>{\centering}p{0.11\linewidth}|}{\textit{фамилия}} & \multicolumn{2}{c|}{\textit{фамилия}} & \multicolumn{1}{c|}{\textit{фамилия}} & \textit{фамилия} & \multicolumn{2}{c|}{\textit{фамилия}}\tabularnewline +\hline +\endfoot +\multicolumn{8}{|l|}{Усреднённые значения по режимам}\tabularnewline +\hline +\multicolumn{2}{|c|}{Параметр} & Nепр & Ce & Gт пр & nтк пр & t{*}z ст пр & Пк\tabularnewline +\hline +\multicolumn{2}{|>{\centering}p{0.07\paperwidth}|}{\centering{Режим}} & & & & & & \tabularnewline +\hline +\multicolumn{2}{|l|}{ЗМГ} & & \end{tabular} & & & & \tabularnewline +\hline +\multicolumn{2}{|l|}{0,4 мП} & & & & & & \tabularnewline +\hline +\multicolumn{2}{|l|}{Ne1650} & & & & & & \tabularnewline +\hline +\multicolumn{2}{|l|}{Мкр} & & & & & & \tabularnewline +\hline +\multicolumn{2}{|l|}{МП} & & & & & & \tabularnewline +\hline +\multicolumn{2}{|l|}{Ne2500} & & & & & & \tabularnewline +\hline +\multicolumn{2}{|l|}{Взл} & & & & & & \tabularnewline +\hline +\multicolumn{2}{|l|}{30-мин.м.} & & & & & & \tabularnewline +\hline +\multicolumn{8}{|c|}{Замеренные параметры}\tabularnewline +\hline +\multicolumn{2}{|c|}{Параметр} & Ne & Ce & Gт & nтк & t{*}z ст & Пк\tabularnewline +\hline +\multicolumn{2}{|l|}{ЗМГ} & & & & & & \tabularnewline +\hline +\multicolumn{2}{|l|}{2,5 мин.м.} & & & & & & \tabularnewline +\hline +\multicolumn{8}{|c|}{Оценка режимов по ТУ}\tabularnewline +\hline +\multicolumn{2}{|c|}{Параметр} & \multirow{2}{0.07\paperwidth}{\centering{}Neпр} & \multirow{2}{0.07\paperwidth}{\centering{}не более nтк пр,\%} & \multirow{2}{0.07\paperheight}{\centering{}nст,\%} & \multirow{2}{0.07\paperheight}{\centering{}не более t{*}z ст пр,$\,^{\circ}\mbox{C}$} & \multirow{2}{0.07\paperheight}{\centering{}не более Ce г/л.с.ч.} & \multirow{2}{0.07\paperheight}{\centering{}Gт пр, кг/час}\tabularnewline +\cline{1-2} +\multicolumn{2}{|c|}{Режим} & & & & & & \tabularnewline +\hline + & ТУ & 1900 & 93,0 & 98,0$\pm$0,5 & 680 & 221 & -\tabularnewline +\hline +Мкр & Факт & & & & & & \tabularnewline +\hline + & Откл. & & & & & & \tabularnewline +\hline + & ТУ & 2100 & 94,0 & 98,0$\pm$0,5 & 705 & - & -\tabularnewline +\hline +МП & Факт & & & & & & \tabularnewline +\hline + & Откл. & & & & & & \tabularnewline +\hline + & ТУ & 2800 & 97,5 & 98,0$\pm$0,5 & 775 & 205 & -\tabularnewline +\hline +Взл & Факт & & & & & & \tabularnewline +\hline + & Откл. & & & & & & \tabularnewline +\hline + & ТУ & 3000 & 98,5 & 98,0$\pm$0,5 & 795 & - & -\tabularnewline +\hline +30-мин.м. & Факт & & & & & & \tabularnewline +\hline + & Откл. & & & & & & \tabularnewline +\hline +\multicolumn{8}{|c|}{Замеренные параметры}\tabularnewline +\hline +\multicolumn{2}{|c|}{Параметр} & \multirow{2}{0.07\paperwidth}{\centering{}Ne} & \multirow{2}{0.07\paperwidth}{\centering{}не более nтк,\%} & \multirow{2}{0.07\paperheight}{\centering{}nст,\%} & \multirow{2}{0.07\paperheight}{\centering{}не более t{*}z ст,$\,^{\circ}\mbox{C}$} & \multirow{2}{0.07\paperheight}{\centering{}не более Ce г/л.с.ч.} & \multirow{2}{0.07\paperheight}{\centering{}Gт, кг/час}\tabularnewline +\cline{1-2} +\multicolumn{2}{|c|}{Режим} & & & & & & \tabularnewline +\hline + & ТУ & - & & 80,0$\pm$0,5 & - & - & -\tabularnewline +\hline +ЗМГ & Факт & & & & & & \tabularnewline +\hline + & Откл. & & & & & & \tabularnewline +\hline + & ТУ & - & 101,0 & 98,0$\pm$0,5 & 805 & - & -\tabularnewline +\hline +2,5 мин.м. & Факт & & & & & & \tabularnewline +\hline + & Откл. & & & & & & \tabularnewline +\hline +\multicolumn{3}{|c|}{A0} & & & & & \tabularnewline +\hline +\multicolumn{3}{|c|}{A1} & & & & & \tabularnewline +\hline +\multicolumn{3}{|c|}{A2} & & & & & \tabularnewline +\hline +\multicolumn{3}{|c|}{СКО} & & & & & \tabularnewline +\hline +\multicolumn{3}{|c|}{Примечание} & \multicolumn{5}{c|}{}\tabularnewline +\hline +\end{tabular} + +\includegraphics[angle=25,scale=3]{174} +\end{document} diff --git a/test/tex/txr_parse_test.c b/test/tex/txr_parse_test.c new file mode 100644 index 0000000..d817d4b --- /dev/null +++ b/test/tex/txr_parse_test.c @@ -0,0 +1,219 @@ +///@cond INTERNAL +#include +#include + +#include +#include + +#include + +#include "txr-texparser.h" + +static gchar *fnameTable = NULL; +static gchar *fnameEtalon = NULL; +static gchar *fnameWrite = NULL; + +static GOptionEntry entries[] = +{ + { "table", 't', 0, G_OPTION_ARG_FILENAME, &fnameTable, "File with a table", NULL }, + { "etalon", 'e', 0, G_OPTION_ARG_FILENAME, &fnameEtalon, "File with etalon table", NULL }, + { "write", 'w', 0, G_OPTION_ARG_FILENAME, &fnameWrite, "File to write", NULL }, + { NULL, 0, 0, 0, NULL, NULL, NULL } +}; + +int main (int argc, char *argv[]) +{ + GOptionContext *context; + GError *error = NULL; + + GError *parse_error = NULL; + gchar *contents = NULL, + *generated = NULL, + *gentext; + TXRGlob *doc = NULL; + TXRGlobIter it; + + //MamanBar *bar; + //MamanBar *bar1; + +//#if (!GLIB_CHECK_VERSION (2, 36, 0)) +// g_type_init (); +//#endif + + //bar = g_object_new (MAMAN_BAR_TYPE, NULL); + //g_printf ("type = %s\n", G_OBJECT_TYPE_NAME (bar)); + //g_object_unref (bar); + //bar1 = g_object_new (MAMAN_BAR_TYPE, NULL); + //g_object_unref (bar1); + //(void) bar1; + //return 0; + + setlocale (LC_ALL, ""); + +#if (!GLIB_CHECK_VERSION (2, 36, 0)) + g_type_init (); +#endif + + /* commandline arguments processing */ + context = g_option_context_new ("- tests LaTeX parser"); + g_option_context_add_main_entries (context, entries, NULL);//GETTEXT_PACKAGE); + // g_option_context_add_group (context, gtk_get_option_group (TRUE)); + if (!g_option_context_parse (context, &argc, &argv, &error)) + { + fprintf (stderr, "option parsing failed: %s\n", error->message); + exit (1); + } + g_option_context_free (context); + + /* read table */ + if (!fnameTable) + { + fprintf (stderr, "Specify file with a table"); + goto err; + } + /* load file contents + */ + if (!g_file_get_contents (fnameTable, &contents, NULL, &error)) + { + g_printf ("Unable to read file: %s\n", error->message); + goto err; + } + g_free (fnameTable); + + g_assert ((contents == NULL && error != NULL) + || (contents != NULL && error == NULL)); + + /* parse TeX */ + doc = txr_parse (contents, &parse_error); + + if (parse_error) + { + g_print ("Error parsing TeX document: %s\n", parse_error->message); + goto err; + } + + else + { + puts ("TeX document successfully parsed\n"); + } + + /* list all objects */ + g_printf ("list all objects\n"); + for (it = txr_glob_first (doc); it; it = txr_glob_iter_next (it)) + { + g_printf ("%s\n", G_OBJECT_TYPE_NAME (*it)); + + if ( !g_strcmp0 ("TXRTabular", G_OBJECT_TYPE_NAME (*it)) + || !g_strcmp0 ("TXRLongtable", G_OBJECT_TYPE_NAME (*it))) + { + TXRSubtable *subtable; + TXRSubtableIter st_it; + + if (!g_strcmp0 ("TXRTabular", G_OBJECT_TYPE_NAME (*it))) + subtable = txr_tabular_get_table (TXR_TABULAR (*it)); + else + subtable = txr_longtable_get_table (TXR_LONGTABLE (*it)); + + for (st_it = txr_subtable_first (subtable); st_it; st_it = txr_subtable_iter_next (st_it)) + { + TXRRow *row = TXR_ROW (*st_it); + TXRRowIter row_it; + + for (row_it = txr_row_first (row); row_it; row_it = txr_row_iter_next (row_it)) + { + TXRCell *cell = TXR_CELL (*row_it); + TXRGlob *glob = txr_cell_get_contents (cell); + TXRGlobIter glob_it; + + for (glob_it = txr_glob_first (glob); glob_it; glob_it = txr_glob_iter_next (glob_it)) + { + if (g_strcmp0 ("TXRText", G_OBJECT_TYPE_NAME (*glob_it))) + g_printf (" %s\n", G_OBJECT_TYPE_NAME (*glob_it)); + } + } + } + } + } + + g_printf ("end of objects\n\n"); + + /* walk through all objects */ + g_printf ("Walk through all objects\n"); + for (it = txr_glob_first (doc); it; it = txr_glob_iter_next (it)) + { + g_printf ("%s\n", G_OBJECT_TYPE_NAME (*it)); + + if (!g_strcmp0 ("TXRGraphics", G_OBJECT_TYPE_NAME (*it))) + { + gdouble width = 0, + height = 0; + gchar *w_unit = NULL, + *h_unit = NULL; + TXRGraphics *graphics = txr_graphics_clone (TXR_GRAPHICS (*it)); + txr_graphics_get_size (graphics, &width, &w_unit, &height, &h_unit); + gentext = txr_glob_gen ((TXRGlob *) graphics); + g_printf (" width=%f%s, height=%f%s, path=%s,\n gen()=%s\n", + width, w_unit, height, h_unit, + txr_graphics_get_path (graphics), + gentext); + g_free (gentext); + /* test txr_graphics_set_size () */ + txr_graphics_set_size (graphics, width / 2, "pt", height * 2, "dd"); + gentext = txr_glob_gen ((TXRGlob *) graphics); + g_printf ("resized gen() = %s\n", gentext); + g_free (gentext); + txr_graphics_unref (graphics); + g_free (w_unit); + g_free (h_unit); + } + } + g_printf ("end of objects\n\n"); + + /* generate plain-TeX document */ + generated = txr_glob_gen (doc); + + /* load etalon file + */ + if (fnameEtalon) + { + g_free (contents); + if (!g_file_get_contents (fnameEtalon, &contents, NULL, &error)) + { + g_printf ("Unable to read file: %s\n", error->message); + goto err; + } + } + g_free (fnameEtalon); + + if (!g_strcmp0 (contents, generated)) + g_printf ("Original and generated text are EQUAL ;-)\n"); + else + g_printf ("Original and generated text are NOT EQUAL ;-(\n"); + + g_printf ("--- Generated plain-TeX (generated) ---\n%s", generated); + + /* write to file */ + if (fnameWrite) + g_file_set_contents (fnameWrite, generated, -1, NULL); + g_free (fnameWrite); + +err: +//end: + g_free (contents); + g_free (generated); + + if (parse_error) + { + g_error_free (parse_error); + } + + if (error) + { + g_error_free (error); + } + + txr_glob_unref (doc); + + return 0; +} +///@endcond diff --git a/test/tex/unary_quotes.tex b/test/tex/unary_quotes.tex new file mode 100644 index 0000000..ef6bad7 --- /dev/null +++ b/test/tex/unary_quotes.tex @@ -0,0 +1,19 @@ +' +\begin{tabular}{c} +' \tabularnewline +\end{tabular} + +\begin{tabular}{c} +' \tabularnewline +\end{tabular} +' + +" +\begin{tabular}{c} +" \tabularnewline +\end{tabular} + +\begin{tabular}{c} +" \tabularnewline +\end{tabular} +" diff --git a/util/update-po.sh b/util/update-po.sh new file mode 100755 index 0000000..550adfa --- /dev/null +++ b/util/update-po.sh @@ -0,0 +1,48 @@ +#!/bin/sh + +## +# settings +## +PROJECT=laview-latex-struct-0 +PO_DIR_NAME=po + +SCRIPT_PATH=`readlink -f $0` +SCRIPT_DIR=${SCRIPT_PATH%/*} +PRJDIR=${SCRIPT_DIR%/*} + +C_FILELIST="${PRJDIR}/src/*.vala" +UI_FILELIST="${PRJDIR}/ui/*.glade" + +## +# code +## +xgettext --language=C --escape --package-name=$PROJECT --default-domain=$PROJECT --add-comments=/// \ + -k_ -kQ_ -kC_ -kN_ -kNC_ -kg_dgettext -kg_dcgettext \ + -kg_dngettext -kg_dpgettext -kg_dpgettext2 -kg_strip_context -F -n -o \ + $PRJDIR/$PO_DIR_NAME/source.pot $C_FILELIST + +xgettext --language=C --escape --package-name=$PROJECT --default-domain=$PROJECT --add-comments=/// \ + -k_ -kQ_ -kC_ -kN_ -kNC_ -kg_dgettext -kg_dcgettext \ + -kg_dngettext -kg_dpgettext -kg_dpgettext2 -kg_strip_context -F -n -o \ + $PRJDIR/$PO_DIR_NAME/glade.pot $C_FILELIST + +msgcat -o $PRJDIR/$PO_DIR_NAME/$PROJECT.pot --use-first $PRJDIR/$PO_DIR_NAME/source.pot $PRJDIR/$PO_DIR_NAME/glade.pot + +rm $PRJDIR/$PO_DIR_NAME/source.pot +rm $PRJDIR/$PO_DIR_NAME/glade.pot + +[ 0 != $? ] && echo "xgettext failed ;-(" && exit 1 +[ ! -e $PRJDIR/$PO_DIR_NAME/$PROJECT.pot ] && echo "No strings found ;-(" && exit 1 + +for d in $PRJDIR/$PO_DIR_NAME/*; do + [ ! -d $d ] && continue + + if [ -e $d/$PROJECT.po ]; then + echo "Merging '${d##*/}' locale" && msgmerge -F -U $d/$PROJECT.po $PRJDIR/$PO_DIR_NAME/$PROJECT.pot + [ 0 != $? ] && echo "msgmerge failed ;(" && exit 1 + else + echo "Creating '${d##*/}' locale" && msginit -l ${d##*/} -o $d/$PROJECT.po -i $PRJDIR/$PO_DIR_NAME/$PROJECT.pot + [ 0 != $? ] && echo "msginit failed ;(" && exit 1 + fi + +done diff --git a/util/valadoc.sh b/util/valadoc.sh new file mode 100755 index 0000000..b5a62b5 --- /dev/null +++ b/util/valadoc.sh @@ -0,0 +1,19 @@ +#!/bin/bash + +EXE_PATH="`readlink -f $0`" +PRJ_PATH="${EXE_PATH%/*/*}" +OUT_PATH="$PRJ_PATH/doc/html/latex-struct" +OUT_INTERNAL_PATH="$PRJ_PATH/doc/html/latex-struct-internals" + +echo "Generating documentation..." +rm -rf "$OUT_PATH" +valadoc --no-protected -o "$OUT_PATH" -b "$PRJ_PATH/src" `find "$PRJ_PATH/src" -name "*.vapi" -or -name "*.vala"` \ + --pkg=gtk+-3.0 --pkg=gee-0.8 --pkg=gmodule-2.0 --pkg=posix +firefox "$OUT_PATH"/latex-struct/index.htm &>/dev/null + +#echo "Generating internal documentation..." +#rm -rf "$OUT_INTERNAL_PATH" +#valadoc -o "$OUT_INTERNAL_PATH" -b "$PRJ_PATH/src" `find "$PRJ_PATH/src" -name "*.vapi" -or -name "*.vala"` \ +# --pkg=gtk+-3.0 --pkg=gee-0.8 --pkg=gmodule-2.0 --pkg=posix --internal + +#firefox "$OUT_INTERNAL_PATH"/latex-struct-internals/index.htm &>/dev/null diff --git a/valadoc_env b/valadoc_env new file mode 100644 index 0000000..2e03d6c --- /dev/null +++ b/valadoc_env @@ -0,0 +1,2 @@ +BASEDIR=src +PKGS=gtk+-3.0 gee-0.8 gmodule-2.0 posix From 5a8b0a4412f1264acc41a957a7dbbbe1b447beb1 Mon Sep 17 00:00:00 2001 From: Kolan Sh Date: Tue, 22 Jul 2014 16:25:45 +0400 Subject: [PATCH 7/7] Bumped version number to 0.0.1 --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 4dbb510..9bc4c95 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,7 +4,7 @@ CMAKE_MINIMUM_REQUIRED (VERSION 2.8) SET (MAJOR 0) SET (MINOR 0) -SET (PATCH 0) +SET (PATCH 1) SET (VERSION ${MAJOR}.${MINOR}.${PATCH}) LIST (APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake)