Discussion:
liczne małe obrazki na stronie
(Wiadomość utworzona zbyt dawno temu. Odpowiedź niemożliwa.)
flamenco108
2012-04-21 19:39:33 UTC
Permalink
Witam.

Strasznie dawno mnie tu nie było, czy coś się zmieniło? Lista
pl.comp.dtp.tex.gust nie działa? Bardzo proszę o pomoc, bo czegoś z
pewnością nie rozumiem:

Przymierzam się do napisania podręcznika (nie pytajcie, do czego, ale
chodzi o system pisma). Ważnym elementem przedstawienia mają być
liczne i niewielkie obrazki. Oczywiście, lepiej by było, gdybym mógł
zamiast nich składać krzywe w METAFONCIE, ale nie sądzę, żebym na czas
zdołał go wystarczająco opanować. Podpisy pod obrazkami (caption)
miałem zamiar użyć jako rozszyfrowanie podanego na obrazku znaku. W
tym celu oczywiście wycinam numerację z caption, zostawiam tylko
tekst. I tak dalej. Problemy przy tej okazji pojawiają się rozmaite,
np. nie mogę po prostu wrzucać dowolnej liczby linijek z obrazkami w
\minipage. Po paru (dwóch, jeśli pamiętam), LaTeX wyrzuca resztę na
następną stronę. Oszukuję dopisując między nimi tekst, ale nie o to mi
chodzi, bo nie zawsze mam dość wody do dolania.

Próbuję przyjąć jakieś założenia, stworzyć standardowe bloki, w
których grafika będzie przetwarzana. Z moich obliczeń mam do wrzucenia
tysiące takich małych obrazków, więc jeżeli będę miał dużo klepania,
to tylko rozbolą mnie palce.

Oto przykład kodu, jaki ułożyłem dla obrazków układanych w rzędy (choć
chciałbym móc kombinować z obrazkami porozrzucanymi po tekście):

\subfloat{Przykłady:}
\\
\subfloat{
%2cm czyli 6 sztuk?
\begin{minipage}{2cm}
\includegraphics[width=2cm]{img/dici/stupor.png}
\caption*{stupor}
\end{minipage}
\begin{minipage}{2cm}
\includegraphics[width=2cm]{img/dici/parkan.png}
\caption*{parkan}
\end{minipage}
\begin{minipage}{2cm}
\includegraphics[width=2cm]{img/dici/koper.png}
\caption*{koper}
\end{minipage}
\begin{minipage}{2cm}
\includegraphics[width=2cm]{img/dici/super.png}
\caption*{super}
\end{minipage}
\begin{minipage}{2cm}
\includegraphics[width=2cm]{img/dici/topur.png}
\caption*{topór}
\end{minipage}
\begin{minipage}{2cm}
\includegraphics[width=2cm]{img/dici/p1ard.png}
\caption*{piard}
\end{minipage}
}
\\
\subfloat{
%2cm czyli 6 sztuk?
\begin{minipage}{2cm}
\includegraphics[width=2cm]{img/dici/p1ern1k.png}
\caption*{piernik}
\end{minipage}
\begin{minipage}{2cm}
\includegraphics[width=2cm]{img/dici/klepar2.png}
\caption*{Kleparz}
\end{minipage}
\begin{minipage}{2cm}
\includegraphics[width=2cm]{img/dici/wa2p1er2.png}
\caption*{wąpierz}
\end{minipage}
\begin{minipage}{2cm}
\includegraphics[width=2cm]{img/dici/lamp1ar2.png}
\caption*{lampiarz}
\end{minipage}
}
\end{figure}

Oto przykład kodu, jaki ułożyłem dla zestawu obrazek+szerszy opis:

\begin{figure}[htbp]%\clearpage \begin{figure}[htbp]
%2/10cm
\subfloat{
\begin{minipage}{2cm}
\includegraphics[width=2cm]{img/dici/ter.png}
%\caption*{}
\end{minipage}
\begin{minipage}{10cm}
-tor, -tar, -ter, -tu(ó)r, -tarz(ż)
\end{minipage}
}
\\
\subfloat{
\begin{minipage}{12cm}
Przykłady:

traktorem, wiertarka, wiaterek, matura, \textbf{turysta}, korytarz
\end{minipage}
}
\end{figure}

Pytań mam kilka:

1. Czy jest jakaś standardowa technika umieszczania licznych, małych
bitmap, w licznych linijkach w tekście tak, żebym nie musiał liczyć,
ile już linijek kazałem mu złożyć, a on posłusznie wygeneruje mi całą
stronę z tymi seriami obrazków?
2. Chodzi mi o to, żeby móc na podstawie tego samego kodu generować
różne formaty książek z niewielkimi tylko poprawkami (tj. standardowa
polska strona A4, jak ją ułożył Marcin Woliński oraz strona A4 z
marginesami, jak przyzwyczaiły nas procesory tekstu i to samo dla
formatu A5).
3. Czy można stworzyć coś w rodzaju funkcji, która każe mu w
odpowiednich miejscach wstawiać taki kod, gdy ja tylko zastosuję
odpowiednie wywołanie (np.

linia_obrazkow(liczba_obrazkow_w_linii)
{
wstaw_obrazek(adres_obrazka;podpis);
wstaw_obrazek(adres_obrazka;podpis);
wstaw_obrazek(adres_obrazka;podpis);
wstaw_obrazek(adres_obrazka;podpis);
wstaw_obrazek(adres_obrazka;podpis);
wstaw_obrazek(adres_obrazka;podpis);
wstaw_obrazek(adres_obrazka;podpis);
wstaw_obrazek(adres_obrazka;podpis);
wstaw_obrazek(adres_obrazka;podpis);
wstaw_obrazek(adres_obrazka;podpis);
}
a on (LaTeX?) w tym miejscu wygeneruje odpowiedni kod (np. taki jak
wyżej)?

Z braku wiedzy zacząłem się wahać, czy nie lepiej po prostu generować
kod funkcji w języku, jaki troszeczkę znam (php, bash), a dopiero za
jego pośrednictwem kierować wszystko do LaTeXa. Jednak z lektury
artykułów na gust.org.pl wynika, że mogę takie funkcje tworzyć. Nie
jestem programistą, tylko zwykłym humanistą, więc natrafiam na jakąś
barierę w zrozumieniu filozofii LaTeXa, bez przekroczenia której cały
tekst książki będzie strasznie nadmiarowy.

Z góry dziękuję za wszelką pomoc.
--
Krzysztof Smirnow
***@stenografia.pl
::|Nondum lingua sum, dextra peregit opus|::
http://www.stenografia.pl
Jarosław Sokołowski
2012-04-21 22:53:25 UTC
Permalink
(nie pytajcie, do czego, ale chodzi o system pisma). Ważnym elementem
przedstawienia mają być liczne i niewielkie obrazki. Oczywiście, lepiej
by było, gdybym mógł zamiast nich składać krzywe w METAFONCIE, ale nie
sądzę, żebym na czas zdołał go wystarczająco opanować.
Z tym "lepiej", to wcale nie taka oczywista rzecz. METAFONT, choć
zacny to język, potrafi robić jedynie fonty bitmapowe, a te mają
dzisiaj ograniczone zastosowanie. Ja bym spróbował te wszystkie
stenograficzne zawijasy wessać do FontForge z dodatkiem autotrace.
Bardzo szybko można w ten sposób uzyskać wektorowe skalowalne fonty
zawierajoće po jakieś dwie setki obrazków każdy. Łatwiej się z czymś
takim obchodzić, niż z tysiącami plików PNG.
3. Czy można stworzyć coś w rodzaju funkcji, która każe mu w
odpowiednich miejscach wstawiać taki kod, gdy ja tylko zastosuję
odpowiednie wywołanie (np.
linia_obrazkow(liczba_obrazkow_w_linii)
{
wstaw_obrazek(adres_obrazka;podpis);
wstaw_obrazek(adres_obrazka;podpis);
wstaw_obrazek(adres_obrazka;podpis);
wstaw_obrazek(adres_obrazka;podpis);
wstaw_obrazek(adres_obrazka;podpis);
wstaw_obrazek(adres_obrazka;podpis);
wstaw_obrazek(adres_obrazka;podpis);
wstaw_obrazek(adres_obrazka;podpis);
wstaw_obrazek(adres_obrazka;podpis);
wstaw_obrazek(adres_obrazka;podpis);
}
a on (LaTeX?) w tym miejscu wygeneruje odpowiedni kod (np. taki jak
wyżej)?
Nie wiem, czy dobrze zrozumiałem. Czy chodzi o stworzenie makra
\wstawobrazek z dwoma argumentami: obrazek i podpis pod nim?
Taka możliwość oczywiście istnieje.
Z braku wiedzy zacząłem się wahać, czy nie lepiej po prostu generować
kod funkcji w języku, jaki troszeczkę znam (php, bash), a dopiero za
jego pośrednictwem kierować wszystko do LaTeXa. Jednak z lektury
artykułów na gust.org.pl wynika, że mogę takie funkcje tworzyć. Nie
jestem programistą, tylko zwykłym humanistą, więc natrafiam na jakąś
barierę w zrozumieniu filozofii LaTeXa, bez przekroczenia której cały
tekst książki będzie strasznie nadmiarowy.
Filozofia LaTeXa dotycząca tworzenia makr jest prymitywna i błądzi po
manowcach. Zdecydowanie lepiej opisywać makra w plainie, jak to D.E.K.
przykazał.
Z góry dziękuję za wszelką pomoc.
Ja bym takie makro pewnie napisał choćby i zaraz, ale nie do końca
zrozumiałem jak dokładnie ma ono działać.
--
Jarek
flamenco108
2012-04-22 11:58:02 UTC
Permalink
Post by Jarosław Sokołowski
(nie pytajcie, do czego, ale chodzi o system pisma). Ważnym elementem
przedstawienia mają być liczne i niewielkie obrazki. Oczywiście, lepiej
by było, gdybym mógł zamiast nich składać krzywe w METAFONCIE, ale nie
sądzę, żebym na czas zdołał go wystarczająco opanować.
Z tym "lepiej", to wcale nie taka oczywista rzecz. METAFONT, choć
zacny to język, potrafi robić jedynie fonty bitmapowe, a te mają
dzisiaj ograniczone zastosowanie. Ja bym spróbował te wszystkie
stenograficzne zawijasy wessać do FontForge z dodatkiem autotrace.
Bardzo szybko można w ten sposób uzyskać wektorowe skalowalne fonty
zawierajoće po jakieś dwie setki obrazków każdy. Łatwiej się z czymś
takim obchodzić, niż z tysiącami plików PNG.
Nie wiem, czy dobrze zrozumiałem. Czy chodzi o stworzenie makra
\wstawobrazek z dwoma argumentami: obrazek i podpis pod nim?
Taka możliwość oczywiście istnieje.
Tak tak, makra, to się nazywa makro. ;-)
Post by Jarosław Sokołowski
Filozofia LaTeXa dotycząca tworzenia makr jest prymitywna i błądzi po
manowcach. Zdecydowanie lepiej opisywać makra w plainie, jak to D.E.K.
przykazał.
Jakkolwiek tego nie robić, chodzi mi po prostu o możliwość zrobienia
takich właśnie makr, które wyglądałyby np tak (na podstawie
zaprezentowanego mojego kodu):

makro [1] pozwalające robić obiekt

|obrazek |opis obok obrazka
|podpis pod obrazkiem|

Z notacją np. tak:

\begin{obrazek_z_opisem}
\obraz{nazwa_obrazka,podpis}
\begin{opis}
Lorem ipsum dolor sit amet. Ale chcę tu móc wstawiać więcej niż jedno
zdanie i do tego znaki przestankowe.
\end{opis}
\obraz{nazwa_obrazka,podpis}
\begin{opis}
Lorem ipsum dolor sit amet. Ale chcę tu móc wstawiać więcej niż jedno
zdanie i do tego znaki przestankowe.
\end{opis}
\obraz{nazwa_obrazka,podpis}
\begin{opis}
Lorem ipsum dolor sit amet. Ale chcę tu móc wstawiać więcej niż jedno
zdanie i do tego znaki przestankowe.
\end{opis}
\obraz{nazwa_obrazka,podpis}
\begin{opis}
Lorem ipsum dolor sit amet. Ale chcę tu móc wstawiać więcej niż jedno
zdanie i do tego znaki przestankowe.
\end{opis}
\end{obrazek_z_opisem)

W kodzie tego makra można ustalić szerokości dla obszaru obrazka z
podpisem oraz dla obszaru opisu z boku i w ten sposób dopasować je do
różnych formatów druku.


oraz makro [2] pozwalające zrobić obiekt

|obrazek |obrazek |obrazek |
|podpis pod obrazkiem|podpis pod obrazkiem|podpis pod obrazkiem|

Z notacją np. taką:

\begin{obrazki}
\obrazek{nazwa_obrazka,podpis_pod_obrazkiem}
\obrazek{nazwa_obrazka,podpis_pod_obrazkiem}
\obrazek{nazwa_obrazka,podpis_pod_obrazkiem}
\obrazek{nazwa_obrazka,podpis_pod_obrazkiem}
\obrazek{nazwa_obrazka,podpis_pod_obrazkiem}
\obrazek{nazwa_obrazka,podpis_pod_obrazkiem}
\obrazek{nazwa_obrazka,podpis_pod_obrazkiem}
\obrazek{nazwa_obrazka,podpis_pod_obrazkiem}
\obrazek{nazwa_obrazka,podpis_pod_obrazkiem}
\obrazek{nazwa_obrazka,podpis_pod_obrazkiem}
\obrazek{nazwa_obrazka,podpis_pod_obrazkiem}
\obrazek{nazwa_obrazka,podpis_pod_obrazkiem}
\obrazek{nazwa_obrazka,podpis_pod_obrazkiem}
\obrazek{nazwa_obrazka,podpis_pod_obrazkiem}
\obrazek{nazwa_obrazka,podpis_pod_obrazkiem}
\obrazek{nazwa_obrazka,podpis_pod_obrazkiem}
\end{obrazki}

W kodzie tego makra ustawiam też liczbę obrazków w rzędzie.

Mój kod, który zamieściłem poprzednio, nie dawał możliwości
zamieszczenia więcej niż 2 linijek obiektów jak w makro[1], podobnie
było dla obiektów jak w makro[2].
Pod tym adresem jest obrazek, który pokazuje moją intencję, wyciąłem go
z roboczego PDF, na którym buduję zręby podręcznika:
Loading Image...
W pierwszej linijce jest obiekt jak dla makro[1]. Tam, gdzie słowo
"Przykłady", chciałbym mieć podpis pod obrazkiem.

W następnych 2 linijkach są obiekty jak dla makro[2].
Post by Jarosław Sokołowski
Z góry dziękuję za wszelką pomoc.
Ja bym takie makro pewnie napisał choćby i zaraz, ale nie do końca
zrozumiałem jak dokładnie ma ono działać.
Zatem w moim pytaniu postawiłem 2 problemy:
- kwestia budowy makr
- problem z tym, że podczas budowania dokumentu okazuje się, że mogę
mieć tylko 2 linijki obrazków (w dowolnej konfiguracji) nieprzedzielone
tekstem, inaczej LaTeX dzieli stronę.

Mam nadzieję choć na przykładowy kod takiego makra, który pozwoli mi
rozwinąć skrzydła i przekroczyć Bezbramną Zaporę niezrozumienia problemu
;-)

Jeszcze raz dziękuję.
--
Krzysztof Smirnow
***@stenografia.pl
::|Nondum lingua suum, dextra peregit opus|::
http://www.stenografia.pl
Jarosław Sokołowski
2012-04-22 15:25:12 UTC
Permalink
Post by flamenco108
W kodzie tego makra można ustalić szerokości dla obszaru obrazka
z podpisem oraz dla obszaru opisu z boku i w ten sposób dopasować
je do różnych formatów druku.
Od takich ustaleń zawsze trzeba zaczynać. Powiedzieć, że ma być
obrazek z podpisem pod spodem, to mało. Trzeba wiedzieć, jaka ma
być szerokość stworzonego elementu -- ustalona arbitralnie, czy
na przykład wyznaczona na podstawie szerokości branego obrazka.
Czy miejsce na podpis jest zawsze takie samo, czy ma dopasowywać
się do treści? W którym miejscu w wynikowym pudełku ma znajdować
się linia bazowa, to znaczy, czy pudełko ma mieć tylko wysokość,
czy również głębokość?

Takich pytań może być sporo, ale jak się zna na odpowiedzi wszystkie,
to zbudowanie makra jest już tylko formalnością.
Post by flamenco108
oraz makro [2] pozwalające zrobić obiekt
|obrazek |obrazek |obrazek |
|podpis pod obrazkiem|podpis pod obrazkiem|podpis pod obrazkiem|
\begin{obrazki}
\obrazek{nazwa_obrazka,podpis_pod_obrazkiem}
\obrazek{nazwa_obrazka,podpis_pod_obrazkiem}
\obrazek{nazwa_obrazka,podpis_pod_obrazkiem}
\obrazek{nazwa_obrazka,podpis_pod_obrazkiem}
\obrazek{nazwa_obrazka,podpis_pod_obrazkiem}
\obrazek{nazwa_obrazka,podpis_pod_obrazkiem}
\obrazek{nazwa_obrazka,podpis_pod_obrazkiem}
\obrazek{nazwa_obrazka,podpis_pod_obrazkiem}
\obrazek{nazwa_obrazka,podpis_pod_obrazkiem}
\obrazek{nazwa_obrazka,podpis_pod_obrazkiem}
\obrazek{nazwa_obrazka,podpis_pod_obrazkiem}
\obrazek{nazwa_obrazka,podpis_pod_obrazkiem}
\obrazek{nazwa_obrazka,podpis_pod_obrazkiem}
\obrazek{nazwa_obrazka,podpis_pod_obrazkiem}
\obrazek{nazwa_obrazka,podpis_pod_obrazkiem}
\obrazek{nazwa_obrazka,podpis_pod_obrazkiem}
\end{obrazki}
W kodzie tego makra ustawiam też liczbę obrazków w rzędzie.
Takiej konieczności w ogóle nie widzę. Jeśli makro będzie zrobione
dobrze, to obrazki same będą ustawiać się w rządku, a jak trzeba,
to łamać na wiersze. Nie ma żadnej różnicy między obrazkami a literami
-- jedno i drugie to pudełka składane jedno za drugim w trybie poziomym.
Post by flamenco108
Mój kod, który zamieściłem poprzednio, nie dawał możliwości
zamieszczenia więcej niż 2 linijek obiektów jak w makro[1], podobnie
było dla obiektów jak w makro[2].
Pod tym adresem jest obrazek, który pokazuje moją intencję, wyciąłem go
http://stenografia.pl/obrazki/przyklad.png
W pierwszej linijce jest obiekt jak dla makro[1]. Tam, gdzie słowo
"Przykłady", chciałbym mieć podpis pod obrazkiem.
W następnych 2 linijkach są obiekty jak dla makro[2].
To można bardzo prosto oblecieć choćby makrem wykorzystującym LaTeXowe
tabele. Zamiast obrazków wstawiłem fantomowe prostokąty ze zdefiniowanego
makra \f. Do celów poglądowych dałem pionowe i poziome kreski w tabeli
("|" i "\hline"), które można wyrzucić.

\documentclass[10pt]{book}
\begin{document}

\def\f #1 #2 {\vrule width #1mm height #2mm}

\def\obrazek#1#2{\begin{tabular}[b]{|c|}
\hline
#1\\\hline
#2\\\hline
\end{tabular}}

\noindent
\obrazek{\f 8 9 }{stupor}
\obrazek{\f 6 9 }{parkan}
\obrazek{\f 7 9 }{koper}
\obrazek{\f 5 7 }{super}
\obrazek{\f 8 6 }{topor}
\obrazek{\f 8 9 }{piard}
\obrazek{\f 9 4 }{piernik}
\obrazek{\f 8 9 }{Kleparz}
\obrazek{\f 6 5 }{wapierz}
\obrazek{\f 8 9 }{lumpiarz}

\end{document}
--
Jarek
flamenco108
2012-04-23 15:54:26 UTC
Permalink
Post by Jarosław Sokołowski
\def\f #1 #2 {\vrule width #1mm height #2mm}
\def\obrazek#1#2{\begin{tabular}[b]{|c|}
\hline
#1\\\hline
#2\\\hline
\end{tabular}}
\noindent
\obrazek{\f 8 9 }{stupor}
\obrazek{\f 6 9 }{parkan}
\obrazek{\f 7 9 }{koper}
\obrazek{\f 5 7 }{super}
\obrazek{\f 8 6 }{topor}
\obrazek{\f 8 9 }{piard}
\obrazek{\f 9 4 }{piernik}
\obrazek{\f 8 9 }{Kleparz}
\obrazek{\f 6 5 }{wapierz}
\obrazek{\f 8 9 }{lumpiarz}
\end{document}
Dzięki serdeczne, napiszę, jak mi poszło, tylko na razie muszę postawić
sobie wirtualne Ubuntu, bo ten MikteX to sobie chyba z UTFem nie
radzi... A pewnie też pojawią się nowe wątpliwości, jak ten kod
zmodyfikuję i przećwiczę.
--
Krzysztof Smirnow
***@stenografia.pl
::|Nondum lingua suum, dextra peregit opus|::
http://www.stenografia.pl
Jarosław Sokołowski
2012-04-23 16:01:11 UTC
Permalink
Post by flamenco108
Post by Jarosław Sokołowski
\def\f #1 #2 {\vrule width #1mm height #2mm}
\def\obrazek#1#2{\begin{tabular}[b]{|c|}
\hline
#1\\\hline
#2\\\hline
\end{tabular}}
\noindent
\obrazek{\f 8 9 }{stupor}
\obrazek{\f 6 9 }{parkan}
\obrazek{\f 7 9 }{koper}
\obrazek{\f 5 7 }{super}
\obrazek{\f 8 6 }{topor}
\obrazek{\f 8 9 }{piard}
\obrazek{\f 9 4 }{piernik}
\obrazek{\f 8 9 }{Kleparz}
\obrazek{\f 6 5 }{wapierz}
\obrazek{\f 8 9 }{lumpiarz}
\end{document}
Dzięki serdeczne, napiszę, jak mi poszło, tylko na razie muszę postawić
sobie wirtualne Ubuntu, bo ten MikteX to sobie chyba z UTFem nie
radzi... A pewnie też pojawią się nowe wątpliwości, jak ten kod
zmodyfikuję i przećwiczę.
A co do tego wszystkiego ma UTF? W życiu nie używałem w TeXu Unicodu.
--
Jarek
flamenco108
2012-04-23 18:28:25 UTC
Permalink
Post by Jarosław Sokołowski
A co do tego wszystkiego ma UTF? W życiu nie używałem w TeXu Unicodu.
A czego używałeś? Bo kiedyś używałem win-1250 i latin2, ale pomyślałem,
że skoro już można pisać pod Windołsem i Linuxem w tej samej stronie
kodowej, to czemu nie? I mogę takoż (a w każdym razie myślałem, że mogę)
przechować sobie pliki na Dropboxie i pracować tu i tam... Ale na razie,
jak skompilowałem pod Windołsem Twój kod, który skopiowałem do edytora
UTF, to się okazało, że zamiast polskich czcionek wyszły krzaczki. Ale
to OFFTOP tutaj, z tym sobie jakoś poradzę, np. nie będę kompilował pod
windołsem, tylko jak wrócę do domu, pod Linuxem.

Na Windołsie używał pakietu LyTeX, który miał z automata instalować
zestaw LyX+MikTeX oraz TeXworks do pisania, który jest fajny. Instaluje,
kompiluje extra, ale jakoś te moje już gotowe teksty w UTF mają
krzaczki. Na razie dogrywam mu pakiety, może to coś pomoże, ale bardzo
wątpię.
--
Krzysztof Smirnow
***@stenografia.pl
::|Nondum lingua suum, dextra peregit opus|::
http://www.stenografia.pl
Jarosław Sokołowski
2012-04-23 19:03:42 UTC
Permalink
Post by flamenco108
Post by Jarosław Sokołowski
A co do tego wszystkiego ma UTF? W życiu nie używałem w TeXu Unicodu.
A czego używałeś? Bo kiedyś używałem win-1250 i latin2, ale pomyślałem,
że skoro już można pisać pod Windołsem i Linuxem w tej samej stronie
kodowej, to czemu nie?
Najpierw używałem ASCII. Bo wtedy jeszcze TeX był siedmiobitowy. EBCDIC
też uzyłem raz czy dwa, ale to żadne używanie, bo nie miałem co dalej
zrobić z DVI. Później używałem Mazovii, i to jeszcze za czasów TeXa
siedmio-i-pół-bitowego. Teraz używam iso-8859-2. Windowsa nie używam,
więc nie mam problemów z cp-1250. A jak ktoś mi da jakieś pliki, to od
razu konwetuję. Zresztą iso-8859-2 też się podobno da pod Windows w miare
wygodnie edytować.
Post by flamenco108
Ale na razie, jak skompilowałem pod Windołsem Twój kod, który skopiowałem
do edytora UTF, to się okazało, że zamiast polskich czcionek wyszły
krzaczki. Ale to OFFTOP tutaj, z tym sobie jakoś poradzę, np. nie będę
kompilował pod windołsem, tylko jak wrócę do domu, pod Linuxem.
Mój kod był niezależny od kodowania. A samo użycie znaków innych niż ASCII,
to w LaTeXu osobny problem. Rozwiązywany na kilka sposobów.
--
Jarek
flamenco108
2012-04-25 12:55:05 UTC
Permalink
Post by Jarosław Sokołowski
Najpierw używałem ASCII.
;-) Tak kiedyś było. Ale ja wtedy o tym jeszcze nie słyszałem, bo
(parafrazując) na chleb mówiłem "bep", a na muchy "tapty" ;-). Moja
przygoda z LaTeXem zaczęła się zaledwie kilka lat temu i ogromnie
żałuję, że nie wiedziałem o nim, kiedy pisałem swoją pracę
magisterską...

Podążając za Twymi wskazówkami, które otworzyły mi oczy na pewne sprawy
(że np. w TeXu może być jak w HTMLu, tzn. po co męczyć się z div, kiedy
można użyć table), zrobiłem taki oto kod, choć nie udało się za
pierwszym podejściem, muszę powiedzieć.

Dla pojedynczych obrazków z podpisem:

\def\odicc#1{\includegraphics[width=2cm]{img/dici/#1.png} }

\def\obrazekk#1#2{\begin{tabular}[b]{c}
%\hline
\odicc{#1}\\%\hline
#2\\%\hline
\end{tabular}}

%wyświetlanie
\noindent
\obrazekk{atanor}{atanor}

Dla zestawu obrazek+podpis+opis mam problem taki, że chciałbym, aby to
było ułożone tak:
_______________
|obrazek| opis|
--------|
|podpis | |
---------------

Mój aktualny kod wygląda tak:

\def\obja#1#2#3{\begin{tabular}[h]{|c|c|}
\hline
\includegraphics[width=2cm]{img/dici/#1.png} & %1 kolumna
\multirow{2}{*}{\begin{minipage}[t]{10cm}#3\end{minipage}}\\\hline %2
kolumna
\parbox[t]{3cm}{#2}\\\hline %znowu 1 kolumna, 2 linijka
\end{tabular}}

%wyświetlenie
\noindent
\obja{mer}{mr - więcej słów, żeby było}{-mor, -mar, -mer, -mu(ó)r, -mor,
-mar, -mer, -mu(ó)r, -mor, -mar, -mer, -mu(ó)r, -mor, -mar, -mer,
-mu(ó)r, -mor, -mar, -mer, -mu(ó)r, -mor, -mar, -mer, -mu(ó)r, -mor,
-mar, -mer, -mu(ó)r, -mor, -mar, -mer, -mu(ó)r,-mor, -mar, -mer,
-mu(ó)r,}

Oto wynik tych prac (specjalnie dałem linie tabel widoczne):
Loading Image...

I 3 rzeczy się tu nie zgadzają:
1. Czy odstęp po takim zdefiniowanym obiekcie powinienem dodać jako np.
\vspace{2em}? Pytam się, może są jakieś dobre praktyki w tym względzie,
żeby się cały układ później nie rozjechał.
2. Obrazki same się układają w rządki, ale te rządki są szersze niż łam.
A jak zrobić tak, żeby były ewentualnie węższe niż ław i się na łamie
środkowały?
3. Obiekt na dole, jak widać jego pole prawe tekst wypuszcza gdzieś poza
obręb, zamiast trzymać go grzecznie w środku. Co jest źle?

Mam nadzieję, że dzięki tym przykładom moje intencje również staną się
jasniejsze.

Dziękuję za pomoc.
Jarosław Sokołowski
2012-04-25 14:17:17 UTC
Permalink
Post by flamenco108
Dla zestawu obrazek+podpis+opis mam problem taki, że chciałbym, aby to
_______________
| obrazek | opis|
|---------| |
| podpis | |
---------------
\def\obja#1#2#3{\begin{tabular}[h]{|c|c|}
\hline
\includegraphics[width=2cm]{img/dici/#1.png} & %1 kolumna
\multirow{2}{*}{\begin{minipage}[t]{10cm}#3\end{minipage}}\\\hline %2 kolumna
\parbox[t]{3cm}{#2}\\\hline %znowu 1 kolumna, 2 linijka
\end{tabular}}
To nie jest dobra koncepcja. Lepiej by było najpierw ująć "obrazek"
i "podpis" w jedną tabelę o jednej kolumnie i dwóch wierszach, a ten
element wstawić do drugiej tabeli o jednym wierszu i dwóch kolumnach.
W drugiej kolumnie oczywiście będzie "opis".

Ale takie rozwiązanie też mi się nie podoba. Dla mnie to jest klasyczny
przypadek obrazka z podpisem opływanego z prawej strony przez tekst.
Jest na to wiele gotowych recept, a ja bym pewnie w takiej sytuacji
napisał sobie makro w oparciu o \hang i \hangafter.
Post by flamenco108
1. Czy odstęp po takim zdefiniowanym obiekcie powinienem dodać jako np.
\vspace{2em}? Pytam się, może są jakieś dobre praktyki w tym względzie,
żeby się cały układ później nie rozjechał.
To juz zależy od ogólnej koncepcji całej książeczki.
Post by flamenco108
2. Obrazki same się układają w rządki, ale te rządki są szersze niż łam.
A jak zrobić tak, żeby były ewentualnie węższe niż ław i się na łamie
środkowały?
Zwykłe środowisko "center" powinno to załatwić. A najlepiej zadbać
wcześniej o to, by w szerokości składu mieściła się całkowita liczba
obrazków (po uwzględnieniu odstępów między nimi).
Post by flamenco108
3. Obiekt na dole, jak widać jego pole prawe tekst wypuszcza gdzieś poza
obręb, zamiast trzymać go grzecznie w środku. Co jest źle?
Tu chyba nic nie jest dobrze. Opis (w drugiej kolumnie) powinien zaczynać
się od samej góry, jego pierwsza linijka powinna być wyrównana do pierwszej
linijki w pierwszej kolumnie. Ale w pierwsza kolumna zaczyna się od obrazka,
więc nie ma do czego równać. Stąd ta kaszana. A jak juz pisałem, nie warto
tego poprawiać, lepiej zacząć od nowa i zrobić od razu dobrze.
Post by flamenco108
Mam nadzieję, że dzięki tym przykładom moje intencje również staną się
jasniejsze.
Dziękuję za pomoc.
Nie wiem czy rozjaśniłem, czy przyciemniłem, ale chyba nie o pomoc
w postaci gotowców chodziło. Lepiej najpierw wszystko dobrze zrozumieć,
a później napisać samemu co się chce i co potrzeba.
--
Jarek
flamenco108
2012-04-27 08:12:28 UTC
Permalink
Post by Jarosław Sokołowski
Post by flamenco108
_______________
| obrazek | opis|
|---------| |
| podpis | |
---------------
To nie jest dobra koncepcja. Lepiej by było najpierw ująć "obrazek"
i "podpis" w jedną tabelę o jednej kolumnie i dwóch wierszach, a ten
element wstawić do drugiej tabeli o jednym wierszu i dwóch kolumnach.
W drugiej kolumnie oczywiście będzie "opis".
To rozwiązanie też ćwiczyłem, acz bez minipage, więc nie wiem, czy by mi
pomogło z problemem, który wtedy się pojawiał: brak łamania wiersza i
ucieczka tabelki poza prawy margines. Sprawdzę, czy minipage coś tu
pomoże...
Post by Jarosław Sokołowski
Ale takie rozwiązanie też mi się nie podoba. Dla mnie to jest klasyczny
przypadek obrazka z podpisem opływanego z prawej strony przez tekst.
Jest na to wiele gotowych recept, a ja bym pewnie w takiej sytuacji
napisał sobie makro w oparciu o \hang i \hangafter.
Wraca temat budowania przy pomocy \float i \minipage, czy tak? Czy ów
\hang lub \hangafter rozwiąże problem, że nie mogę wrzucić więcej jak 2
takie obiekty na stronę, żeby TeX nie złamał na następną stronę?
Post by Jarosław Sokołowski
Tu chyba nic nie jest dobrze. Opis (w drugiej kolumnie) powinien zaczynać
się od samej góry, jego pierwsza linijka powinna być wyrównana do pierwszej
linijki w pierwszej kolumnie. Ale w pierwsza kolumna zaczyna się od obrazka,
więc nie ma do czego równać. Stąd ta kaszana. A jak juz pisałem, nie warto
tego poprawiać, lepiej zacząć od nowa i zrobić od razu dobrze.
Żeby być w prawdzie, to moją intencją jest, żeby opis był wyśrodkowany w
pionie względem zestawu obrazek+podpis po lewej. Przecież opis może być
wyjątkowo krótki.
Post by Jarosław Sokołowski
Nie wiem czy rozjaśniłem, czy przyciemniłem, ale chyba nie o pomoc
w postaci gotowców chodziło. Lepiej najpierw wszystko dobrze zrozumieć,
a później napisać samemu co się chce i co potrzeba.
Dziękuję, ale tym razem trochę... Hmm... Przyciemniłeś. Jestem
pomięszany z tym \hang i \hangafter. A już mi się tak spodobały te
tabelki... No nic, jak mi się skończy aktualizować wirtualne ubuntu, to
zaraz siądę do kodu i spróbuję coś napisać i zobaczymy, co mi z tego
wyjdzie.

Dzięki
Jarosław Sokołowski
2012-04-27 09:12:34 UTC
Permalink
Post by flamenco108
Post by Jarosław Sokołowski
Post by flamenco108
_______________
| obrazek | opis|
|---------| |
| podpis | |
---------------
To nie jest dobra koncepcja. Lepiej by było najpierw ująć "obrazek"
i "podpis" w jedną tabelę o jednej kolumnie i dwóch wierszach, a ten
element wstawić do drugiej tabeli o jednym wierszu i dwóch kolumnach.
W drugiej kolumnie oczywiście będzie "opis".
To rozwiązanie też ćwiczyłem, acz bez minipage, więc nie wiem, czy by
mi pomogło z problemem, który wtedy się pojawiał: brak łamania wiersza
i ucieczka tabelki poza prawy margines. Sprawdzę, czy minipage coś tu
pomoże...
Pomóc, nie pomoże. Najwyżej zaszkodzi.
Post by flamenco108
Post by Jarosław Sokołowski
Ale takie rozwiązanie też mi się nie podoba. Dla mnie to jest klasyczny
przypadek obrazka z podpisem opływanego z prawej strony przez tekst.
Jest na to wiele gotowych recept, a ja bym pewnie w takiej sytuacji
napisał sobie makro w oparciu o \hang i \hangafter.
Wraca temat budowania przy pomocy \float i \minipage, czy tak? Czy ów
\hang lub \hangafter rozwiąże problem, że nie mogę wrzucić więcej jak 2
takie obiekty na stronę, żeby TeX nie złamał na następną stronę?
Wręcz przeciwnie. LaTeX ma w sobie wiele pokrętnych konstrukcji w rodzaju
"float", które starają się wiedzieć wszystko lepiej od autorów i redaktorów.
Tu od początku wiadomo jak co ma wyglądać, więc bardziej na miejscu są
proste narzędzia.
Post by flamenco108
Post by Jarosław Sokołowski
Tu chyba nic nie jest dobrze. Opis (w drugiej kolumnie) powinien zaczynać
się od samej góry, jego pierwsza linijka powinna być wyrównana do pierwszej
linijki w pierwszej kolumnie. Ale w pierwsza kolumna zaczyna się od obrazka,
więc nie ma do czego równać. Stąd ta kaszana. A jak juz pisałem, nie warto
tego poprawiać, lepiej zacząć od nowa i zrobić od razu dobrze.
Żeby być w prawdzie, to moją intencją jest, żeby opis był wyśrodkowany w
pionie względem zestawu obrazek+podpis po lewej. Przecież opis może być
wyjątkowo krótki.
Tego to ja nie wiem. Zakładałem, że może byc (również) wyjątkowo długi.
Jak ma być tylko środkowany, to dwukolumnowa jednowierszowa tabela rozwiąże
wszystkie problemy.
Post by flamenco108
Post by Jarosław Sokołowski
Nie wiem czy rozjaśniłem, czy przyciemniłem, ale chyba nie o pomoc
w postaci gotowców chodziło. Lepiej najpierw wszystko dobrze zrozumieć,
a później napisać samemu co się chce i co potrzeba.
Dziękuję, ale tym razem trochę... Hmm... Przyciemniłeś. Jestem
pomięszany z tym \hang i \hangafter. A już mi się tak spodobały te
tabelki...
Jedno jest bez związku z drugim. Jeśli umieścimy na początku dłuższego
akapitu np. "\hangindent 3cm \hangafter-5 \noindent", to powstanie tam
dziura szerokości 3cm i wysoka na 5 wierszy. W nią można wrazić tabelkową
konstrukcję (najlepiej wprzódy zamknąć ją w pudle wysokim na jeden wiersz
i głębokim na cztery).
--
Jarek
Tomasz Sowa
2012-04-27 17:07:16 UTC
Permalink
Post by flamenco108
Żeby być w prawdzie, to moją intencją jest, żeby opis był wyśrodkowany w
pionie względem zestawu obrazek+podpis po lewej. Przecież opis może być
wyjątkowo krótki.
Jeśli dobrze zrozumiałem to tak można:

\font\podpisfont="[LinBiolinum_aWB.ttf]" at 14pt
\font\opisfont="[LinLibertine_R.ttf]" at 12pt
\tolerance 1000
\raggedright
\newdimen\szer
\newdimen\wys

% #1 - szerokosc obrazka
% #2 - szerokosc opis razem z obrazkiem
% #3 - wysokosc obrazka
% #4 - plik obrazka
% #5 - podpis (pod obrazkiem)
% #6 - opis (z lewej wysrodkowany w pionie)
\def\obrazek#1#2#3#4#5#6{%
\szer=#2
\advance\szer by 1cm % odstep poziomy miedzy boksami
\hbox to \szer{%
\wys=#3
\advance\wys by 2cm % miejsce na podpis i odstep z dolu
\vbox to \wys{%
\vbox to 0pt{\hbox to #1{\XeTeXpicfile #4 width #1 height #3}
\vbox{\vskip 5pt \leftskip 0pt \podpisfont \noindent \hsize #1 \hfil #5
\hfil}}
\szer=#1
\advance\szer by 5pt % odstep pomiedzy obrazkiem a lewym opisem
\vbox to #3{
\leftskip \szer
\vfil \noindent \hsize #2 \opisfont #6 \vfil
}}}}

\hbox{
\obrazek{4cm}{8cm}{7cm}{czupa.jpg}{podpis}{Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec sagittis sodales elementum. Donec at sem sapien, eu auctor purus.}
\obrazek{4cm}{8cm}{7cm}{czupa.jpg}{podpis}{Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec sagittis sodales elementum. Donec at sem sapien, eu auctor purus.}
\obrazek{4cm}{8cm}{7cm}{czupa.jpg}{podpis}{Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec sagittis sodales elementum. Donec at sem sapien, eu auctor purus.}
\obrazek{4cm}{8cm}{7cm}{czupa.jpg}{podpis}{Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec sagittis sodales elementum. Donec at sem sapien, eu auctor purus.}
}

\hbox{
\obrazek{4cm}{8cm}{7cm}{czupa.jpg}{podpis}{Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec sagittis sodales elementum. Donec at sem sapien, eu auctor purus.}
\obrazek{4cm}{8cm}{7cm}{czupa.jpg}{podpis}{Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec sagittis sodales elementum. Donec at sem sapien, eu auctor purus.}
\obrazek{4cm}{8cm}{7cm}{czupa.jpg}{podpis}{Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec sagittis sodales elementum. Donec at sem sapien, eu auctor purus.}
\obrazek{4cm}{8cm}{7cm}{czupa.jpg}{podpis}{Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec sagittis sodales elementum. Donec at sem sapien, eu auctor purus.}
}

\bye


$ xetex -papersize="40cm,21cm" obrazek.tex
a wygląda to tak:
http://tmp.slimaczek.pl/tmp/obrazek.pdf

Jeśli jednak nie to co chciałeś to musisz zrobić rysunek.
--
Tomek
http://www.ttmath.org
Kontynuuj czytanie narkive:
Loading...