Alaviitteiden oikea muotoilu on osoittautunut yllättävän monimutkaiseksi – ja sen avuksi löytyy yllättävän vähän resursseja. Tästä syystä ajattelin kirjoittaa löytämistäni keinoista, jotka soveltuvat DoX CMS:n käyttöön. Tämä artikkeli kertoo, kuinka järjestelmässä tehdään sekä ala- että loppuviitteet.
Alaviitteet
Alaviitteiden lisääminen sivun pohjalle vaatii tyylitiedostoilta erityistoiminnallisuutta: vakio-CSS ei sisällä sääntöjä, jotka sallisivat sisällön sijoittamisen tällä tavoin. Lisäksi niitä varten täytyy luoda oikein sijoitellut viitteet osana pääsisältöä. Onneksi PrinceXML antaa tehdä molemmat osana sen erityistoiminnallisuutta. DoX CMS:ssä tämä tapahtuu käyttämällä DocRaptor-kasaajaa.
Huomioithan, että alaviitteet toimivat vain DocRaptor-kasaajan kanssa. Muiden kasaajien kanssa tulee käyttää loppuviitteitä. DocRaptor vaatii sen kanssa yhteensopiviksi kirjoitettuja tyylitiedostoja, mutta sen käyttö voidaan sallia missä tahansa DoX CMS:n instanssissa.
Tämä menetelmä vaatii sen sitomista elementteihin, jotka saadaan upotettua tekstiin. Käytännössä siihen tulee siis käyttää fraasielementtejä (ph). Alaviite-elementit (fn) eivät toimi tämän menetelmän kanssa, vaan niitä tulee käyttää loppuviitteisiin.
Alaviitteiden tekeminen koostuu kolmesta osasta:
- Lisää kohtaan, johon haluat viitteen tulevan, ph-elementti, jonka sisään kirjoitat alaviitteen sisällön.
- Anna kyseiselle ph-elementille tätä varten tehty elementtiluokka kuten ’FNPrince’.
- Tee käytettyihin tyylitiedostoihin vaaditut muutokset (lisätietoja alla).
Käytetyn ph-elementin sijainti määrittää, minne alaviitteeseen osoittava viite lisätään. Tästä syystä se tulee voida upottaa osaksi muuta sisältöä. Kirjoita sen sisään alaviitteen sisältö kokonaisuudessaan.
Koska kyseinen ph-elementti täytyy voida tunnistaa alaviitteeksi, sille täytyy antaa elementtiluokka tätä varten. Lisää ensin järjestelmään soveltuva elementtiluokka ja nimeä se asianmukaisesti, jotta sen käyttötarkoitus on selvä kaikille käyttäjille. Muista kirjoittaa sille myös lyhyt kuvaus heidän avukseen. Kun lisäät sisältöön ph-elementtejä alaviitteiksi, käytä tätä elementtiluokkaa niihin.
Jotta nämä elementit saadaan toimimaan alaviitteinä, täytyy asianmukaiseen tyylitiedostoon tehdä tarvittavat muutokset. Koska alaviitteet toimivat vain DocRaptor:illa kasatuissa PDF-julkaisuissa, kannattaa myös muihin tyylitiedostoihin lisätä ohjeita siitä, kuinka kyseisellä elementtiluokalla merkittyä sisältöä tulee käsitellä.
Alaviitteet ja Tyylitiedostot
Pääsääntö alaviitteitä varten on ’float: footnote’, joka toimii DoX CMS:ssä vain DocRaptor-kasaajan kanssa. Alla on selostettu, kuinka se toimii, sekä kuvattu muita näin toteutettuihin alaviitteisiin liittyviä menetelmiä. Kiitos tältä osin kuuluu Andreas Jungille ja hänen artikkelilleen alaviitteiden tyylittelyä koskien.
Alaviitteiden käyttöönottoon käytetty kohdistaja täytyy kytkeä käytettyyn elementtiluokkaan käyttäen ilmaisua [doxelementclass=”nimi”], missä ’nimi’ on kyseisen elementtiluokan tunniste. Tämän kohdistajan sisään lisätään sääntö ’float: footnote’. Tämä sääntö siirtää merkityn ph-elementin sisällön sivun alaosaan, lisää sen alkuperäiseen sijaintiin viitteen siihen, ja lisää sen eteen kyseistä viitettä vastaavan arvon. Kutakin näistä näin tuotetuista kohdista on mahdollista hallinnoida erikseen.
Koska alaviitteet toimivat vain DocRaptor-yhteensopivissa, PDF:ille tarkoitetuissa tyylitiedostoissa, on ne parasta huomioida muilla tavoin muissa tyylitiedostoissa. Tällöin sisältö säilyy muilta osin uudelleenkäytettävänä. Helpoin tapa tehdä näin on antaa samalle elementtiluokalle sääntö ’display: none’ muissa tyylitiedostoissa. Tällöin kyseiset sisällöt jäävät pois niistä julkaisuista, joissa niitä ei voida hyödyntää samaan tapaan.
Lisäksi alaviitteisiin liittyen on mahdollista muotoilla kaikkia niihin liittyviä osia. Alla on lista tähän käytetyistä kohdistimista ja selvennykset siltä osin, mitä kukin niistä tekee. Elementtiluokan tapauksessa ’nimi’ tulee korvata teidän käytössänne olevalla tähän käytetyn elementtiluokan tunnisteella.
- @page {@footnote {}}: PrinceXML antaa määrittää sivukohtaisten sijaintien tyylit. Tätä kohdistajaa käytetään alaviitteille käytetyn sijainnin sisältöjen muotoiluun.
- [doxelementclass=”nimi”]::footnote-call {}: Tämä valitsija antaa muotoilla tekstiin ph-elementin tilalle lisättävää viittausta alaviitteeseen. Käyttämällä komentoa ’content: counter ()’ voi asettaa käytetyn numerointitavan, jos käytetty laskuri on määritetty ennalta. Laskureiden määrittämisestä löytyy lisätietoa täällä.
- [doxelementclass=”PrinceFN”]::footnote-marker {}: Tämä valitsija antaa muotoilla alaviitteen eteen lisättävää (numero)tunnistetta.
Loppuviitteet
Tällä hetkellä loppuviitteet tarvitsisivat lisätukea järjestelmän tasolla, mutta niiden prioriteettitaso on ollut varsin alhainen verrattuna käyttäjien suoraan pyytämiin kehitystehtäviin. Niitä on kuitenkin mahdollista käyttää tietyillä ehdoin ja tarkkaan määritettyjen tyylitiedostojen kanssa.
Loppuviitteisiin käytetään fn-elementtejä. Ne voi laittaa joko otsikkosisältöjen loppuun tai omiin otsikkosisältöihinsä, jotka sijoitetaan esimerkiksi pääosioiden tai koko dokumentin loppuun. Viittaukset niihin tapahtuvat sisäisillä linkeillä eli xref-elementeillä, jotka viittaavat niiden sijainteihin.
Haasteet tältä osin koskevat viitteen oikein muotoilemista sekä sisällön eteen tulevan tunnisteen oikein muotoilua. Koska fn-elementteihin kohdistettaviin viittauksiin käytetään toistaiseksi muuttujaa default-series, ei tällöin saa tehdä muita viittauksia muihin elementteihin kuin (1) taulukoihin, (2) kuvakehyksiin (fig), (3) sisältöosioihin (section) ja (4) muihin otsikkosisältöihin. Muussa tapauksessa käytetty laskuri huomioi loppuviitteiden lisäksi myös muunlaisiin elementteihin kohdistuvat viittaukset.
Lisäksi yleisen sisäisten viittausten referenssiformaatin täytyy olla muotoiltu tavalla, joka on yhteensopiva loppuviitteiden kanssa. Loppuviitteiden ei tarvitse olla pelkkiä järjestyslukuja, mutta tämä on yksinkertaisin toteutus niiden osalta. Tällöin referenssiformaatin tulisi olla säädetty Asetukset-valikossa olemaan ’{{Series}} {{Number}}’.
Loppuviitteiden tekeminen koostuu kuudesta osasta:
- Vaihda viittauksien referenssiformaatti vastaamaan näille elementeille haluamaasi muotoilua Asetukset-valikossa.
- Lisää haluttuun otsikkosisältöön ainakin yksi fn-elementti ja kirjoita loppuviitteiden sisällöt niiden sisään.
- Anna lisätyille fn-elementeille ID-arvot.
- Lisää viitettä käyttävään sijaintiin xref-elementti, joka viittaa yhteen lisättyyn fn-elementtiin.
- Tee kyseisestä xref-elementistä yläviitetekstiä (tai anna sille tätä varten tehty elementtiluokka).
- Tee käytettyihin tyylitiedostoihin vaaditut muutokset (lisätietoja alla).
Ohjeet viittauksen ja loppuviitteen muotoiluun löytyvät alta.
Loppuviitteet ja Tyylitiedostot
Pääseikka loppuviitteiden muotoilun osalta on niihin käytettyjen numerotunnisteiden muuttaminen loppuviitteille soveltuviksi. Käytännössä tämä tarkoittaa niiden lyhentämistä poistamalla muut kohdat kuin käytetyn numerotunnisteen. Lisäksi viittauksen lisäämä kohde-elementin otsikko on mahdollista sijoittaa loppuviitteelle sopivammalla tavoin sisällön eteen eikä sen yläpuolelle.
Suositellut lisäykset tyylitiedostoon näytetään alla ja selitetään alempana.
.anchor-title:not(.dita-table *):not(.dita-fig *) {
float: left !important;
vertical-align: super !important;
font-size: smaller !important;
padding-right: 10px !important;
}
.dita-fn {
margin-top: -15px !important;
}
.anchor-title:not(.dita-table *):not(.dita-fig *) span:first-child {
display: none !important;
}
.Superscript .reference-title span:first-child {
display: none !important;
}
Ensimmäinen kohta säätää loppuviitteiden otsikot tavalla, joka asettaa ne viitteiden viereen eikä niiden yläpuolelle ja muuttaa tekstin soveltuvammaksi tähän tarkoitukseen. Yksityiskohdista voi päättää itse. Tässä tapauksessa tekstiä on pienennetty ja väliä pääsisältöön on laitettu kymmenen pikseliä. Pääsääntö tältä on on kuitenkin ’float: left’, joka sijoittaa tämän sisällön uudelleen.
Vaikka loppuviitteet ovat div-elementtejä, joilla on tunniste ’.dita-fn’, viittauksen niille lisäämä otsikko ei ole tämän elementin sisällä. Osoittajat eivät voi kohdistua edeltäviin elementteihin, mistä syystä määritelmä on annettu rajaamalla pois muut vaihtoehdot. Kyseistä tunnistetta voidaan kuitenkin käyttää niiden sisällön muotoiluun. Toinen kohta tekee näin siirtämällä kyseistä sisältöä ylös riittävästi, jotta se on tasossa otsikkonsa kanssa.
Kolmas kohta piilottaa loppuviitteen otsikosta kohdan, jonka arvon muuttuja default-series antaisi. Tämä jättää ainoastaan muut osat referenssiformaattia näkyviin. Jos siis referenssiformaatti on muodoltaan esimerkiksi ’{{Series}} {{Number}}’, vain viittauksen järjestysluku jäisi näkyviin.
Neljäs kohta piilottaa viitteestä kohdan, jonka arvon muuttuja default-series antaisi. Se siis tekee viitteelle saman kuin edellinen kohta tekee otsikolle. Tällä hetkellä määritys on annettu siten, että se vaikuttaisi yläviitteiden sisällä oleviin sisäisiin linkkeihin. Vaihtoehtoisesti kohta ’.Superscript’ voidaan korvata tähän käytettävällä elementtiluokalla ’[doxelementclass=”nimi”]’, missä ’nimi’ korvataan elementtiluokan tunnisteella. Tätä vaihtoehtoa suositellaan, jos yläviitteiden sisään tulee muita sisäisiä linkkejä. Lisäksi se on selvempi vaihtoehto käyttäjien kannalta. Myös kyseiselle elementtiluokalle voi antaa ylätunnistetta vastaavat tyylimääreet.
Kuten myös alaviitteiden tapauksessa, näillä määreillä on mahdollista myös piilottaa kyseiset elementit niissä julkaisuissa, jotka eivät tue niitä. Tässä tapauksessa vastaavia tilanteita on tosin vähemmän. Vaihtoehtoisesti siis linkeille voi myös antaa tagit, jotka määrittävät niiden näkyvyyden eri dokumenteissa. Tällä hetkellä linkit ilman kohteita eivät näy julkaisuissa joka tapauksessa, mutta tämä pyritään korjaamaan pian antamalla myös niille jonkinlainen ankkurisisältö katselmoinnin helpottamiseksi.