sobota, 24 stycznia 2015

Kolorowy pasek na zadaną długość

Oto prosty kod LaTeXa, który ma w zamierzeniu spowodować wydrukowanie kolorowego paska o długości 44mm:


Rys: rudy pasek

\documentclass{article}
\usepackage{graphicx,color}
\begin{document}
\definecolor{Xrudy}{rgb}{0.8,0.34,0.0}
\colorbox{Xrudy}{\strut\vrule width44mm height1pt}
\end{document}

Niestety kolorowy pasek wcale nie jest długi na 44mm tylko dłuższy (co widać na rysunku obok: rudy pasek jest dłuższy od czarnej kreski, która faktycznie ma 44mm).

Konsultacja z dokumentacją wyjaśnia, że LaTeX dokłada pewne rzeczy od siebie:


\documentclass{article}
\usepackage{graphicx,color}
\begin{document}
\showthe\fboxrule %% wyświetl wartość parametru \fboxrule
\showthe\fboxsep %% wyświetl wartość parametru \fboxsep
\end{document}

Każde \showthe\parametr powoduje że LaTeX, zatrzymuje kompilację wyświetlając na ekranie wartość parametru (aby kontynuować kompilację należy nacisnąć klawisza ENTER):


> 0.4pt.
l.31 \showthe\fboxrule

?
> 3.0pt.
l.32 \showthe\fboxsep

Czyli ramka ma domyślą grubość 0,4pt a margines wewnętrzny jest szeroki na 3,0 pt.

Aby się pozbyć dodatkowych odstępów należy zapodać:


\fboxsep=0pt

Można sprawdzić, że to faktycznie działa:


\documentclass{article}
\usepackage{graphicx,color}
\begin{document}
\definecolor{Xrudy}{rgb}{0.8,0.34,0.0}
\setbox0\hbox{% zapisujemy do pudełka zero żeby je potem zmierzyć
\colorbox{Xrudy}{\strut\vrule width44mm height1pt}}
\showthe\wd0 %% szerokość pudełka zero zdefiniowanego wyżej

\fboxsep=0pt
\setbox0\hbox{\colorbox{Xrudy}{\strut\vrule width44mm height1pt}}
\showthe\wd0
\end{document}

W rezultacie LaTeX wyświetli podczas kompilacji:


> 131.19212pt.
l.30 \showthe\wd0

?
> 125.19212pt.
l.36 \showthe\wd0

131,19212pt - 125,19212pt = 6,000 pt jak w mordę...

Brak komentarzy:

Prześlij komentarz