Pandoc kullanarak markdown'daki bir rakama nasıl referans verebilirim?


101

Şu anda markdown'da bir belge yazıyorum ve metnimden bir resme referans vermek istiyorum.

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

![image1](img/image1.png)

Bu referansı yapmak istiyorum çünkü markdown'umu pdf'ye dönüştürdükten sonra resimler bir veya iki sayfa sonra yerleştiriliyor ve belge bir anlam ifade etmiyor.

GÜNCELLEME:

Denedim Ryan'ın cevabı içinde söz konusu yayında ve bunu çalışma yapamaz. Görünüşe göre kod:

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

üretmeli:

\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}).

bunun yerine şunu elde ederim:

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

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

İki problem fark ettim:

  • \label{image} görünmez: referans oluşturulmaz.
  • (\autoref{image})şöyle olur \href{\#image}{image}: çapraz referans algılanmaz.

Ve sonra, bunu pdf'ye dönüştürdüğümde, açıkça görselle bağlantı kurmuyor. Bir bağlantı var ama hiçbir şeyle bağlantısı yok.

Herhangi bir yardım çok takdir edilecektir !!



Test ettim ve bir otomatik geri dönüş üretmiyor. garip ...
Romain Piel

Belki sorunuzu denediklerinizi, sahip olduklarınızı ve ne istediğinizi içerecek şekilde düzenlemelisiniz (böylece size daha kolay yardım edebilsin).
NN

Yanıtlar:


95

Pandoc'ta şunları bile yapabilirsiniz:

![This is the caption\label{mylabel}](/url/of/image.png)
See figure \ref{mylabel}.

41
Bu yalnızca TeX'e dönüştürürseniz yardımcı olur, ancak aynı Markdown kaynağından HTML oluşturmak istemiyorsanız değil.
Jakob

12
Şekil referansının tüm çıktı biçimleriyle çalışması için birkaç filtre mevcuttur pandoc-fignos ve pandoc-crossref
joelostblom

Ne yazık ki bu, bunu yapmanın çok esnek bir yolu değil. Görüntünün genişliği veya yüksekliği bu şekilde belirlenemez. PDF'leri bu şekilde eklemek mümkün müdür? Aksi takdirde, bu bir dezavantaj olur, çünkü PDF'de çıktı durumu olarak tercih edilir.
Zelphir Kaltstahl

2
![This is the caption\label{mylabel}](/url/of/image.png){width=30px height=20px}
Sam Walpole

24

Şekil numaralandırma ve referanslama için pandoc-fignos filtresini kullanabilirsiniz . Herhangi bir çıktı formatıyla çalışır - sadece LaTeX değil.

Görselin aşağıdaki gibi özniteliklerine bir etiket ekleyin:

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

... ve sonra şekle şu şekilde referans verin:

 @fig:description

Pandoc-fignos filtresinin nasıl kurulacağına ve uygulanacağına ilişkin bilgiler Web sayfasında verilmektedir. Denklemlerle aynı şeyi yapmak için pandoc-eqnos filtresi de vardır .



18

Benzer bir gönderideki cevabını okuduktan sonra Ryan Gray ile sohbet ettim . Aslında kullanma çözümü:

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

yalnızca multimarkdown kullanılırken uyarlanır.

Pandoc söz konusu olduğunda, çapraz referans yapmanın tek çözümü doğrudan lateks anahtar kelimeler kullanmaktır:

[image]: image.png "Image Title"
![Alt text \label{mylabel}][image]
See figure \ref{mylabel}.

5
Ancak Jakob'un kabul edilen yanıtta dediği gibi, "Bu yalnızca TeX'e dönüştürürseniz yardımcı olur, ancak aynı Markdown kaynağından HTML oluşturmak istemiyorsanız değil."
DanielTuzes

Çoklu işaretleme için, şekle otomatik olarak hesaplanan bir Şekil numarasıyla başvurmanın bir yolu var mı? [] (# Resim) gibi bir şey düşünürdüm ve sonra çoklu işaretleme boş metni bir sayı ile değiştirir (dipnotlarda olduğu gibi).
Alec Jacobson

4

Pandoc, referans bölümlerini destekler ( ön ekli bölüm tanımlayıcıları aracılığıyla #).

Bu açık sorunla ilgili yorumlar , aşağıdaki geçici çözümün LaTeX ve HTML'de görüntü referansları oluşturmak için bölüm tanımlayıcılarından nasıl yararlandığını açıklar:

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

</div>

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

Önceki boş satır </div>gereklidir.


4
Uygun bir çözüm, yani resimler için tanımlayıcılara izin vermek için pandoc markdown sözdizimine bir uzantı, nihayet yolda. bizi izlemeye devam edin :)
Susanne Oberhauser

2

Sonunda Pandoc'un PDF çıktısını istediğinizi varsayarsak:

Görüntüleri eklemek ve bulduğum niteliklerini değiştirmek için en iyi çözüm şudur:

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

ve template.latexbende var:

\usepackage{wrapfig}
\usepackage{float}

Diğer çözümler, en azından standart işaretlemede değil, görüntü genişliğini veya yüksekliğini belirleyemez. Bununla birlikte, resimlerin çıktı boyutunu belgenizde kullanmadan önce yapılandırmak istemeniz dışında, genellikle kitap veya kağıt gibi bir şeyin şekillerin boyutlarını belirtmesi önemlidir. Bu durumda, görüntüleri oluşturmak için kullandığınız araçlar için farklı ayarlarla uğraşmanız gerekir.

Matplotlib durumunda PDF'ye dışa aktarmanızı ve ardından gönderdiğim kodu kullanmanızı öneririm. Bu, bir şeyler hakkında endişelenmenize gerek kalmadan, çıktı PDF'sinde görüntünün nasıl görüneceğini yapılandırmada en iyi görüntü kalitesini ve en yüksek esnekliği sağlayacaktır.


Tüm bu lateks sözdizimi doğrudan markdown dosyanıza mı giriyor?
2016

@spinup Evet. Pandoc, markdown dosyanızdaki gömülü Lateks malzemelerini işleyebilir. Başka bir tavsiye: Matplotlib'den dışa aktarırken PDF dosyası olarak dışa aktarın. Bu şekilde Pandoc / lateks motoru görüntü kalitesini düşürmeyecek ve PDF dosyanızı yakınlaştırıp uzaklaştırdığınızda pikselli bir şey yerine ölçeklenebilir bir görüntüye sahip olacaksınız.
Zelphir Kaltstahl

1

İle Pandoc-CrossRef'de aşağıdaki yazım referans rakamları geçebilir:

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

Ardından, metin içindeki şekle alıntı sözdizimine benzer şekilde referans verin [@fig:label]ve ile derleyin --filter pandoc-crossref( --filter pandoc-citeprocbunu da kullanıyorsanız, daha önce gelmesi gerekir ).

Şekillendirmeyi örneğin \usepackage[font=small,labelfont=bf]{caption}in ile kontrol edebilirsiniz header-includes.


Latekste kullanırsanız düzgün bir ilgili numara \listoffigures, figür listenizde tüm şekil göstergesinin görünmesi yerine kısa bir başlık ayarlamanıza izin veren bu lua filtresidir :

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

sonra ile derleyin --lua-filter short-captions.lua.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.