Re: [NTG-context] How to make \framed ignore the width of the rule
On Wed, 06 Jun 2007 19:42:26 -0400 Aditya Mahajan [EMAIL PROTECTED] wrote: Hi, How can I make \framed ignore the width of the rule? I am trying to typeset internet protocol headers, but I cannot fully get what I want. Here is my attempt: \unprotect \makecounter{v!protocolheaderlength} \defineframed[protocolfieldheader] [location=lohi,height=3\lineheight,offset=none,strut=yes] \def\startprotocolheader {\dodoubleempty\dostartprotocolheader} \def\dostartprotocolheader[#1][#2]% {\getparameters[c!protocol][#1]% \let\field\protocolheaderfield \resetcounter{v!protocolheaderlength}% \vbox\bgroup %\ruledvbox\bgroup \removeunwantedspaces \dontleavehmode \protocolfieldheader[frame=on,width=\c!protocolbits\c!protocolunitsize]% \protocolfieldheader[frame=on,width=\dimexpr\c!protocolunitsize*\c!protocolbits\relax]% {\let\\\crlf\bold #2}\crlf} \def\stopprotocoloheader {\egroup} \def\protocolheaderfield#1#2% {\doif{\countervalue{v!protocolheaderlength}}{\c!protocolbits} {\resetcounter{v!protocolheaderlength}\crlf}% \removeunwantedspaces \dontleavehmode \protocolfieldheader[width=#1\c!protocolunitsize]{\let\\\crlf #2\\(#1)}% \protocolfieldheader[width=\dimexpr\c!protocolunitsize*#1\relax]{\let\\\crlf #2\\(#1)}% \incrementcounter{v!protocolheaderlength}{#1}} \protect % \showstruts % \showboxes \starttext % Why should unitsize=1mm. Are things being scaled by another factor? \startprotocolheader[bits=16,unitsize=1mm][General MAC Headers] \startprotocolheader[bits=16,unitsize=1cm][General MAC Headers] \field{1} {HT} \field{1} {EC} \field{6} {Type} \field{1} {ESF} \field{1} {CI} \field{2} {EKS} \field{1} {Rsv} \field{3} {LEN MSB} \field{8} {LEN LSB} \field{8} {CID MSB} \field{8} {CID LSB} \field{8} {HCS} \stopprotocoloheader \stoptext Notice that all the lines are not of the same size. It seems that the rules of framed are causing the frame to be of a larger width. Also am I missing a scaling factor in width= expressions above. Everything looks fine with unitsize=1mm, but the final figure is clearly larger than 16mm. I am confused as to what is happening. Is there any better way to do this? Thanks, Aditya Hi Aditya, you wanted something like this \newdimen\scale \scale\1mm \def\rule#1{\hrule width #1\scale} \rule{10} but you made this \def\scale{1mm} \def\rule#1{\hrule width #1\scale} \rule{10} The length of the \hrule in the first example is 10pt (10 \times 1pt = 10pt), while in the second example it is 101pt width (10 1pt = 101pt). Wolfgang ___ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://tex.aanhet.net archive : https://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___
Re: [NTG-context] How to make framed ignore the width of the rule
Hi Wolfgang Quoting Wolfgang Schuster [EMAIL PROTECTED]: On Wed, 06 Jun 2007 19:42:26 -0400 Aditya Mahajan [EMAIL PROTECTED] wrote: Also am I missing a scaling factor in width= expressions above. Everything looks fine with unitsize=1mm, but the final figure is clearly larger than 16mm. I am confused as to what is happening. Hi Aditya, you wanted something like this \newdimen\scale \scale\1mm \def\rule#1{\hrule width #1\scale} \rule{10} but you made this \def\scale{1mm} \def\rule#1{\hrule width #1\scale} \rule{10} The length of the \hrule in the first example is 10pt (10 \times 1pt = 10pt), while in the second example it is 101pt width (10 1pt = 101pt). Ah. Thank you. Now I understand what was happening. I had tried \dimexpr but I did \dimexpr scale * dimension \relax and got an error. Now I realize that the correct way to use \dimexpr is dimension * scale. Now everything looks nice. Thanks. Aditya ___ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://tex.aanhet.net archive : https://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___
Re: [NTG-context] How to make \framed ignore the width of the rule
Huh? This: \starttext \newdimen\scale \scale\1mm \def\rule#1{\hrule width #1\scale} \rule{10} but you made this \def\scale{1mm} \def\rule#1{\hrule width #1\scale} \rule{10} \stoptext Got me this error: ! Undefined control sequence. l.4 \newdimen\scale \scale\1 mm What am I missing? On Jun 7, 2007, at 3:16 AM, Wolfgang Schuster wrote: On Wed, 06 Jun 2007 19:42:26 -0400 Aditya Mahajan [EMAIL PROTECTED] wrote: Hi, How can I make \framed ignore the width of the rule? I am trying to typeset internet protocol headers, but I cannot fully get what I want. Here is my attempt: \unprotect \makecounter{v!protocolheaderlength} \defineframed[protocolfieldheader] [location=lohi,height=3 \lineheight,offset=none,strut=yes] \def\startprotocolheader {\dodoubleempty\dostartprotocolheader} \def\dostartprotocolheader[#1][#2]% {\getparameters[c!protocol][#1]% \let\field\protocolheaderfield \resetcounter{v!protocolheaderlength}% \vbox\bgroup %\ruledvbox\bgroup \removeunwantedspaces \dontleavehmode \protocolfieldheader[frame=on,width=\c!protocolbits\c! protocolunitsize]% \protocolfieldheader[frame=on,width=\dimexpr\c!protocolunitsize* \c!protocolbits\relax]% {\let\\\crlf\bold #2}\crlf} \def\stopprotocoloheader {\egroup} \def\protocolheaderfield#1#2% {\doif{\countervalue{v!protocolheaderlength}}{\c!protocolbits} {\resetcounter{v!protocolheaderlength}\crlf}% \removeunwantedspaces \dontleavehmode \protocolfieldheader[width=#1\c!protocolunitsize]{\let\\\crlf #2 \\(#1)}% \protocolfieldheader[width=\dimexpr\c!protocolunitsize*#1\relax] {\let\\\crlf #2\\(#1)}% \incrementcounter{v!protocolheaderlength}{#1}} \protect % \showstruts % \showboxes \starttext % Why should unitsize=1mm. Are things being scaled by another factor? \startprotocolheader[bits=16,unitsize=1mm][General MAC Headers] \startprotocolheader[bits=16,unitsize=1cm][General MAC Headers] \field{1} {HT} \field{1} {EC} \field{6} {Type} \field{1} {ESF} \field{1} {CI} \field{2} {EKS} \field{1} {Rsv} \field{3} {LEN MSB} \field{8} {LEN LSB} \field{8} {CID MSB} \field{8} {CID LSB} \field{8} {HCS} \stopprotocoloheader \stoptext Notice that all the lines are not of the same size. It seems that the rules of framed are causing the frame to be of a larger width. Also am I missing a scaling factor in width= expressions above. Everything looks fine with unitsize=1mm, but the final figure is clearly larger than 16mm. I am confused as to what is happening. Is there any better way to do this? Thanks, Aditya Hi Aditya, you wanted something like this \newdimen\scale \scale\1mm \def\rule#1{\hrule width #1\scale} \rule{10} but you made this \def\scale{1mm} \def\rule#1{\hrule width #1\scale} \rule{10} The length of the \hrule in the first example is 10pt (10 \times 1pt = 10pt), while in the second example it is 101pt width (10 1pt = 101pt). Wolfgang __ _ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ ntg-context webpage : http://www.pragma-ade.nl / http://tex.aanhet.net archive : https://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net __ _ ___ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://tex.aanhet.net archive : https://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___
Re: [NTG-context] How to make framed ignore the width of the rule
Quoting David Arnold [EMAIL PROTECTED]: Huh? This: \starttext \newdimen\scale \scale\1mm Should be \newdimen\scale \scale1mm \def\rule#1{\hrule width #1\scale} \rule{10} but you made this \def\scale{1mm} \def\rule#1{\hrule width #1\scale} \rule{10} \stoptext Got me this error: ! Undefined control sequence. l.4 \newdimen\scale \scale\1 mm What am I missing? Aditya ___ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://tex.aanhet.net archive : https://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___
Re: [NTG-context] How to make \framed ignore the width of the rule
Aditya Mahajan wrote: Hi, How can I make \framed ignore the width of the rule? I am trying to typeset internet protocol headers, but I cannot fully get what I want. Here is my attempt: you have to skip back linewidth then between boxes - Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | fax: 038 477 53 74 | www.pragma-ade.com | www.pragma-pod.nl - ___ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://tex.aanhet.net archive : https://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___