]> git.scottworley.com Git - paperdoorknob/commitdiff
Uniform icon image size
authorScott Worley <scottworley@scottworley.com>
Thu, 21 Dec 2023 00:14:30 +0000 (16:14 -0800)
committerScott Worley <scottworley@scottworley.com>
Thu, 21 Dec 2023 00:14:30 +0000 (16:14 -0800)
args.py
glowfic.py
paperdoorknob_test.py

diff --git a/args.py b/args.py
index 62b9404e93479dfdf0f456c88e144bf5edc83d14..e952c45040c77f503e7ec8cd2990540b87f3dbd0 100644 (file)
--- a/args.py
+++ b/args.py
@@ -44,6 +44,10 @@ See https://faculty.bard.edu/bloch/geometry.pdf for details
         '--htmlfilters',
         help='Which HTML filters to use (default: %(default)s)',
         default=','.join(f[0] for f in HTMLFilters))
+    parser.add_argument(
+        '--image_size',
+        help='How large the icon images are, in mm',
+        default=20)
     parser.add_argument(
         '--out',
         help='The filename stem at which to write output ' +
@@ -72,6 +76,6 @@ def spec_from_commandline_args() -> Iterator[Spec]:
                 DiskImageStore(args.out + '_images', fetcher),
                 lambda x: ApplyHTMLFilters(args.htmlfilters, x),
                 lambda x: ApplyDOMFilters(args.domfilters, x),
-                BelowIconLayout(texifier),
+                BelowIconLayout(texifier, args.image_size),
                 args.geometry,
                 texout)
index 0eab425d863dadb8669468af9ebc49a87527f19b..1249663c3a184b2d827fab78c2a004dfe3868f7c 100644 (file)
@@ -81,9 +81,9 @@ def makeChunk(chunk_dom: Tag, image_store: ImageStore) -> Chunk:
                  content)
 
 
-def renderIcon(icon_path: str | None) -> bytes:
-    return b'\\includegraphics{%s}' % icon_path.encode(
-        'UTF-8') if icon_path else b''
+def renderIcon(icon_path: str | None, image_size: float) -> bytes:
+    return b'\\includegraphics[width=%fmm,height=%fmm,keepaspectratio]{%s}' % (
+        image_size, image_size, icon_path.encode('UTF-8')) if icon_path else b''
 
 
 class Layout(ABC):
@@ -104,8 +104,9 @@ class ContentOnlyLayout(Layout):
 
 class BelowIconLayout(Layout):
 
-    def __init__(self, texifier: Texifier) -> None:
+    def __init__(self, texifier: Texifier, image_size: float) -> None:
         self._texifier = texifier
+        self._image_size = image_size
 
     def renderChunk(self, chunk: Chunk) -> bytes:
         icon_width = b'0.25\\textwidth'  # TODO: Make this configurable
@@ -118,7 +119,7 @@ class BelowIconLayout(Layout):
 %s
 ''' % (
             icon_width,
-            renderIcon(chunk.icon),
+            renderIcon(chunk.icon, self._image_size),
             chunk.character.encode('UTF-8') if chunk.character else b'',
             chunk.screen_name.encode('UTF-8') if chunk.screen_name else b'',
             chunk.author.encode('UTF-8') if chunk.author else b'',
index c1f8b60a85a3bc3788d7c0c002183e85ff76ba63..a0aeb21a889b6b3bab97f23ad8d374a12d37c46b 100644 (file)
@@ -79,7 +79,7 @@ Pretty sure.
                 FakeImageStore(),
                 lambda x: x,
                 lambda x: ApplyDOMFilters('NoEdit,NoFooter', x),
-                BelowIconLayout(PandocTexifier('pandoc')),
+                BelowIconLayout(PandocTexifier('pandoc'), 20),
                 None,
                 out)
             paperdoorknob.process(spec)