A fényképek automatikus beillesztése a LaTeX fájlokba

A múlt héten többek között elmagyaráztam, hogyan lehet "sok különböző naptárt szinte automatikusan létrehozni, mindegyiket egy másik barátnak vagy rokonnak testreszabva". Azt is megemlítettem, hogy meglehetősen könnyű különféle képeket hozzáadni ezekhez a naptárakhoz.

Ezen a héten megmutatom, hogyan kell ezt csinálni, vagyis hogyan helyezhet be fényképeket vagy bármilyen más grafikus fájlt a LaTeX fájlokba. Az első dolog, amit megmagyarálok, miért akarom ezt megtenni, és miért gondolom, hogy minden Linux felhasználónak, aki a lehető legnagyobb mértékben képes automatizálni számítógépes tevékenységeit, tudnia kell egy ilyen trükköt.

Ezt a technikát sokkal általánosabban használják, mint gondolnád. A LaTeX fájlok professzionális, igazán gyönyörű nyomatokat és PDF fájlokat hoznak létre - sokkal kifinomultabb és hatékonyabb módokon, mint bármely asztali irodai csomag.

Sokféle ingyenes szoftver van, amely az adatokat LaTeX formátumban képes kiadni, és még sok más, az interneten elérhető LaTeX sablon. A saját képek (vagy bármilyen más adat) beillesztésének tudása azt jelenti, hogy programozó nélkül is testreszabhatja ezeket a programokat és dokumentumokat.

Ez azért lehetséges, mert a LaTeX (és a TeX, amelyen a LaTeX alapul) nyitott, egyszerű szöveges alapú formátumok. Következésképpen a képek automatikus beillesztése egy már létező LaTeX fájlba olyan egyszerű, mint a megfelelő ASCII karakterláncok megtalálása és cseréje sed, awk, Perl vagy bármilyen más, legjobban tetsző szövegszerkesztő eszközzel.

Lássuk, hogyan működik a trükk, hozzáadva egy képet a LaTeX naptárhoz, amelyet a múlt héten mutattam be.

A ábra

A pal program generálja az A ábrát, és ez a LaTeX kódrészlet, amely létrehozza az "Alice születésnapja" bejegyzést:
 \ textbf {\ textit {\ Large 20}} {\ raggedright 
 $ \ cdot $ Alice születésnapja 
 } \ vspace {.3in} & 
 \ textbf {\ textit {\ Large 21}} {\ raggedright 
 } \ vspace {.9in} & 

A kép hozzáadása a LaTeX fájlhoz az alapvető eljárás nagyon egyszerű és két lépésből áll. Az első az, hogy közvetlenül a dokumentumosztály deklarálása után adjuk hozzá a graphicx csomag használatának parancsát:

 \ Documentclass 12pt {cikk} 
 \ Usepackage {graphicx} 

A második az, hogy a kód megfelelő helyére illessze be a képet ténylegesen betöltő parancsot. Ez az egyetlen extra sor került hozzáadásra az "Alice születésnapja" után:

 $ \ cdot $ Alice születésnapja 
 } 
 \ Includegraphics skálán = 0, 30 {tux.png} 
módosítja a naptár megfelelő oldalát a B ábra szerint .

B. ábra

Azonnal észreveszi, hogy a beillesztés módosította a naptár egy sorának magasságát. Egy pillanat alatt erről beszélek. Előtte nézzük meg, hogyan lehet az általános kód automatikus beillesztésének folyamatát megtenni. Sokféle módon meg lehet csinálni. Amit én használok, fele a személyes ízlésnek és a fele a lustaságnak (az egyes programozók egyik legnagyobb erénye) az egyvonalas Perl-parancsok:

 perl -pi.bak -e 's / ^ (\\ dokumentum. *) / $ 1 \ n \\ usepackage {graphicx} /' template.latex 
 perl -pi.bak -e 'undef $ /; $ A =; $ A = ~ s / (Alice. * Születésnap \ s *}) / $ 1 \ n \\ includegraphics skála = 0, 30 \ {tux.png \} / m; print $ A; ' template.latex 

A több parancssori kapcsoló utasítja a Perlt (lásd a részleteket itt), hogy az idézetek közötti kódot hajtsa végre, közvetlenül az utolsó argumentumként átadott fájl belsejében. Az első egyvonalas hozzáadja a usepackage parancsot, közvetlenül a \\ dokumentum karakterlánccal kezdődő sor után. A második bonyolultabb, mert szerkesztenie kell a többsoros karakterláncot. Ezért nem határozza meg a rekord elválasztót ($ /), hogy az egész fájlt egy $ A változóba töltse be, és az "m" módosítóval megtalálja a karakterláncot, amelyhez hozzá kell adnia a második LaTeX parancsot.

Mi a helyzet a módosított sormagassággal?

Személy szerint a naptárak ilyen elkészítésekor a magasabb sorokat csak úgy hagyom, ahogy vannak, mivel véletlenül inkább a szabálytalan elrendezést szeretem. Ha nem bírja el, inkább két megoldással rendelkezik. Az egyik az, hogy sokkal több LaTeX-et megtanul, mint amit itt bemutattam, és elkészítheti az egyedi sablonját (ami teljesen finom, éppen ezen a poszton kívül esik). Egy másik megoldás az, ha különböző méretű képeket ad (lásd az alábbi forrásokat) és / vagy játsszon a vízszintes és függőleges térköz-parancsokkal (hspace és vspace), hogy mindegyik képet mozgassa a cellájában és módosítsa a körüli helyet.

C. ábra

A C ábra azt mutatja, hogy mi történt (hasonlítsuk össze a B. ábrával), amikor a LaTeX kódot kézzel szerkesztettem a kép körül:

$ \ cdot $ Alice születésnapja

}

\ Hspace {.30in}

\ includegraphics scale = 0, 20 {tux.png} \ vspace {.02in} &

Méretezzük

Természetesen, ha csak egy fájlt kellett szerkesztenie, csak egyszer, akkor figyelmen kívül kell hagynia a parancsfájlokat, és csak módosítania kell a fájlt, amint azt a fentiekben kifejtettük, bármilyen szövegszerkesztővel vagy (sokkal jobb) a LaTeX kezelőfelületeivel, mint a Kile. A szkriptek hozzáadása a képhez akkor szükséges, ha sok különböző fájlt kell létrehoznia, sokszor, mindegyik különböző képpel, ugyanazon kezdeti sablonból. Ilyen helyzetben egy ilyen egyszerű héj hurok:

 TED Alice Bob FRIEND-nek 
 csinál 
 echo perl -pi.bak -e "'"' undef $ /; $ A =; $ A = ~ s / ('$ FRIEND'. * Születésnap \ s *}) / $ 1 \ n \\ includegraphics scale = 0, 30 \ {'$ FRIEND'.png \} / m; print $ A; '' '">> make_calendars 
 Kész 
létrehozza és elmenti a make_calendars parancsba az összes parancsot, amelyet a Linux mezőnek futtatnia kell, hogy a munka az Ön számára legyen. Végül a szöveges karakterek szó szerint bármi lehetnek. Ezért érdemes megtanulni a LaTeX fájlok feldolgozását shell parancsfájlokkal, mert sokkal többet tehet, mint a képek beillesztése . Például az itt ismertetett általános technikát alkalmaztam a sima szöveges fájlok átalakítására a Lulu.com-ban kész PDF fájlokban. Erőforrások
  • Grafika beépítése egy LaTeX dokumentumba
  • LaTeX / Grafika importálása a Wikibooksból
  • LaTeX: Képek

© Copyright 2021 | mobilegn.com