%%
%% This is file `inverted-marks.mp',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% typog.dtx  (with options: `invertedmarks')
%% 
%% This is a generated file.
%% 
%% Copyright (C) 2024, 2025 by Ch. L. Spiel
%% 
%% This work may be distributed and/or modified under the conditions
%% of the LaTeX Project Public License, either version 1.3c of this
%% license or (at your option) any later version.  The latest version
%% of this license is in
%%     https://www.latex-project.org/lppl.txt
%% and version 1.3c or later is part of all distributions of LaTeX
%% version 2003/12/01 or later.
%% 
%% This work has the LPPL maintenance status `maintained'.
%% 
%% The Current Maintainer of this work is Ch. L. Spiel.
%% 
%% This work consists of the files typog.dtx and typog.ins
%% and the derived files typog.sty, slant-angle.mp, invertedmarks.mp,
%% crooked-paragraphs.mp, smooth-parshapes.mp, title.mp,
%% typog-example.tex, typog-minimal-test.tex,
%% typog-without-microtype-test.tex
%% typog-grep.pl.in, typog-grep.pl,
%% typog-grep.pod, and teximan2latex.sed.
%% 
%% 
prologues := 3;
bboxmargin := 0;% Extremely important setting: otherwise all our bboxes are too loose!
linecap := butt;
truecorners := 1;

string roman_font;
roman_font := "pplr8r";         % URW Palladio L - Roman

font_scale := 5;

picture letter_a;
letter_a := thelabel("a" infont roman_font scaled font_scale, origin);
path bbox_a;
bbox_a := bbox letter_a;
ex_height := ypart (ulcorner bbox_a - llcorner bbox_a);
show ex_height;

picture letter_g;
letter_g := thelabel("g" infont roman_font scaled font_scale, origin);
path bbox_g;
bbox_g := bbox letter_g;
descender_height := ypart (ulcorner bbox_g - llcorner bbox_g) - ex_height;
show descender_height;

string inverted_exclamation_mark_char;
inverted_exclamation_mark_char := char(161);

string inverted_question_mark_char;
inverted_question_mark_char := char(191);

picture font_sample;
font_sample := thelabel(("g" & inverted_exclamation_mark_char & "jk" &
                         inverted_question_mark_char & "y   " &
                         inverted_exclamation_mark_char & " E! " &
                         inverted_question_mark_char & " Q?")
                        infont roman_font scaled font_scale, origin);
path bbox_sample;
bbox_sample := bbox font_sample;

%%  The locations of shifted_inverted_exclamation_mark and
%%  shifted_inverted_question_mark are 100% pure fudge!
picture shifted_inverted_exclamation_mark;
shifted_inverted_exclamation_mark :=
    thelabel(inverted_exclamation_mark_char infont roman_font scaled font_scale,
             font_scale * (2.6, 1.333));

picture shifted_inverted_question_mark;
shifted_inverted_question_mark :=
    thelabel(inverted_question_mark_char infont roman_font scaled font_scale,
             font_scale * (20.6, 1.333));

beginfig(1);
  draw font_sample;
  draw shifted_inverted_exclamation_mark withcolor .8 white;
  draw shifted_inverted_question_mark withcolor .8 white;

  draw (xpart (llcorner bbox_sample), ypart (llcorner bbox_sample) + descender_height) --
       (xpart (lrcorner bbox_sample), ypart (lrcorner bbox_sample) + descender_height)
       withpen pencircle scaled .3333pt;
  draw (llcorner bbox_sample) -- (lrcorner bbox_sample)
       dashed evenly withpen pencircle scaled .25pt;
  draw (xpart (llcorner bbox_sample), ypart (llcorner bbox_sample) + descender_height + ex_height) --
       (xpart (lrcorner bbox_sample), ypart (lrcorner bbox_sample) + descender_height + ex_height)
       dashed evenly withpen pencircle scaled .25pt;
endfig;
end
