GoGPT Best VPN GoSearch

Ulubiona usługa OnWorks

texexpand — Online w chmurze

Uruchom texexpand w bezpłatnym dostawcy hostingu OnWorks w systemie Ubuntu Online, Fedora Online, emulatorze online systemu Windows lub emulatorze online systemu MAC OS

Jest to polecenie texexpand, które można uruchomić u dostawcy bezpłatnego hostingu OnWorks przy użyciu jednej z naszych wielu bezpłatnych stacji roboczych online, takich jak Ubuntu Online, Fedora Online, emulator online systemu Windows lub emulator online systemu MAC OS

PROGRAM:

IMIĘ


texexpand - rozwiń instrukcje \input i \include w pliku TeX

OPIS


Ogólny mechanizm tłumaczenia:

Główny program latex2html wywołuje texexpand z nazwą dokumentu, aby go rozwinąć
jego instrukcji \input i \include, tutaj nazywanych także „łączeniem”, i napisać listę
uwrażliwiony styl, klasa, dane wejściowe lub nazwy plików. Kiedy texexpand zakończy działanie, wszystko
jest zawarty w jednym pliku TMP_foo. (zakłada się, że foo.tex to nazwa dokumentu
Tłumaczyć).

W tej wersji texexpand dba o następujące środowiska, które mogą obejmować pliki /
granice sekcji: a) \begin{comment} b) %begin{comment} c) \begin{any} wprowadzone za pomocą
\excludecomment d) %begin{any} e) \begin{verbatim} f) \begin{latexonly} g)
%begin{tylko lateks}

e) - g) zapobiega rozwijaniu plików wejściowych przez texexpand, ale zawartość środowiska zostaje przeniesiona
całkowicie do pliku wyjściowego.

Wraz z każdym połączeniem \input itp. pojawiają się tzw. znaczniki %%%texexpand
towarzyszącej granicy.

Kiedy latex2html wczytuje plik wyjściowy, używa tych znaczników do zapisania każdej części do pliku a
oddzielny plik i przetwarzaj je dalej.

Szczegółowy technical wskazówki:

1. %begin{latexonly} i %end{latexonly} muszą znajdować się w osobnej linii. Wszystko pomiędzy
te znaczniki (w tym znaczniki) są odrzucane.

2. \begin{latexonly} i \end{latexonly} muszą znajdować się w osobnej linii. Wszystko pomiędzy
te tagi (w tym tagi) nie są rozwinięte.

3. [%\]begin{"wykluczyć"} i [%\]end{"wykluczyć"} muszą znajdować się w osobnej linii.
Wszystko pomiędzy tymi znacznikami (w tym znaczniki) jest odrzucane.

4. \begin{verbatim/verbatim*} i \end{verbatim/verbatim*} muszą znajdować się w osobnej linii.
Wszystko pomiędzy tymi tagami (w tym tagi) nie jest rozwijane.

5. Zakres takich tagów może obejmować kilka plików. Tag otwierający dla
latexonly może wystąpić na innym poziomie dołączania niż znacznik zamykający. Tag otwierający
for verbatim/„wykluczyć” musi występować w tym samym pliku co znacznik zamykający.

6. Ostrzeżenia są drukowane po przeanalizowaniu dokumentu i pozostawieniu otwartych znaczników.

7. W środowisku „do wykluczenia”/dosłownego texexpand nie rozpozna ŻADNEGO polecenia
z wyjątkiem odpowiedniego znacznika zamykającego. Nie może być żadnych konstrukcji zagnieżdżonych. Ten
zachowanie jest identyczne jak w przypadku LaTeX-a.

8. \begin{latexonly},\end{latexonly} mogą być zagnieżdżone, natomiast
%begin{latexonly},%end{latexonly} nie może być zagnieżdżone.

9. Znacznik „%” nie może zamknąć znacznika „\” i odwrotnie.

10. Każdy \dokument(klasa|styl), \usepackage, \input i \include muszą znajdować się na a
oddzielna linia.

11. Wszystko za `%', które nie jest poprzedzone `\', jest traktowane jako komentarz, tzn.
jest drukowany, ale nie interpretowany.

12. Jeśli jakiekolwiek polecenie wymienione w punkcie 10. jest poprzedzone wystąpieniem `\verb' lub `\latex' to
NIE jest to interpretowane. To powoduje awarię w przypadku takich linii: bla bla \verb+foo foo+
\input{bar} % bar nie zostanie załadowany!

13. Pakiety dostarczane przez \usepackage są obsługiwane w taki sam sposób jak `opcje' w
\dokument(klasa|styl), tj. są one dołączane, gdy opcja -auto_exclude jest wyłączona, pakiet
nie znajduje się w @dont_include *LUB* pakiet znajduje się w @do_include (nowy). Są dodawane do
style wraz z ich opcjami, jeśli sam plik nie został scalony.
\documentclass[options]{class} wyszukuje każdą opcję.clo,
\documentstyle[options]{style} wyszukuje każdą opcję.sty.
\usepackage[options]{packages} wyszukuje każdy pakiet.sty.

14. Każdy katalog texinputs jest przeszukiwany pod kątem plików/stylów wejściowych. Jeśli kończy się na `//',
przeszukiwane jest całe drzewo podkatalogów.

15. \input / \include scala podany plik (jeśli występuje pod podaną nazwą lub z rozszerzeniem .tex
rozszerzenie), jeśli jego nazwa bazowa znajduje się w @do_include lub jeśli nie znajduje się w @dont_include lub jeśli
podana nazwa pliku nie kończy się na .sty/.clo/.cls, gdy ustawiono opcję -auto_exclude.

Komentarz

Rozpoznaje \documentclass, \documentstyle, \usepackage, \RequirePackage,
\begin{verbatim}...\end{verbatim}, %begin{latexonly}...%end{latexonly},
\begin{latexonly}...\end{latexonly}, \input, \include, \verb, \latex \endinput,
\end{document} \includecomment, \excludecomment \begin{"wykluczyć"}, \end{"wykluczyć"}
%begin{"wykluczyć"}, %end{"wykluczyć"}

krwawy Szczegóły


Dołącz i przeanalizuj plik. Ta procedura jest rekurencyjna, zobacz także
&process_input_include_file, &process_document_header i &process_package_cmd.

Dwie globalne flagi kontrolują stany texexpand.
o $active ma wartość true, jeśli powinniśmy interpretować linie w celu rozwinięcia plików, sprawdzenia pakietów,
itd.
o $mute ma wartość true, jeśli powinniśmy zapobiec przedostawaniu się linii do pliku wyjściowego.

Mamy trzy ogólne stany texexpand:
1) zinterpretuj linie i przekaż je do pliku wyjściowego. Jest to normalny przypadek.
Odpowiednie: $active true, $mute false

2) interpretować minimalne i tłumić je
Dzieje się tak podczas analizowania środowiska komentarzy, które
również zachowałby swoją treść z LaTeX-a. => $aktywny fałsz, $wyciszenie prawda

3) zinterpretuj minimal i przekaż linie do pliku wyjściowego
Dzieje się to w środowisku dosłownym lub wyłącznie lateksowym.
Linię oczywiście należy przynajmniej zinterpretować, aby określić znacznik zamykający.
=> $aktywny fałsz, $wyciszenie fałszywy

Każde środowisko może rozciągać się na kilka plików dołączanych. Dowolne środowisko, z wyjątkiem dosłownego
i latexonly może mieć znacznik otwierający lub zamykający na różnych poziomach wejściowych. Komentarz
a środowiska Verbatim nie mogą być zagnieżdżane, jak ma to miejsce w przypadku LaTeX-a. Musimy przynajmniej przeanalizować
środowiska verbatim/komentarze w środowiskach tylko lateksowych, aby wyłapać fałszywe tagi tylko lateksowe.

Schemat działania: Pięć funkcji wpływa na zachowanie texexpand. o &process_file otwiera plik
podany plik i analizuje część niebędącą komentarzem, aby ustawić $active i $mute (patrz wyżej).
Wywołuje &interprete w celu zinterpretowania treści niebędącej komentarzem i albo kontynuuje operację
następnej linii swojego pliku lub kończy się, jeśli &interprete wykrył \end{document} lub an
\endinput.

o &interprete obsługuje niektóre znaczniki LaTeX w odniesieniu do trzech stanów kontrolowanych przez
$aktywny i $wyciszony. Jeśli chodzi o \input|include, \dokument(klasa|styl) i
\(use|Require) spakuj funkcje &process_input_include_file, &process_document_header,
i &process_package_cmd są wywoływane odpowiednio.

o Te trzy funkcje sprawdzają, czy nazwa pliku lub pliki opcji są włączone, czy wyłączone
łączenie (przez TEXE_DO_INCLUDE lub TEXE_DONT_INCLUDE). Każdy plik, który ma zostać dołączony, zostanie
„scalony” z bieżącym plikiem, czyli w tym miejscu wywoływana jest funkcja &process_file
w czasie (rekurencyjnie). Spowoduje to zatrzymanie interpretacji w bieżącym wierszu pliku, start
z nowym plikiem do przetworzenia i kontynuuje od następnej linii zaraz po utworzeniu nowego pliku
zinterpretowane do końca.

Drzewo wywołań (noweb+xy.sty przydałoby się tutaj):

główny
|
v
+->plik_procesowy
| |
| w
| interprete (w odniesieniu do bieżącego wiersza, jeden z tych trzech)
| | | |
| ww
| proces_input_include_file proces_nagłówek_dokumentu proces_pakiet_cmd
| | | |
| ww
+------------------+---------------------------+---------------- --------+

Błędy: o Ponieważ środowisko tylko lateksowe nie jest analizowane, jego zawartość może zostać wprowadzona
środowiska, które nie są rozpoznawane.

o Znacznik zamykający dla latexonly nie zostanie znaleziony, jeśli jest ukryty w pliku wejściowym.

o Jeszcze jeden znacznik środowiska w każdej linii!

o Gdybym musiał zaprojektować przypadki testowe dla tej bestii, natychmiast bym się rozpadł
w chmurę logiczną.

Uwagi:

o OK, zaprojektowałem dla niego przypadki testowe. Proszę zapoznać się z testem „rozwiń” testu regresji
suite w module deweloperskim repozytorium l2h.

o -funkcja unsegmentowania: W tym (rzadkim) przypadku użytkownik chce przetłumaczyć segmentację
dokument nie w segmentach, ale w całości (powiedzmy do testowania). Umożliwiamy to poprzez rozpoznawanie
polecenie \segment w &interprete, powodujące, że plik segmentowy będzie traktowany jak \input
ale utrata pierwszych linii przed \startdocument (włącznie), zgodnie z kontrolą poprzez
$plik segmentowy. Informacje na temat segmentacji dokumentu najlepiej znajdziesz w sekcji „Dokument”.
Segmentacja” podręcznika LaTeX2HTML.

OSTRZEŻENIA


To narzędzie jest automatycznie konfigurowane i tworzone do pracy w konfiguracji lokalnej. Jeśli to
zmiany w ustawieniach (np. przeniesienie niektórych poleceń zewnętrznych), skrypt musi zostać zmieniony
ponownie skonfigurowany.

Dla autorów


Na podstawie texexpand autorstwa Roberta Thau, laboratorium MIT AI, z modyfikacjami autorstwa
Franza Vojika[email chroniony]>
Nikos Drakos[email chroniony]>
Sebastiana Rahtza[email chroniony]>
Maksymilian Ott <[email chroniony]>
Marcin Boyer
Herbert Łabędź
Jensa Lippmanna

Korzystaj z texexpand online, korzystając z usług onworks.net


Darmowe serwery i stacje robocze

Pobierz aplikacje Windows i Linux

Komendy systemu Linux

Ad




×
reklama
❤️Zrób zakupy, zarezerwuj lub kup tutaj — bezpłatnie, co pomaga utrzymać bezpłatne usługi.