html / pdf / docx에 대한 pandoc을 사용하여 마크 다운의 PNG 이미지 크기를 올바르게 조정


25

pandoc과 함께 markdown을 사용하여 단일 문서를 html, pdf 및 docx로 변환하려고합니다. 수학이 필요없는 텍스트와 몇 개의 이미지 만 포함 된 매우 간단한 문서입니다. 이미지는 PNG 형식입니다. 마크 다운 소스에 이것을 사용하여 이미지를 포함시킵니다.

<div style="float:center" markdown="1">

![my caption](./figures/myimage.png)

</div>

다음과 같이 컴파일하십시오.

# html
pandoc myarticle.md -c mystyle.css -o myarticle.html
# pdf
pandoc myarticle.md -V geometry:margin=1in -o myarticle.pdf
# docx
pandoc myarticle.md -o myarticle.docx

치수같은 일부 PNG 이미지 는 HTML 및 PDF 형식에서 크기가 다르게 나타납니다. 해상도가 낮은 250x256 픽셀 (72px / in) 인 PNG는 대략 페이지에 대략 올바른 크기로 PDF에 표시되지만 html에서는 적당한 크기로 표시되지만 크기는 같지만 (250x256px) PNG 고해상도 (300px / in) 크기는 PDF 출력의 페이지에서 작게 조정됩니다. 지정한 크기의 PNG 이미지 세트를 유지하고 HTML / PDF / DOCX 형식으로 해당 크기로 표시하려고합니다.

PDF / HTML을 사용하기 위해 자동 docx 지원을 포기하거나 많은 수동 형식을 처리하려고합니다.

pandoc에게 PDF 또는 이미지의 PNG 크기를 조정하지 말고 올바른 이미지로 표시하도록하려면 어떻게해야합니까? 감사.


2
PNG 파일 300DPI입니다 만 250x256px은 해야 그 안, 페이지에 아주 작은? (1 인치 미만) dpi가 낮은 PNG는 페이지에서 더 커집니다. Pandoc은 이미지 크기를 조정할 때 픽셀 크기뿐만 아니라 dpi 정보도 고려합니다. 그리고 안 그래? CSS를 사용하여 고해상도 이미지를 HTML로 전체적으로 축소 할 수 있습니다.
John MacFarlane

1
@ JohnMacFarlane : pandoc의 동작이 dpi를 고려할 때 올바른 것으로 나타 났지만 dpi를 무시하고 절대 크기로 고정하여 모든 이미지에 단일 고해상도 PNG를 유지할 수 있기를 바랍니다. 이미지의 저해상도 버전을 만들기 위해 이것을 수행하는 올바른 방법입니까, 아니면 판독이 단순히 이미지의 크기 만 사용하고 해상도를 무시하도록 만드는 방법이 있습니까? 그건 내 끝에서 간단한 될 것이라고
user46976

답변:


17

치수는 HTML과 같은 형식으로 출력하기 위해 픽셀로 변환됩니다. --dpi 옵션을 사용하여 인치당 픽셀 수를 지정하십시오. 기본값은 96dpi입니다.

사진에서 가장 일반적인 요소를 찾아서 사용하십시오. 예외 만 수정하십시오.


예 : dpi, 너비, 높이

dpi 정보를 제공하면 :

명시된대로 --dpi 옵션을 추가하여 기본값을 재정의하십시오.


대부분의 사진의 높이나 너비가 공통 인 경우 쉽게 수정할 수 있습니다.

예를 들어 줄을 다음과 같이 변경했습니다.

![my caption](./figures/myimage.png){ width=250px }

또는

![my caption](./figures/myimage.png){ height=256px }

또는 HTML 마크 업으로이 작업을 수행하십시오.

<img src="./figures/myimage.png" alt="my caption" style="width: 250px;"/>

또는

<img src="./figures/myimage.png" alt="my caption" style="height: 256px;"/>

비율이 정확합니다.


참조 : Pandoc Readme

HTML 및 EPUB의 경우 너비와 높이를 제외한 모든 속성 (srcset 및 크기 포함)은 그대로 전달됩니다. 다른 작성자는 출력 형식에서 지원하지 않는 속성을 무시합니다.

이미지의 너비 및 높이 속성이 특별히 처리됩니다. 단위없이 사용하면 단위는 픽셀로 간주됩니다. 그러나 px, cm, mm, in, inch 및 %와 같은 단위 식별자를 사용할 수 있습니다.

LaTeX와 같은 페이지 기반 형식으로 출력하기 위해 치수가 인치로 변환됩니다. 치수는 HTML과 같은 형식으로 출력하기 위해 픽셀로 변환됩니다. --dpi 옵션을 사용하여 인치당 픽셀 수를 지정하십시오. 기본값은 96dpi입니다.

% 단위는 일반적으로 사용 가능한 공간에 상대적입니다. 예를 들어 위의 예는 <img href="file.jpg" style="width: 50%;" />(HTML), \includegraphics[width=0.5\textwidth]{file.jpg} (LaTeX), or \externalfigure[file.jpg][width=0.5\textwidth](ConTeXt)로 렌더링됩니다 .

일부 출력 형식에는 클래스 개념 (ConTeXt) 또는 고유 식별자 (LaTeX \ caption) 또는 둘 다 (HTML)가 있습니다.

너비 또는 높이 속성이 지정되지 않은 경우 이미지 파일에 포함 된 이미지 해상도와 dpi 메타 데이터를 보는 것이 대체 방법입니다.


5
{ width=100% }전체 화면 / 페이지 / 선폭 크기에 상대적인 너비를 사용할 수도 있습니다 .
rriemann

이것을 pandoc-crossrefs {#fig:refname}구문 과 함께 사용할 수 있습니까 ?
oarfish

2
내 자신의 의견에 대답 : {#fig:refname width=50%}작동합니다.
oarfish
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.