> For the complete documentation index, see [llms.txt](https://overleaf-pro.ayaka.space/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://overleaf-pro.ayaka.space/latex/fi/tietopankki/033-cross-referencing-with-the-xr-package-in-overleaf.md).

# Ristiinviittaaminen xr-paketilla Overleafissa

## Yleiskatsaus

Se [`xr` paketti](https://ctan.org/pkg/xr?lang=en) avulla voit luoda ristiviittauksia yhtälöihin, kuviin, taulukoihin jne., jotka sisältyvät ulkoisiin LaTeX-asiakirjoihin, edellyttäen että kyseiset asiakirjat ovat *itsenäisiä.* Itsenäinen LaTeX-asiakirja on sellainen, joka voidaan kääntää, koska se sisältää `\documentclass{...}` -lauseen ja `\begin{document}`...`\end{document}` rakenteen.

### Käyttöyhteenveto

1. Kirjoita `\usepackage{xr}` LaTeX-tiedoston preambuliin, jonka täytyy tehdä ristiviittauksia ulkoisissa LaTeX-tiedostoissa olevaan sisältöön.
2. Käytä `xr` paketin komento `\externaldocument{filename}` määrittääksesi ulkoisen asiakirjan(t), joiden sisältöön haluat tehdä ristiviittauksia.

Se `xr` paketti toimii käyttämällä ristiviittausmerkintöjä, jotka sisältyvät `.aux` tiedostoihin, jotka luodaan, kun ulkoiset LaTeX-asiakirjat käännetään.

### Miten ristiviittaukset toimivat (lyhyt yhteenveto)

Tehdäksesi ristiviittauksen LaTeX-asiakirjan kohtaan sinun täytyy:

1. Anna sille yksilöllinen tunniste, `some_string`käyttäen `\label` komento:

```latex
\label{some_string}
```

3. Siinä kohdassa, jossa haluat viitata kyseiseen elementtiin, sinun täytyy kirjoittaa

```latex
\ref{some_string}
```

Hyvin lyhyesti sanottuna LaTeX hallitsee ristiviittauksia kirjoittamalla tietoja tiedostoon nimeltä `filename.aux` jossa `filename` on pää `.tex` käännettävän tiedoston nimi.

Jotta prosessi toimisi, LaTeX-asiakirja täytyy kääntää vähintään kahdesti: ensimmäinen käännös *luo* viitetiedot — kirjoittaen ne tiedostoon `filename.aux`. Toisen käännöksen aikana LaTeX *lukee* `filename.aux` ratkaistakseen viittaukset ja tarjotakseen tiedot korvaamaan esiintymät `\ref{some_string}`.

* Lisätietoja ristiviittauksista saat Overleaf-artikkelista [Ristiviittaukset osioihin, yhtälöihin ja kelluviin elementteihin](/latex/fi/asiakirjan-rakenne/03-cross-referencing-sections-equations-and-floats.md).

## Projektit, joissa xr-pakettia ei tarvita

Suuret LaTeX-projektit, kuten kirjat tai pitkät raportit, jaetaan usein useisiin pienempiin `.tex` tiedostoihin, yksi lukua kohti, ja kunkin luvun `.tex` tiedosto lisätään pää-LaTeX-asiakirjaan käyttämällä `\input` tai `\include`. Yleensä nuo luvut eivät ole itsenäisiä: yksittäisiä lukuja `\documentclass{...}` -lausetta tai `\begin{document}...\end{document}` rakennetta. Nuo luvut on tarkoitettu *sisällytettäviksi* "säiliö"-asiakirjaan, joka *voidaan* kääntää. Tällaisissa tapauksissa ristiviittaukset asiakirjan osiin — missä tahansa yksittäisessä lukutiedostossa — voivat toimia normaalisti: sinun ei tarvitse käyttää `xr` pakettiin.

Jos haluat tutkia esimerkkiä suuresta projektista, voit [avata tämän esimerkin Overleafissa.](https://www.overleaf.com/project/new/template/20618?id=70769185\&templateName=Managing+a+large+project+on+Overleaf\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=)

## Esimerkki projektista, jossa xr-paketti on tarpeen

Oletetaan, että sinulla on joukko itsenäisiä LaTeX-asiakirjoja, kuten kokoelma N artikkelia: `article1.tex`, `article2.tex` ... `articleN.tex`. Jokainen näistä artikkeleista voidaan kääntää erikseen, ja ne on todennäköisesti kirjoitettu käyttäen erilaisia asiakirjaluokkia, paketteja jne.

Kuvittele nyt, että haluat käyttää LaTeXia kirjoittaaksesi näiden artikkelien yleiskatsauksen tai yhteenvedon — kutsutaan tiedostoa `summary.tex`. Yhteenvedon täytyy viitata näiden yksittäisten, itsenäisten N artikkelin osioihin, kuviin, taulukoihin, yhtälöihin jne. Miten voimme tehdä sen?

Se `xr` paketti antaa sinun tehdä tämän: se mahdollistaa `summary.tex` käyttämään viitetunnisteita, jotka on luotu mistä tahansa itsenäisestä `article*.tex` .bib-tiedostoja.

### Huomio .aux-tiedostoista

* Huomaa, että käytämme tähteä (`*`) paikkamerkkinä mille tahansa numerolle 1:stä N:ään.

Minkä tahansa itsenäisen tiedoston kääntäminen `article1.tex`, `article2.tex` ... `articleN.tex` saa LaTeXin luomaan vastaavan `article*.aux` (\*\*`aux`\*\*apu-) tiedosto, joka muun muassa sisältää tunnistetietoja, joita tarvitaan ristiviittausten luomiseen.

Jos jokin `article*.tex` tiedostoista muokataan—for example, to change, add, or remove labels (`\label{...}`)—vastaava `article*.tex` tiedosto(t) täytyy kääntää uudelleen siihen liittyvien `article*.aux` tiedostoihin.

Muutosten havaitseminen kohteessa `article*.tex`, ja niiden jälkikääntäminen voidaan automatisoida Overleafissa käyttämällä sopivaa `latexmkrc` tiedostossa.

## Miten xr-pakettia käytetään Overleafissa

Käytämme yksinkertaistettua versiota usean artikkelin esimerkistämme; erityisesti näytämme, miten kääntöprosessi automatisoidaan `latexmkrc` tiedostoa [John Collinsin Overleafille toimittaman](#code-for-latexmkrc) ([ylläpitäjän `latexmk`](https://ctan.org/pkg/latexmk?lang=en)).

### Esimerkissämme käytetyt tiedostot

Esimerkkimme käyttää seuraavia tiedostoja:

* `**summary.tex**`: tämä on yleiskatsaustiedostomme. Tarvitsemme sitä viittaamaan sisältöön, joka sisältyy `article1.tex`, kuten kuviin ja osioihin.
  * `summary.tex` lataa `xr` paketin ja käyttää `\externaldocument{article1}` määrittääkseen, että viitetiedot tiedostosta `article1.aux` tulee käyttää.
* `**article1.tex**`: yksi itsenäinen artikkeli, joka sisältää sisäisiä ristiviittauksia. Käännettäessä `article1.tex` luodaan ristiviittausdata, joka sisältyy tiedostoon `article1.aux`.
  * Ulkoinen tiedosto, kuten `article1.tex` joka on ehkä jonkun muun kirjoittama — jotta voit käyttää sitä “sellaisena kuin se on toimitettu”, eli muuttamattomana.
* `**latexmkrc**`: sisältää koodia (Perl), jolla automatisoidaan uudelleenkääntäminen `article1.tex` siihen tehtyjen muutosten vuoksi — jotta voidaan luoda päivitetty `article1.aux` tiedostossa.
  * Meidän `latexmkrc` tiedostomme oli [John Collinsin Overleafille toimittaman](#code-for-latexmkrc) ([ylläpitäjän `latexmk`](https://ctan.org/pkg/latexmk?lang=en)).

### Tietoa \externaldocument-komennosta

Se `xr` paketti tarjoaa`\externaldocument` komennon, jonka yleinen muoto on

```latex
\externaldocument[prefix]{external_file}
```

* **`etuliite` (valinnainen):** Tämä valinnainen argumentti antaa sinun määrittää etuliitteen, joka lisätään kaikkiin ulkoisesta asiakirjasta tuotuihin tunnisteisiin. Tämä on hyödyllistä, jotta vältetään ristiriidat, jos samoja tunnistenimiä käytetään useissa asiakirjoissa.
* **`external_file` (pakollinen):** Tämä pakollinen argumentti määrittää ulkoisen LaTeX-asiakirjan nimen (ilman `.tex` päätettä), josta haluat tuoda viitteitä.  `xr` paketti etsii `.aux` tiedostoa, joka vastaa `external_file` (esim., `external_file.aux`) saadakseen tunnisteet.

Esimerkiksi, jos meidän pää `.tex` tiedostoa `summary.tex` ja ulkoinen tiedosto, `article1.tex` sisältävät molemmat tunnisteen `\label{eq:1}` silloin meillä on tunnistenimiristiriita. Se voidaan estää kirjoittamalla

```latex
\externaldocument[art1-]{article1}
```

jolloin kaikki tunnisteet, jotka luodaan käännettäessä `article1.tex` saavat etuliitteekseen `art1-`. Nyt voit käyttää `\label{eq:1}`, joka sisältyy `article1.tex`, kirjoittamalla `\ref{art1-eq:1}` tiedostoihin `summary.tex`.

### Projektin tiedostot

#### article1.tex

Seuraavan koodin voi avata Overleafissa käyttäen listauksen alla olevaa linkkiä.

```latex
\documentclass{article}
\title{Tämä on \texttt{article1.tex}}
\begin{document}
\section{Introduction}
\label{introduction}

Tämä on itsenäinen \LaTeX{}-asiakirja, jossa on
viitteitä, joita haluamme käyttää \texttt{summary.tex}-tiedostossa.

\subsection{Matematiikkaviitteet}
\label{mathrefs}
Kuten kohdassa \ref{introduction} mainittiin,
erilaisiin elementteihin voidaan viitata
asiakirjassa.

\subsection{Potenssisarjat}
\label{powers}

\begin{equation}
\label{eq:1}
\sum_{i=0}^{\infty} a_i x^i
\end{equation}

Yhtälö \ref{eq:1} on tyypillinen potenssisarja.
\end{document}
```

[Avaa `article1.tex` Overleafissa](https://www.overleaf.com/docs?engine=%5B%5B%3ATemplate%3AEngine%5D%5D}\&snip_name\[]=readme.txt\&snip\[]=A+project+created+from+the+Overleaf+wiki\&snip_name\[]=article1.tex\&main_document=article1.tex\&snip\[]=%5Cdocumentclass%7Barticle%7D%0A%5Ctitle%7BThis+is+%5Ctexttt%7Barticle1.tex%7D%7D%0A%5Cbegin%7Bdocument%7D%0A%5Csection%7BIntroduction%7D%0A%5Clabel%7Bintroduction%7D%0A%0AThis+is+a+standalone+%5CLaTeX%7B%7D+document+with%0Areferences+we+want+to+use+in+%5Ctexttt%7Bsummary.tex%7D.%0A%0A%5Csubsection%7BMath+references%7D%0A%5Clabel%7Bmathrefs%7D%0AAs+mentioned+in+section+%5Cref%7Bintroduction%7D%2C+%0Adifferent+elements+can+be+referenced+within%0Aa+document.%0A%0A%5Csubsection%7BPowers+series%7D%0A%5Clabel%7Bpowers%7D%0A%0A%5Cbegin%7Bequation%7D%0A%5Clabel%7Beq%3A1%7D%0A%5Csum_%7Bi%3D0%7D%5E%7B%5Cinfty%7D+a_i+x%5Ei%0A%5Cend%7Bequation%7D%0A%0AEquation+%5Cref%7Beq%3A1%7D+is+a+typical+power+series.%0A%5Cend%7Bdocument)

Kääntäminen `article1.tex` tuottaa seuraavan tulosteen:

![article1.tex-tiedoston kääntämisen tuottama tulos Overleafissa](/files/f91cd48a1dbe78e58e6a619a80908086ac6eeb9d)

#### summary.tex

Tässä on alkuperäinen `summary.tex` tiedostoa *ennen kuin* olemme määrittäneet, mihin ulkoiseen asiakirjaan haluamme viitata. Yksinkertaisuuden vuoksi, `summary.tex` ei sisällä mitään `\label` komentoja, koska sisäisiä ristiviittauksia ei ole. Kaikki `\ref` komennot viittaavat tunnisteisiin, jotka on luotu `\label` komentojen avulla, jotka sisältyvät `article1.tex`.

```latex
\documentclass{article}
\usepackage{xr}
\title{Tämä on \texttt{summary.tex}}
\begin{document}
Tiedostossa \texttt{article1.tex} johdanto on osio \ref{introduction}. Tässä tiedostossa on kaksi alakohtaa: \ref{mathrefs} ja \ref{powers}. Alakohdassa \ref{powers} yhtälö \ref{eq:1} havainnollistaa potenssisarjaa.
\end{document}
```

[Avaa tämä *puutteellinen* `summary.tex` Overleafissa](https://www.overleaf.com/docs?engine=%5B%5B%3ATemplate%3AEngine%5D%5D}\&snip_name\[]=readme.txt\&snip\[]=A+project+created+from+the+Overleaf+wiki\&snip_name\[]=summary.tex\&main_document=summary.tex\&snip\[]=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bxr%7D%0A%5Ctitle%7BThis+is+%5Ctexttt%7Bsummary.tex%7D%7D%0A%5Cbegin%7Bdocument%7D%0AIn+the+file+%5Ctexttt%7Barticle1.tex%7D%2C+the+introduction+is+section+%5Cref%7Bintroduction%7D.++In+that+file%2C+there+are+two+subsections%3A+%5Cref%7Bmathrefs%7D+and+%5Cref%7Bpowers%7D.+In+subsection+%5Cref%7Bpowers%7D%2C+equation+%5Cref%7Beq%3A1%7D+demonstrates+a+power+series.%0A%5Cend%7Bdocument%7D)

Jos käännämme tämän version `summary.tex` se yrittää lukea viitetietoja tiedostosta `summary.aux` mutta tarvittavat tiedot ovat ulkoisessa tiedostossa `article1.aux` jota ei vielä voida käyttää.

Tämän puutteellisen `summary.tex` tiedoston kääntäminen tuottaa seuraavan tulosteen, jossa kaksoiskysymysmerkit osoittavat määrittelemättömiä viitteitä:

![Kuva, joka näyttää puuttuvien viitteiden ilmoituksen](/files/bdb519b5148a2308e9d3937245454a42673c90fc)

### Ulkoisen asiakirjan määrittäminen

Seuraava vaihe on määrittää `article1` ulkoisen asiakirjan nimeksi, jonka tunnisteisiin haluamme viitata. Lisää seuraava rivi `summary.tex`:

```latex
\externaldocument{article1}
```

Tässä, `article1` voidaan korvata millä tahansa tiedostolla, jonka tunnisteisiin haluat päästä käsiksi — voit käyttää useita `\externaldocument` komentoja päästäksesi käsiksi lisäulkotiedostoihin.

### latexmkrc-tiedoston luominen

Seuraava vaihe on luoda `latexmkrc` tiedosto alla näkyvällä tavalla:

* Valitse projektin editori-ikkunassa **Uusi tiedosto** kuvake projektin ikkunan vasemmassa yläkulmassa.
* Valitse **Uusi tiedosto** kohdasta **Lisää tiedostoja** -ponnahdusikkunasta ja nimeä tiedosto `latexmkrc`— huomaa, ettei tiedostopäätettä ole:

![latexmkrc-tiedoston luominen Overleafissa](/files/efe9d1d7d66061c9f945c98595489b07a1416e48)

* Varmista, että `latexmkrc` tiedosto luodaan ja tallennetaan projektin tiedostoalueen ylä- (juuri-)tasolle. Eli ei minkään kansioiden sisään tiedostopuussa.
* Kopioi ja liitä seuraava koodi `latexmkrc` tiedostossa.

#### Koodi latexmkrc:lle

Overleaf kiittää John Collinsia, [ylläpitäjän `latexmk`](https://ctan.org/pkg/latexmk?lang=en)kun hän otti meihin yhteyttä toimittaakseen seuraavan `latexmkrc` tiedoston, jonka julkaisemme mielellämme kokonaan — mukaan lukien erittäin hyödylliset rivinsisäiset kommentit.

```perl
# Tämä näyttää, miten xr-pakettia käytetään latexmk:n kanssa.
# John Collins 2023-03-29
#
# xr-pakettia ("järjestelmä ulkoisia viitteitä varten") käytetään asiakirjassa
# tekemään viittauksia osioihin, yhtälöihin jne. muissa ulkoisissa
# asiakirjoissa.
# Tämän tiedoston määrittelyt mahdollistavat, että latexmk soveltaa latexmk:tä
# päivittää automaattisesti ulkoisen asiakirjan aina, kun sen .tex-tiedosto muuttuu,
# jotta pääasiakirjan viitteet pysyvät ajan tasalla.

# Huomautuksia:
#    1. Tämä versio on määritetty sijoittamaan käännöksistä saadut tiedostot
#       ulkoisista asiakirjoista määritettyyn alihakemistoon, jotta erotetaan
#       mahdollisesti lukuisat luodut tiedostot pääasiakirjan
#       hakemistoista.
#    2. Mutta jotta latexmk:n mukautettua riippuvuusmekanismia voidaan käyttää, kuten tässä,
#       alidokumentin käännöksen aux-tiedoston on oltava luotuna
#       samassa hakemistossa kuin vastaava lähde-.tex-tiedosto. Siksi
#       .aux-tiedosto kopioidaan.
#    3. Oletetaan, että ulkoiset asiakirjat käännetään
#       pdflatexillä. Tämä voidaan tietenkin muuttaa vaihtamalla '-pdf'
#       kutsutulle latexmk:lle annettu valitsin tarvittavaksi.
#    4. Ihanteellinen toteutus varmistaisi myös, että ulkoisen
#       asiakirjan uudelleenkääntäminen tapahtuu myös aina, kun jokin sen muista lähde
#       tiedostoista muuttuu. Mutta tätä ei tehdä nykyisessä versiossa, ja
#       se edellyttäisi todennäköisesti joko latexmk:n sisäisten muuttujien käyttöä
#       tai lisälaajennuksia latexmk:ään.
#    5. Koodi käyttää aliohjelmia copy ja fileparse, jotka ladataan
#       latexmk:ään Perl-paketeista File::Copy ja File::Basename.
#    6. Se käyttää myös joitakin vielä dokumentoimattomia latexmk:n ominaisuuksia: taulukkoa
#       muuttuja @file_not_found sekä aliohjelmia popd, pushd ja
#       rdb_add_generated.

#--------------------
# Ulkoisten asiakirjojen kääntämisen määritettävät valinnat

# Ulkoisten asiakirjojen käännöksestä tulevien tulostetiedostojen alihakemisto:
$sub_doc_output = 'output-subdoc';

# Valitsimet, jotka annetaan latexmk:lle ulkoisten asiakirjojen kääntämistä varten:
@sub_doc_options = ();

push @sub_doc_options, '-pdf'; # Käytä pdflatex:ää ulkoisten asiakirjojen kääntämiseen.
# Korvaa '-pdf' valitsimella '-pdfdvi', 'pdfxe' tai 'pdflua' tarvittaessa.

#--------------------

# Lisää xr:n lokitiedostoviestiä puuttuvista tiedostoista vastaava kuvio latexmk:n
# luetteloon. Latexmk:n muuttujaa @file_not_found ei ole vielä dokumentoitu.
# Tätä riviä ei tarvita latexmk:n versiossa 4.80 tai uudemmassa.
push @file_not_found, '^No file\\s*(.+)\s*$';

add_cus_dep( 'tex', 'aux', 0, 'makeexternaldocument' );
sub makeexternaldocument {
    if ( $root_filename ne $_[0] )  {
        my ($base_name, $path) = fileparse( $_[0] );
        pushd $path;
        my $return = system "latexmk",
                            @sub_doc_options,
                            "-aux-directory=$sub_doc_output",
                            "-output-directory=$sub_doc_output",
                            $base_name;
        if ( ($sub_doc_output ne '') && ($sub_doc_output ne '.') ) {
               # Tässä tapauksessa pdflatex:n luoma .aux-tiedosto ei ole samassa
               # hakemistossa kuin .tex-tiedosto.
               # Siksi:
               # 1. Varsinaisesti luotu aux-tiedosto täytyy listata tämän
               #    säännön tuottamana, jotta latexmk käsittelee riippuvuudet oikein.
               #    (Ratkaistava ongelma: jos $sub_dir_output on sama kuin $aux_dir
               #    pääasiakirjalle, xr saattaa lukea .aux-tiedostoa
               #    aux_dir-hakemistossa eikä sitä, jonka latexmk olettaa mukautetun riippuvuuden
               #    tuottavan, eli .tex-lähdetiedoston kanssa samassa hakemistossa
               #    tälle mukautetulle riippuvuudelle.)
               #    Käytä vielä dokumentoimatonta latexmk:n aliohjelmaa rdb_add_generated
               #    tähän:
               # 2. .aux-tiedoston kopion täytyy olla samassa hakemistossa kuin .tex-tiedosto
               #    täyttääkseen latexmk:n määritelmän mukautetusta riippuvuudesta.
             rdb_add_generated( "$sub_doc_output/$base_name.aux" );
             copy "$sub_doc_output/$base_name.aux", ".";
        }
        popd;
        return $return;
   }
}
```

### Avaa Overleaf-projekti, jossa demonstroidaan xr-pakettia

Seuraava kolmesta tiedostosta koostuva projekti voidaan nyt avata Overleafissa käyttäen yllä ja alla tiedostolistauksien yhteydessä annettuja linkkejä. Huomaa, että `latexmkrc` tiedosto sisältää John Collinsin toimittaman koodin, mutta lyyyden vuoksi useimmat kommentit on poistettu.

[Avaa tämä kolmesta tiedostosta koostuva esimerkki Overleafissa.](/latex/fi/tietopankki/033-cross-referencing-with-the-xr-package-in-overleaf.md)

**summary.tex**

Tämä on yhteenvetotiedostomme. Tästä tiedostosta käsin haluamme käyttää ulkoisissa tiedostoissa luotuja ristiviittauksia. Tässä haluamme käyttää tunnisteita, jotka on luotu tiedostossa `article1.tex`.

```latex
\documentclass[12pt]{article}
\usepackage{xr}

\title{xr-paketin käyttäminen Overleafissa}
% laita kaikki ulkoiset asiakirjat tänne!
\externaldocument{article1}

\begin{document}

Tiedostossa \texttt{article1.tex} johdanto on osio \ref{introduction}. Tässä tiedostossa on kaksi alakohtaa: \ref{mathrefs} ja \ref{powers}. Alakohdassa \ref{powers} yhtälö \ref{eq:1} havainnollistaa potenssisarjaa.

\end{document}
```

**article1.tex**

Tämä tiedosto on yksi artikkeleistamme. Huomaa, että se sisältää erilaisia `\label` komentoja tunnisteiden luomiseksi, joita, kiitos `xr` paketin, voimme käyttää tiedostossa `summary.tex`.

```latex
\documentclass{article}
\title{Tämä on \texttt{article1.tex}}
\begin{document}
\section{Introduction}
\label{introduction}

Tämä on itsenäinen \LaTeX{}-asiakirja, jossa on
viitteitä, joita haluamme käyttää \texttt{summary.tex}-tiedostossa.

\subsection{Matematiikkaviitteet}
\label{mathrefs}
Kuten kohdassa \ref{introduction} mainittiin,
erilaisiin elementteihin voidaan viitata
asiakirjassa.

\subsection{Potenssisarjat}
\label{powers}

\begin{equation}
\label{eq:1}
\sum_{i=0}^{\infty} a_i x^i
\end{equation}

Yhtälö \ref{eq:1} on tyypillinen potenssisarja.
\end{document}
```

**latexmkrc**

Tämä `latexmkrc` tiedosto sisältää koodia, jolla varmistetaan ulkoisten tiedostojen kääntäminen.

```latex
$sub_doc_output = 'output-subdoc';

@sub_doc_options = ();

push @sub_doc_options, '-pdf'; # Käytä pdflatex:ää ulkoisten asiakirjojen kääntämiseen.
# Korvaa '-pdf' valitsimella '-pdfdvi', 'pdfxe' tai 'pdflua' tarvittaessa.

push @file_not_found, '^No file\\s*(.+)\s*$';

add_cus_dep( 'tex', 'aux', 0, 'makeexternaldocument' );
sub makeexternaldocument {
    if ( $root_filename ne $_[0] )  {
        my ($base_name, $path) = fileparse( $_[0] );
        pushd $path;
        my $return = system "latexmk",
                            @sub_doc_options,
                            "-aux-directory=$sub_doc_output",
                            "-output-directory=$sub_doc_output",
                            $base_name;
        if ( ($sub_doc_output ne '') && ($sub_doc_output ne '.') ) {

             rdb_add_generated( "$sub_doc_output/$base_name.aux" );
             copy "$sub_doc_output/$base_name.aux", ".";
        }
        popd;
        return $return;
   }
}
```

[Avaa tämä kolmesta tiedostosta koostuva esimerkki Overleafissa.](/latex/fi/tietopankki/033-cross-referencing-with-the-xr-package-in-overleaf.md)

Seuraava kuva on selitetty versio ladotun `summary.tex`asiakirjan tulosteesta, joka näyttää ristiviittaukset ja niitä vastaavat tunnisteet ulkoisesta tiedostosta `article1.tex`.

![Ulkoisesta tiedostosta tuotujen viitteiden näyttäminen](/files/f79656e1af80d5690a80520b3ec2cbcfc27141fd)

* Lisätietoja ristiviittauksista saat Overleaf-artikkelista [Ristiviittaukset osioihin, yhtälöihin ja kelluviin elementteihin](/latex/fi/asiakirjan-rakenne/03-cross-referencing-sections-equations-and-floats.md).

## Huomio syntaksivirheistä

Pääprojektitiedostossasi voit käyttää Overleafin [Pysäytä ensimmäiseen virheeseen -kääntötilaa](/latex/fi/tietopankki/149-using-the-stop-on-first-error-compilation-mode.md) varmistaaksesi, että kääntäminen päättyy välittömästi heti ensimmäisen virheen havaitsemisen jälkeen. Tämä voi auttaa eristämään ja tunnistamaan koodisi virheet sen sijaan, että virheet kasautuvat, mikä tekisi ongelmien löytämisestä ja virheenkorjauksesta paljon vaikeampaa.

Se *external* asiakirjat käännetään automaattisesti `latexmkrc` tiedoston kautta; näin ollen niissä olevat LaTeX-syntaksivirheet eivät näy Overleafin käyttöliittymässä — ellei niitä käännetä uudelleen myös Overleafissa. Näiden ulkoisten tiedostojen virheet voivat estää ristiviittausten näkymisen oikein ladotussa PDF-tiedostossa, joten suosittelemme vahvasti tarkistamaan ja korjaamaan tällaiset virheet heti niiden ilmaantuessa.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://overleaf-pro.ayaka.space/latex/fi/tietopankki/033-cross-referencing-with-the-xr-package-in-overleaf.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
