dimensionando corretamente imagens PNG em markdown com pandoc para html/pdf/docx

dimensionando corretamente imagens PNG em markdown com pandoc para html/pdf/docx

Estou tentando usar markdown com pandoc para converter um único documento em html, pdf e docx. É um documento extremamente simples que contém apenas texto sem matemática e algumas imagens. As imagens estão no formato PNG. Incluo uma imagem usando isto na fonte de markdown:

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

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

</div>

e compile-o como:

# 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

Percebi que algumas imagens PNG que possuemas mesmas dimensõessão dimensionados de maneira diferente nos formatos HTML e PDF. Um PNG de 250x256 px com baixa resolução (72 px/in) aparecerá em PDF com o tamanho correto aproximadamente na página e aparecerá em um tamanho razoável em HTML, mas um PNG que tenha as mesmas dimensões (250x256 px), mas é alta resolução (300 px/pol.) é redimensionada para ficar minúscula na página na saída do PDF. Quero manter um conjunto de imagens PNG em um tamanho especificado e fazer com que apareçam nesse tamanho nos formatos HTML/PDF/DOCX.

Estou disposto a desistir do suporte automático a docx (ou lidar com muita formatação manual depois) apenas para ter PDF/HTML.

Como posso dizer ao pandoc para não redimensionar PNGs para PDF ou imagem e fazer com que apareçam nas imagens corretas? obrigado.

Responder1

As dimensões são convertidas em pixels para saída em formatos semelhantes a HTML. Use a --dpiopção para especificar o número de pixels por polegada. O padrão é 96 dpi.

Encontre o elemento mais comum em suas fotos e use-o. Modifique apenas as exceções.


Exemplos: dpi, largura, altura.

Se você fornecer as informações de dpi:

Adicione a opção --dpi conforme indicado para substituir o padrão.


Se a maioria das suas fotos tiver altura ou largura comum, isso poderá ser facilmente corrigido.

Por exemplo, você alterou a linha para:

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

ou

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

Ou faça isso com marcação HTML direta:

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

ou

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

e a proporção estará correta.


Referência:Leiame do Pandoc

Para HTML e EPUB, todos os atributos, exceto largura e altura (mas incluindo srcset e tamanhos), são passados ​​como estão. Os outros gravadores ignoram atributos que não são suportados pelo seu formato de saída.

Os atributos de largura e altura nas imagens são tratados de maneira especial. Quando usado sem uma unidade, presume-se que a unidade seja pixels. No entanto, qualquer um dos seguintes identificadores de unidade pode ser utilizado: px, cm, mm, pol, polegada e %.Não deve haver espaços entre o número e a unidade.

As dimensões são convertidas em polegadas para saída em formatos baseados em páginas como LaTeX. As dimensões são convertidas em pixels para saída em formatos semelhantes a HTML. Use a --dpiopção para especificar o número de pixels por polegada. O padrão é 96 dpi.

A unidade % é geralmente relativa a algum espaço disponível. Por exemplo, o exemplo acima será renderizado para:

  1. <img href="file.jpg" style="width: 50%;" />(HTML),
  2. \includegraphics[width=0.5\textwidth]{file.jpg}(LaTeX) ou
  3. \externalfigure[file.jpg][width=0.5\textwidth](Contexto).

Alguns formatos de saída possuem noção de classe (ConTeXt) ou identificador único (LaTeX \caption), ou ambos (HTML).

Quando nenhum atributo de largura ou altura é especificado, o substituto é observar a resolução da imagem e os metadados de dpi incorporados no arquivo de imagem.

Observe que não deve haver espaços entre o número e a unidade, nem entre o campo e sua propriedade, ou seja, ambos não funcionarão:

![image](/path/to/image){ width = 100% }
![image](/path/to/image){ width=100 px }

Se você tiver espaços, a tag será ignorada e será publicada como texto normal no seu documento.

Responder2

Aplique estilo à imagem, por favor, experimente este
estilo CSS

img[src*="#thumbnail"] {
   width:150px;
   height:100px;
}
img[title="thumbnail"] {
   width:200px;
}
img[alt$="-thumbnail"]{
    width:300px;
}

estilo de codificação md

![img](link#thumbnail) <!-- src = link#thumbnail -->
![img](link "thumbnail") <!-- title = thumbnail -->
![img -thumbnail](link) <!-- alt = img -thumbnail -->

Responder3

Usando arquivos markdown, você pode definir as alturas da largura da imagem conforme abaixo. Isso permite definir dimensões diferentes para cada imagem.

![Title](YOUR_IMAGE_PATH){width=150px height=100px}

informação relacionada