Рассмотрим две схожие коробочные среды, использующие mdframed
и tcolorbox
, обработанные xelatex/pdflatex:
\documentclass{article}
\usepackage{tcolorbox}
\usepackage{mdframed}
\usepackage{lipsum}
\begin{document}
\begin{tcolorbox}[colback=white,colframe=black,sharp corners=all,boxrule=0.7pt,top=0.2in]
\lipsum[3]
\end{tcolorbox}
\begin{mdframed}[linewidth=0.7pt,innertopmargin=0.2in,innerbottommargin=0.2in]
\lipsum[3]
\end{mdframed}
\end{document}
При масштабировании 100% и более мы видим два эквивалентных поля во всех средствах просмотра PDF-файлов (Evince, Okular, Adobe Acrobat, …)
Но при увеличении ниже 75% tcolorbox
начинают теряться границы кадра в Okular и Adobe Acrobat.
Да, вопросы уже обсуждались [Линии границ рамок не отображаются должным образом в PDF-файле], (о неправильной растеризации в Evince, о виновных просмотрщиках PDF и т. д.).
Но я вижу, что mdframed каким-то образом решил эту проблему, и «mdframed borders» нормально отображается во всех программах просмотра PDF (даже без «[framemethod=tikz]»).
Можно ли указать какие-то волшебные параметры/хаки/обходные пути, чтобы заставить tcolorbox
вести себя «как mdframed»? («сохранять границы на всех уровнях масштабирования, даже в Okular и Adobe Reader»)
решение1
Проблема с tcolorbox - это беспорядок с растеризацией как границ, так и фона заливки (спасибо @DavidCarlishe). Нам нужен прозрачный фон в tcolor box.
Исправленный источник:
\documentclass{article}
\usepackage{tcolorbox}
%\tcbuselibrary{skins}
\usepackage{mdframed}
\usepackage{lipsum}
\begin{document}
\begin{tcolorbox}[standard jigsaw,opacityback=0,colframe=black,sharp corners=all,boxrule=0.7pt,top=0.2in,left=0.1in]
\lipsum[3]
\end{tcolorbox}
\begin{mdframed}[linewidth=0.7pt,innertopmargin=0.2in,innerbottommargin=0.2in]
\lipsum[3]
\end{mdframed}
\end{document}
Поддерживается со всеми уровнями масштабирования в Okular и Adobe Acrobat.