LaTeX - kodowanie znaków a polecenie \input

Mathematica, Matlab, Statistica, LaTeX i wszelkiego rodzaju oprogramowanie przydatne matematykowi w pracy. Miejsca w sieci poświęcone zagadnieniu.
Awatar użytkownika
yorgin
Użytkownik
Użytkownik
Posty: 12680
Rejestracja: 14 paź 2006, o 12:09
Płeć: Mężczyzna
Lokalizacja: Kraków
Podziękował: 17 razy
Pomógł: 3440 razy

LaTeX - kodowanie znaków a polecenie \input

Post autor: yorgin »

Chciałbym podzielić spory plik .tex na kilka części. W domyśle cały dokument ma być w języku polskim. Język polski ładuję w głównym pliku pakietami

Kod: Zaznacz cały

usepackage[english,polish]{babel}
usepackage{polski}
usepackage[cp1250]{inputenc}
(wiem, że można zapewne łatwiej, ale bez pierwszej linijki nie wczytuje mi pakietu językowego, a bez trzeciej nie koduje poprawnie znaków polskich w dokumencie).

Z głównym plikiem nie mam problemu.

Teraz tworzę plik pomocniczy, gdzie wrzucam na potrzeby przykładu kod

Kod: Zaznacz cały

	extbf{1.1} $x+2=4$\  \
Rozwiązanie: $x=2$
Dołączam powyższy kod do głównego dokumentu klasycznym poleceniem

Kod: Zaznacz cały

input %nazwa pliku
i wszystko byłoby ok, gdyby nie fakt, iż główny plik nie radzi sobie z kodowaniem znaków z załadowanego pliku, czego efekt widać poniżej:
Problem.jpg
Problem.jpg (5.88 KiB) Przejrzano 2093 razy
Próbowałem przestawić kodowanie znaków w głównym pliku na utf8 (domyślam się, że tak właśnie koduje znaki w pliku dodatkowym), ale wtedy główny plik nie chce się kompilować, gdyż utf8 wypluwa błędy na polskich znakach. Deklarowanie języka w pliku pomocniczym poprzedzające powyższy kod również nie działa.

Jakieś pomysły, jak można to rozwiązać?
Awatar użytkownika
lukasz.przontka
Użytkownik
Użytkownik
Posty: 234
Rejestracja: 31 maja 2009, o 12:31
Płeć: Mężczyzna
Lokalizacja: Suszec
Pomógł: 37 razy

LaTeX - kodowanie znaków a polecenie \input

Post autor: lukasz.przontka »

Trzeba zmienić kodowanie dołączanego pliku na cp1250 używając np. Notepad++ lub ewentualnie za pomocą lini poleceń

Kod: Zaznacz cały

iconv -f kodowanie_pliku -t kodowanie_jakie_chcemy_mieć plik.tex
a4karo
Użytkownik
Użytkownik
Posty: 22487
Rejestracja: 15 maja 2011, o 20:55
Płeć: Mężczyzna
Lokalizacja: Bydgoszcz
Podziękował: 44 razy
Pomógł: 3858 razy

LaTeX - kodowanie znaków a polecenie \input

Post autor: a4karo »

yorgin jakiego edytora używasz do pisania plików źródłowych? Problemem jest najprawdopodobniej to, że każdy z nich jest zapisany w innym standardzie. Jak to ujednolicisz (czyli wszystko tak jak plik główny), to będzie ok. Rzuć okiem na opcję "zapisz jako..."
Awatar użytkownika
yorgin
Użytkownik
Użytkownik
Posty: 12680
Rejestracja: 14 paź 2006, o 12:09
Płeć: Mężczyzna
Lokalizacja: Kraków
Podziękował: 17 razy
Pomógł: 3440 razy

LaTeX - kodowanie znaków a polecenie \input

Post autor: yorgin »

lukasz.przontka pisze:Trzeba zmienić kodowanie dołączanego pliku na cp1250 używając np. Notepad++
To wystarczyło. Dzięki wielkie
a4karo pisze:yorgin jakiego edytora używasz do pisania plików źródłowych? Problemem jest najprawdopodobniej to, że każdy z nich jest zapisany w innym standardzie. Jak to ujednolicisz (czyli wszystko tak jak plik główny), to będzie ok. Rzuć okiem na opcję "zapisz jako..."
Używam WinEdt. Nie za bardzo wiem, co rozumiesz przez ujednolicenie standardu. Niemniej problem został rozwiązany i co więcej dzięki powyższemu rozwiązaniu chyba nieco zmienię sposób tworzenia każdego dużego pliku.
a4karo
Użytkownik
Użytkownik
Posty: 22487
Rejestracja: 15 maja 2011, o 20:55
Płeć: Mężczyzna
Lokalizacja: Bydgoszcz
Podziękował: 44 razy
Pomógł: 3858 razy

LaTeX - kodowanie znaków a polecenie \input

Post autor: a4karo »

To co zrobiłeś, to własnie ujednolicenia standardu: zakodowałes wszystkie pliki w standardzie cp1250.
Poprzednio prawdopodobnie było tak, że plik główny był w standardzie cp1250, a pliki dołączane w innym.

Niektóre edytory w opcji"zapisz jako..." umożliwiaja zmiane kodowania.
Awatar użytkownika
yorgin
Użytkownik
Użytkownik
Posty: 12680
Rejestracja: 14 paź 2006, o 12:09
Płeć: Mężczyzna
Lokalizacja: Kraków
Podziękował: 17 razy
Pomógł: 3440 razy

LaTeX - kodowanie znaków a polecenie \input

Post autor: yorgin »

a4karo pisze:To co zrobiłeś, to własnie ujednolicenia standardu: zakodowałes wszystkie pliki w standardzie cp1250.
Poprzednio prawdopodobnie było tak, że plik główny był w standardzie cp1250, a pliki dołączane w innym.
Teraz rozumiem. I zaprzeczam. Wszystkie pliki miałem pierwotnie kodowane tak samo (ale tak, że mogłem polskie znaki zapisać już na poziomie kodu), natomiast kompilacja zmieniała je na cp1250. Wczytanie kodu pomocniczego do kodu głównego nie przetrawiało kodowania na cp1250, lecz zostawiało oryginalne (czyli według notepada++ ANSI).
a4karo
Użytkownik
Użytkownik
Posty: 22487
Rejestracja: 15 maja 2011, o 20:55
Płeć: Mężczyzna
Lokalizacja: Bydgoszcz
Podziękował: 44 razy
Pomógł: 3858 razy

LaTeX - kodowanie znaków a polecenie \input

Post autor: a4karo »

No i wlasnie dlatego się krzaczyło. Dopiero jak zapisałes pliki pomocnicze w standardzie cp1250, to wszystko zagrało.
ODPOWIEDZ