Làm cách nào để tham chiếu đến một con số trong markdown bằng pandoc?


100

Tôi hiện đang viết một tài liệu bằng markdown và tôi muốn tham chiếu đến một hình ảnh từ văn bản của mình.

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

![image1](img/image1.png)

Tôi muốn làm tài liệu tham khảo đó vì sau khi chuyển đổi đánh dấu của tôi sang pdf, hình ảnh sẽ được đặt trong một hoặc hai trang sau đó và tài liệu không có ý nghĩa gì.

CẬP NHẬT:

Tôi đã thử câu trả lời của Ryan trong bài đăng đó và tôi không thể làm cho nó hoạt động. Rõ ràng là mã:

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

nên sản xuất:

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

thay vào đó, tôi nhận được:

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

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

Tôi nhận thấy hai vấn đề:

  • \label{image} không xuất hiện: không có tham chiếu nào được tạo.
  • (\autoref{image})trở thành \href{\#image}{image}: không có tham chiếu chéo nào được phát hiện.

Và sau đó, khi tôi chuyển đổi nó sang pdf, nó rõ ràng không liên kết đến hình ảnh. Có một liên kết, nhưng nó không liên kết đến bất cứ thứ gì.

Bất kì sự trợ giúp nào đều được đánh giá cao!!


1
Bạn đã thử phương pháp được đề cập trong groups.google.com/group/pandoc-discuss/msg/4a42442657a96414 chưa?
NN

Tôi đã thử nghiệm nó và nó không tạo ra autoref. kỳ lạ ...
Romain Piel

Có thể bạn nên chỉnh sửa câu hỏi của mình để bao gồm những gì bạn đã cố gắng, những gì bạn có được và những gì bạn muốn (để dễ dàng giúp bạn hơn).
NN

Câu trả lời:


95

Trong pandoc, bạn thậm chí có thể làm:

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

41
Điều này chỉ hữu ích nếu bạn chuyển đổi sang TeX nhưng không hữu ích nếu bạn cũng muốn tạo HTML từ cùng một nguồn Markdown.
Jakob

12
Có một vài bộ lọc sẵn để làm cho công việc con số tham khảo với tất cả các định dạng đầu ra pandoc-fignospandoc-CrossRef
joelostblom

Thật không may, đây không phải là một cách rất linh hoạt để làm điều đó. Người ta không thể chỉ định chiều rộng hoặc chiều cao của hình ảnh theo cách này. Có thể bao gồm các tệp PDF theo cách đó không? Nếu không, đó cũng sẽ là một nhược điểm, vì nó được ưu tiên trong PDF làm trường hợp đầu ra.
Zelphir Kaltstahl

2
Có thể đặt chiều rộng và chiều cao bằng cách sử dụng:![This is the caption\label{mylabel}](/url/of/image.png){width=30px height=20px}
Sam Walpole

24

Bạn có thể sử dụng bộ lọc pandoc-fignos để đánh số và tham chiếu hình. Nó hoạt động với bất kỳ định dạng đầu ra nào - không chỉ LaTeX.

Thêm nhãn vào các thuộc tính của hình ảnh như sau:

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

... và sau đó tham chiếu hình như sau:

 @fig:description

Thông tin về cách cài đặt và áp dụng bộ lọc pandoc-fignos được cung cấp trên trang Web của nó. Ngoài ra còn có bộ lọc pandoc-eqnos để làm điều tương tự với các phương trình.


Tôi muốn làm điều gì đó tương tự với đề cập đến một phần tử của một danh sách đặt hàng
DanielTuzes

18

Tôi đã trò chuyện với Ryan Gray sau khi đọc câu trả lời của anh ấy trong một bài đăng tương tự. Trên thực tế, giải pháp sử dụng:

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

chỉ được điều chỉnh khi sử dụng multimarkdown.

Khi nói đến pandoc, giải pháp duy nhất để tạo tham chiếu chéo là sử dụng trực tiếp các từ khóa latex:

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

5
Nhưng như Jakob đã nói ở câu trả lời được chấp nhận, "Điều này chỉ hữu ích nếu bạn chuyển đổi sang TeX nhưng không hữu ích nếu bạn cũng muốn tạo HTML từ cùng một nguồn Markdown."
DanielTuzes

Đối với multimarkdown, có cách nào để tham chiếu hình thông qua số Hình được tính toán tự động không? Tôi sẽ tưởng tượng một cái gì đó giống như [] (# hình ảnh) và sau đó multimarkdown sẽ thay thế văn bản trống bằng một số (giống như đối với chú thích cuối trang).
Alec Jacobson,

4

Pandoc hỗ trợ các phần tham chiếu (thông qua số nhận dạng phần có tiền tố là #).

Nhận xét về vấn đề còn mở này mô tả cách giải pháp sau sử dụng mã nhận dạng phần để tạo tham chiếu hình ảnh trong LaTeX và HTML:

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

</div>

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

Dòng trống trước </div>là bắt buộc.


4
Một giải pháp thích hợp, tức là một phần mở rộng cho cú pháp đánh dấu pandoc để cho phép số nhận dạng cho các bức ảnh cuối cùng cũng đang được thực hiện. hãy theo dõi :)
Susanne Oberhauser

2

Giả sử rằng bạn muốn đầu ra PDF của Pandoc ở cuối:

Giải pháp tốt nhất để chèn hình ảnh và thay đổi các thuộc tính của chúng mà tôi tìm thấy là:

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

và trong tôi template.latexcó:

\usepackage{wrapfig}
\usepackage{float}

Các giải pháp khác không thể chỉ định chiều rộng hoặc chiều cao của hình ảnh, ít nhất là không có trong tiêu chuẩn đánh dấu. Tuy nhiên, đối với một thứ gì đó như sách hoặc giấy thường rất cần thiết để chỉ định kích thước của các hình, ngoại trừ bạn muốn định cấu hình kích thước đầu ra của hình ảnh trước khi sử dụng chúng trong tài liệu của mình. Trong trường hợp đó, bạn phải xử lý các cài đặt khác nhau cho những công cụ bạn sử dụng để tạo hình ảnh.

Tôi khuyến nghị trong trường hợp Matplotlib xuất sang PDF và sau đó sử dụng mã tôi đã đăng. Điều này sẽ mang lại chất lượng hình ảnh tốt nhất và tính linh hoạt cao nhất trong việc định cấu hình hình ảnh sẽ trông như thế nào trong tệp PDF đầu ra mà không phải lo lắng về nội dung.


Tất cả cú pháp latex này có đi thẳng vào tệp đánh dấu của bạn không?
spinup 20/09/2016

@spinup Có. Pandoc có thể xử lý nội dung Latex được nhúng trong tệp đánh dấu của bạn. Một lời khuyên khác: Xuất dưới dạng tệp PDF khi xuất từ ​​Matplotlib. Bằng cách này Pandoc / công cụ latex sẽ không làm giảm chất lượng hình ảnh và bạn sẽ có hình ảnh có thể mở rộng, thay vì thứ gì đó bị mờ khi bạn phóng to và thu nhỏ tệp PDF của mình.
Zelphir Kaltstahl

1

Với pandoc-crossref, bạn có thể kết hợp các số liệu tham chiếu với cú pháp sau:

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

Sau đó, tham chiếu hình trong văn bản tương tự như cú pháp trích dẫn [@fig:label]và biên dịch với --filter pandoc-crossref(cần phải có trước --filter pandoc-citeprocnếu bạn cũng đang sử dụng).

Bạn có thể kiểm soát kiểu dáng với ví dụ: \usepackage[font=small,labelfont=bf]{caption}in header-includes.


Một mẹo nhỏ có liên quan nếu bạn sử dụng \listoffigurestrong latex, là bộ lọc lua này , cho phép bạn đặt tiêu đề ngắn thay vì để toàn bộ chú giải hình hiển thị trong danh sách các hình của bạn:

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

sau đó biên dịch với --lua-filter short-captions.lua.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.