2009-10-27 15 views
5

Próbuję znaleźć dobre narzędzie do pisania. Powiedzmy, że to nie jest łatwa decyzja. (Ogólne są zbyt ogólne, a konkretne zbyt szczegółowe :))Minimalny nowyb z przykładowym odwołaniem

Między innymi mam już uruchomiony noweb, ale mam problemy z uzyskiwaniem wyników, jakich oczekuję. nowebwikipedia page ma minimalny przykład, który buduje poprawnie

noweave -index -latex hello.noweb > hello.tex && pdflatex hello && pdflatex hello 

ale nie ma żadnych odsyłaczy na końcu każdego fragmentu. Na przykład CWEB ma wskaźniki takie jak "Ten kod jest używany w sekcji 12." i "Zobacz także sekcje 5 i 7." Czy po prostu brakuje tej funkcji od noweb, czy też brakuje mi kroku w kompilacji?

Odpowiedz

4

Czy po prostu brakuje tej funkcji w nowymb, czy brakuje mi kroku w kompilacji?

Ani: noweb używa o wiele bardziej subtelnych znaczników niż przywykło widzieć z CWEB. W przypadku przykładu Wikipedii trzeci fragment (1c) pojawia się w porcjach 1a i 1b. Informacje te są skondensowane w jeden "1", który pojawia się w nawiasach po prawej stronie definicji.

Aby uzyskać długie odsyłaczy w stosowaniu stylu CWEB

\noweboptions{longxref} 
+0

Dzięki za pomoc, Norman. Mam rację, sądząc, że przepływ pracy stąd uruchamia 'noweave -x -n -latex hello.nw> hello.tex' na źródle, a następnie' \ input' plik wynikowy do dokumentu sterownika zawierającego odpowiednie '\ noweboptions 'i inwokacje? –

+0

Aha, lub użyj opcji '-delay'. Okay, teraz to naprawdę idzie bardzo dobrze. Dzięki za wspaniałe narzędzie! –

+0

@Will: Masz pomysł. Twój przepływ pracy zależy od tego, czy wybierasz "jeden dokument to jeden plik źródłowy", czy "jeden dokument składa się z wielu plików źródłowych". –

1

Należy powinien uzyskać, dla tego przykładu WP, odniesienie do sekcji licencji z każdej z dwóch części w sekcji Hello World. Na końcu nie dostaniesz żadnych list części lub identyfikatorów, chyba że powiesz o nich lateksem.

Aby uzyskać listę elementów sieciowych, spróbuj wstawić \nowebchunks przy końcu dokumentu (tj. Po wyświetleniu ostatniego fragmentu) i dodać przełącznik -x do wywołania nowegob.

Aby uzyskać listę identyfikatorów, spróbuj umieścić \nowebindex w podobnym miejscu.

Powiązane problemy