# Format XML

## Spis rzeczy

1. Opis
2. Użytkowanie
3. Znaczniki
4. Parametry wspólne
5. Parametry ramek graficznych
6. Parametry rozmiarów
7. Przykłady

## Opis

Wtyczka InPageBuilder współpracuje z własnym formatem opisu ramek. Format ten jest oparty o standard XML, użytkowany razem z plikami stylowanego tekstu w formacie InDesign (Adobe InDesign Tagged Text File Format).

Dzięki takiemu rozwiązaniu możliwe staję się definiowanie ramek wewnątrz plików tagged text, co umożliwia ich import do dokumentów Adobe InDesign z zachowaniem wszystkich eksportowanych wcześniej styli. Zaimportowany tekst jest następnie przetwarzany przez wtyczkę InPageBuilder, w procesie którym definicje ramek zamieniane są na rzeczywiste ramki.

## Użytkowanie

Import plików w formacie Adobe InDesign Tagged Text File Format wprost z paletki wtyczki InPageBuilder powoduje automatyczne wygenerowanie ramek zgodnie ze specyfikacją.

Dzięki zastosowanej technologii możliwe staje się również przetwarzanie istniejącego tekstu w poszukiwaniu definicji xml-owych ramek i tworzenie tychże. Innymi słowy możliwe jest ręczne wprowadzenie opisu ramek do ramki tekstowej. Wybór opcji Przetwórz (patrz rys. 2, dział Użytkowanie::Paletka rozszerzenia) spowoduje przekształcenie tekstowych definicji w ramki inline.

## Rodzaje znaczników ramek

Wyróżnia się kilka rodzajów znaczników ramek:

- box:text - ramka tekstowa
- box:picture - ramka graficzna, zawierająca obrazek
- box:group - ramka grupująca w sobie inne rodzaje ramek

Ramki posiadają zestaw parametrów, decydujących o ich wyglądzie. Dodatkowo ramka graficzna posiada dodatkowe parametry takie jak np. ścieżkę do pliku graficznego.

Uwaga: Warto zauważyć, że podanie parametru pewnej ramce, która go nie obsługuje, nie wygeneruje błędu. Parametr ten zostanie zignorowany.

## Parametry wspólne dla wszystkich rodzajów ramek

Uwaga: Nazwy parametrów powinny być pisane małymi literami, tak jak wszystkie tagi XML'owe. Należy pamiętać również o odpowiednich escape'owaniach w wartościach parametrów - zgodnie ze standardem XML. W większości przypadków nie będzie to konieczne.

Nazwa parametru | Przykład | Opis
hs lub wd | 10mm, 10pt, 10px | Szerokość (horizontal size) ramki, jeżeli nie jest podana automatycznie ustawiana jest szerokość szpalty, w której znajdować się będzie ramka tekstowa
vs lub hd | 10mm | Wysokość (vertical size) ramki
fw | 2pt | Grubość obrysu ramki
fc | "1" lub "0" (odpowiednio: biały, czarny) SWATCHNAME:nazwa_swatcha_z_kolorem LAB:PROCESS:70,55,47 LAB:SPOT:70,55,47 CMYK:PROCESS:1,0,0.3,0.25 CMYK:SPOT:1,0,0.3,0.25 RGB:PROCESS:1,0.12,0.70 RGB:PROCESS:1,0.12,0.70 | Kolor ramki
bc | "1" lub "0" (odpowiednio: biały, czarny) SWATCHNAME:nazwa_swatcha_z_kolorem LAB:PROCESS:70,55,47 LAB:SPOT:70,55,47 CMYK:PROCESS:1,0,0.3,0.25 CMYK:SPOT:1,0,0.3,0.25 RGB:PROCESS:1,0.12,0.70 RGB:PROCESS:1,0.12,0.70 | Kolor tła ramki
os | nazwa_stylu_obiektowego | Nakłada styl obiektu (menu Okno/Style obiektowe) na ramkę
ti | 1pt | Wewnętrzny margines od ramki do tekstu dla wszystkich krawędzi (inset)
tit | 1pt | Wewnętrzny margines od ramki do tekstu dla górnej krawędzi (inset top)
til | 1pt | Wewnętrzny margines od ramki do tekstu dla lewej krawędzi (inset left)
tib | 1pt | Wewnętrzny margines od ramki do tekstu dla dolnej krawędzi (inset bottom)
tir | 1pt | Wewnętrzny margines od ramki do tekstu dla prawej krawędzi (inset right)

## Parametry dla ramek graficznych

Uwaga: Należy pamiętać o ustawieniu ścieżek do teczek z grafiami w preferencjach. W przeciwnym razie grafiki nie zostaną umieszczone.

Nazwa parametru | Przykład | Opis
fn | test.tiff "\\dsl\udzial\nazwa_pliku.eps" | Dołącza plik o podanej nazwie z teczki grafik
sp | 0, 1, -1, -2, -3, -4 | Rodzaj skalowania obrazka względem szerokości szpalty: 0 - dopasuj obrazek do rozmiarów ramki bez zachowania proporcji 1 - dopasuj obrazek do rozmiarów ramki z zachowaniem proporcji -1 - nie skaluj -2 - użyj wysokości obrazka do -3 - dopasuj do szerokości ramki i wtedy ustal wysokość (domyślna opcja, gdy nie jest podana wysokość ramki hd

Jeżeli coś jest nie w porządku z parametrami (np. mamy sp=="-3", ale mamy też zdefiniowane HD/VS), wtedy wykonywane jest standardowe skalowanie proporcjonalne.

## Parametry rozmiarów

Wszystkie parametry opisujące wymiary, czyli szerokość, wysokość, grubość, odstępy krawędziowe mogą przyjmować wszystkie dostępne w programie InDesign skórty wymiarów, z zaznaczaniem że są to skrót anglojęzyczne. Na przykład:

milimetry | mm
centrymetry | cm
cale | in lub inch
punkty | pt (nie można stosować polskiej odmiany pkt!)

## Przykłady

- Aby utworzyć najprostszą ramkę tekstową należy wprowadzić poniższą definicję jako tekst do ramki tekstowego dokumentu InDesign a następnie kliknąć opcję Przetwórz:
  `<box:text>
  To jest tekst, który zostanie dołączony do wnętrza ramki tekstowej</box:text>`
  Uwaga: Należy pamiętać o znaku końca linii pomiędzy końcem tagu rozpoczynającego na tekstem.
- Aby utworzyć ramkę tekstową o rozmiarach 10mm x 5pt (10 milimetrów na 10 punktów):
  `<box:text vs="10mm" hs="5pt">
  To jest tekst, który zostanie dołączony do wnętrza ramki tekstowej</box:text>`
- Aby utworzyć ramkę tekstową o rozmiarach 10mm x 5pt (10 milimetrów na 10 punktów) i nadać jej wszystkie atrybuty stylu obiektowego o przykładowej nazwie "styl_obiektowy_test"
  `<box:text vs="10mm" hs="5pt" os="styl_obiektowy_test">
  To jest tekst, który zostanie dołączony do wnętrza ramki tekstowej</box:text>`
- Aby utworzyć ramkę tekstową o wysokości 5cm i odstępie krawędziowym dla wszystkich krawędzi wewnętrznych 5mm:
  `<box:text vs="5cm" ti="5mm">
  To jest tekst, który zostanie dołączony do wnętrza ramki tekstowej</box:text>`
- Aby utworzyć ramkę tekstową o wysokości 5cm i odstępie krawędziowym dla wszystkich krawędzi wewnętrznych 5mm, z tym, że odstęp krawędziowy dla prawej krawędzi ma wynosić 2cm:
  `<box:text vs="5cm" ti="5mm" tir="2cm">
  To jest tekst, który zostanie dołączony do wnętrza ramki tekstowej</box:text>`
- Aby utworzyć ramkę tekstową o obrysie 2.5 punktów i kolorze RGB 0, 1, 0:
  `<box:text fw="2.5pt" fc="RGB:PROCESS:0,1,0">
  To jest tekst, który zostanie dołączony do wnętrza ramki tekstowej</box:text>`