Bagaimana cara membuat referensi ke angka dalam penurunan harga menggunakan pandoc?

101

Saat ini saya sedang menulis dokumen dalam penurunan harga dan saya ingin membuat referensi ke gambar dari teks saya.

this is my text, I want a reference to my image1 [here]. blablabla

![image1](img/image1.png)

Saya ingin melakukan referensi itu karena setelah mengubah penurunan harga saya ke pdf, gambar ditempatkan di satu atau dua halaman setelahnya dan dokumennya tidak masuk akal.

MEMPERBARUI:

Saya sudah mencoba jawaban Ryan di posting itu dan saya tidak bisa membuatnya berfungsi. Ternyata kodenya:

[image]: image.png "Image Title" 
![Alt text][image] 
A reference to the [image](#image).

harus menghasilkan:

\begin{figure}[htbp] 
\centering 
\includegraphics[keepaspectratio,width=\textwidth,height=0.75\textheight]{i mage.png} 
\caption{Alt text} 
\label{image} 
\end{figure} 

A reference to the image (\autoref{image}).

sebagai gantinya, saya mendapatkan:

\begin{figure}[htbp]
\centering
\includegraphics{image.png}
\caption{Alt text}
\end{figure}

A reference to the \href{\#image}{image}.

Saya telah memperhatikan dua masalah:

  • \label{image} tidak muncul: tidak ada referensi yang dibuat.
  • (\autoref{image})menjadi \href{\#image}{image}: tidak ada referensi silang yang terdeteksi.

Dan kemudian, ketika saya mengonversinya ke pdf itu jelas tidak tertaut ke gambar. Ada tautan, tetapi tidak ada tautan ke apa pun.

Bantuan apa pun akan sangat dihargai !!

Romain Piel
sumber
1
Sudahkah Anda mencoba metode yang disebutkan di groups.google.com/group/pandoc-discuss/msg/4a42442657a96414 ?
NN
Saya sudah mengujinya dan tidak menghasilkan autoref. aneh ...
Romain Piel
Mungkin Anda harus mengedit pertanyaan Anda untuk memasukkan apa yang Anda coba, apa yang Anda dapatkan dan apa yang Anda inginkan (sehingga akan lebih mudah membantu Anda).
NN

Jawaban:

95

Di pandoc Anda bahkan dapat melakukan:

![This is the caption\label{mylabel}](/url/of/image.png)
See figure \ref{mylabel}.
NN
sumber
41
Ini hanya membantu jika Anda mengonversi ke TeX tetapi tidak jika Anda juga ingin membuat HTML dari sumber penurunan harga yang sama.
Jakob
12
Ada beberapa filter yang tersedia untuk membuat referensi gambar berfungsi dengan semua format keluaran pandoc-fignos dan pandoc-crossref
joelostblom
Sayangnya ini bukan cara yang sangat fleksibel untuk melakukannya. Lebar atau tinggi gambar tidak dapat ditentukan dengan cara ini. Apakah mungkin menyertakan PDF seperti itu? Jika tidak, itu juga akan menjadi sisi negatifnya, karena lebih disukai di PDF sebagai kasus keluaran.
Zelphir Kaltstahl
2
Dimungkinkan untuk mengatur lebar dan tinggi dengan menggunakan:![This is the caption\label{mylabel}](/url/of/image.png){width=30px height=20px}
Sam Walpole
24

Anda dapat menggunakan filter pandoc-fignos untuk penomoran dan referensi angka. Ia bekerja dengan format keluaran apapun - tidak hanya LaTeX.

Tambahkan label ke atribut gambar seperti ini:

 ![Caption.](image.png) {#fig:description}

... dan kemudian rujuk gambar seperti ini:

 @fig:description

Informasi tentang cara menginstal dan menerapkan filter pandoc-fignos diberikan di halaman Web-nya. Ada juga filter pandoc-eqnos untuk melakukan hal yang sama dengan persamaan.

tjd
sumber
Saya ingin melakukan sesuatu yang serupa dengan merujuk ke elemen daftar pesanan
DanielTuzes
18

Saya telah mengobrol dengan Ryan Grey setelah membaca jawabannya di posting serupa. Sebenarnya solusinya menggunakan:

[image]: image.png "Image Title" 
![Alt text][image] 
A reference to the [image](#image).

hanya diadaptasi saat menggunakan multimarkdown.

Dalam hal pandoc, satu-satunya solusi untuk membuat referensi silang adalah menggunakan kata kunci lateks secara langsung:

[image]: image.png "Image Title"
![Alt text \label{mylabel}][image]
See figure \ref{mylabel}.
Romain Piel
sumber
5
Tetapi seperti yang Jakob katakan pada jawaban yang diterima, "Ini hanya membantu jika Anda mengonversi ke TeX tetapi tidak jika Anda juga ingin membuat HTML dari sumber penurunan harga yang sama."
DanielTuzes
Untuk multimarkdown, apakah ada cara untuk mereferensikan gambar melalui nomor Gambar yang dihitung secara otomatis? Saya membayangkan sesuatu seperti [] (# image) dan kemudian multimarkdown akan mengganti teks kosong dengan angka (seperti yang terjadi pada catatan kaki).
Alec Jacobson
4

Pandoc mendukung bagian referensi (melalui pengidentifikasi bagian yang diawali oleh #).

Komentar tentang masalah terbuka ini menjelaskan bagaimana solusi berikut memanfaatkan pengidentifikasi bagian untuk menghasilkan referensi gambar di LaTeX dan HTML:

<div id="fig:lalune">
![A voyage to the moon\label{fig:lalune}](lalune.jpg)

</div>

[The voyage to the moon](#fig:lalune).

Baris kosong sebelumnya </div>harus diisi.

ivotron.dll
sumber
4
Solusi yang tepat, yaitu ekstensi ke sintaks penurunan harga pandoc untuk memungkinkan pengidentifikasi untuk gambar sekarang akhirnya sedang berjalan. stay tuned :)
Susanne Oberhauser
2

Dengan asumsi bahwa Anda menginginkan keluaran PDF dari Pandoc pada akhirnya:

Solusi terbaik untuk memasukkan gambar dan mengubah atributnya yang saya temukan adalah:

\begin{figure}[H]
\includegraphics[width=0.25\textwidth, height=!]{images/path.png}
\centering
\caption{mycaption}
\end{figure}

dan di saya, template.latexsaya punya:

\usepackage{wrapfig}
\usepackage{float}

Solusi lain tidak dapat menentukan lebar atau tinggi gambar, setidaknya tidak dalam penurunan harga standar. Namun seringkali penting untuk sesuatu seperti buku atau kertas untuk menentukan dimensi gambar, kecuali Anda ingin mengkonfigurasi ukuran keluaran gambar sebelum menggunakannya dalam dokumen Anda. Dalam hal ini Anda harus berurusan dengan pengaturan yang berbeda untuk alat yang Anda gunakan untuk membuat gambar.

Saya merekomendasikan dalam kasus Matplotlib untuk mengekspor ke PDF dan kemudian menggunakan kode yang saya posting. Ini akan memberikan kualitas gambar terbaik dan fleksibilitas tertinggi dalam mengonfigurasi seperti apa gambar itu dalam output PDF, tanpa harus mengkhawatirkan banyak hal.

Zelphir Kaltstahl
sumber
Apakah semua sintaks lateks ini langsung masuk ke file penurunan harga Anda?
spinup
@inup Ya. Pandoc dapat menangani barang-barang Latex yang disematkan di file penurunan harga Anda. Saran lain: Ekspor sebagai file PDF saat mengekspor dari Matplotlib. Dengan cara ini Pandoc / mesin lateks tidak akan menurunkan kualitas gambar dan Anda akan memiliki gambar yang dapat diskalakan, alih-alih sesuatu yang berubah-ubah saat Anda memperbesar dan memperkecil file PDF Anda.
Zelphir Kaltstahl
1

Dengan pandoc-crossref Anda dapat membuat referensi silang angka dengan sintaks berikut:

![Caption](file.ext){#fig:label}

Kemudian rujuk gambar dalam teks yang mirip dengan sintaks kutipan [@fig:label]dan kompilasi dengan --filter pandoc-crossref(harus disertakan sebelumnya --filter pandoc-citeprocjika Anda juga menggunakannya).

Anda dapat mengontrol gaya dengan eg \usepackage[font=small,labelfont=bf]{caption}in header-includes.


Trik terkait yang rapi jika Anda menggunakan \listoffigureslateks, adalah lua-filter ini , yang memungkinkan Anda menyetel judul pendek alih-alih menampilkan seluruh legenda gambar dalam daftar gambar Anda:

![Caption](file.ext){#fig:label short-caption='my short caption'}

lalu kompilasi dengan --lua-filter short-captions.lua.

joelostblom
sumber