LaTeX - how to detect scale of includegraphics












2














I have a general question, so without any example code.



I'm implementing part of document containing gallery of images.



Generally, I have two types of images:



1) document, typically scanned A4, which shall be displayed to full page, required scaling is to keep maximum width and detect the height: includegraphics[width=textwidth]{image.jpg}



2) photo, which shall be scaled down to maximize amount of images at one page - height is fixed and width is detected: includegraphics[height=4cm]{image.jpg}



For most images it works OK, but for very rare exceptions I have problem with non-standard dimensions:



1) very high document which doesn't fit to page height if I specify width=textwidth



2) very wide photo which doesn't fit to text width if I specify height=XXcm



Question is: how to implement something like below description?



1) width = textwidth if height fits page height, otherwise scale image (= keep aspect ratio) to image height = {page height - some spare buffer for caption}



2) height = {some height} if width fits textwidth, otherwise scale image to image width = textwidth



Note: dimensions of images can vary from image to image and all above cases could be randomly in one chapter.










share|improve this question







New contributor




Joseph is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
















  • 3




    includegraphics[width=textwidth, height=.75textheight,keepaspectratio]{..}
    – David Carlisle
    48 mins ago


















2














I have a general question, so without any example code.



I'm implementing part of document containing gallery of images.



Generally, I have two types of images:



1) document, typically scanned A4, which shall be displayed to full page, required scaling is to keep maximum width and detect the height: includegraphics[width=textwidth]{image.jpg}



2) photo, which shall be scaled down to maximize amount of images at one page - height is fixed and width is detected: includegraphics[height=4cm]{image.jpg}



For most images it works OK, but for very rare exceptions I have problem with non-standard dimensions:



1) very high document which doesn't fit to page height if I specify width=textwidth



2) very wide photo which doesn't fit to text width if I specify height=XXcm



Question is: how to implement something like below description?



1) width = textwidth if height fits page height, otherwise scale image (= keep aspect ratio) to image height = {page height - some spare buffer for caption}



2) height = {some height} if width fits textwidth, otherwise scale image to image width = textwidth



Note: dimensions of images can vary from image to image and all above cases could be randomly in one chapter.










share|improve this question







New contributor




Joseph is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
















  • 3




    includegraphics[width=textwidth, height=.75textheight,keepaspectratio]{..}
    – David Carlisle
    48 mins ago
















2












2








2







I have a general question, so without any example code.



I'm implementing part of document containing gallery of images.



Generally, I have two types of images:



1) document, typically scanned A4, which shall be displayed to full page, required scaling is to keep maximum width and detect the height: includegraphics[width=textwidth]{image.jpg}



2) photo, which shall be scaled down to maximize amount of images at one page - height is fixed and width is detected: includegraphics[height=4cm]{image.jpg}



For most images it works OK, but for very rare exceptions I have problem with non-standard dimensions:



1) very high document which doesn't fit to page height if I specify width=textwidth



2) very wide photo which doesn't fit to text width if I specify height=XXcm



Question is: how to implement something like below description?



1) width = textwidth if height fits page height, otherwise scale image (= keep aspect ratio) to image height = {page height - some spare buffer for caption}



2) height = {some height} if width fits textwidth, otherwise scale image to image width = textwidth



Note: dimensions of images can vary from image to image and all above cases could be randomly in one chapter.










share|improve this question







New contributor




Joseph is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.











I have a general question, so without any example code.



I'm implementing part of document containing gallery of images.



Generally, I have two types of images:



1) document, typically scanned A4, which shall be displayed to full page, required scaling is to keep maximum width and detect the height: includegraphics[width=textwidth]{image.jpg}



2) photo, which shall be scaled down to maximize amount of images at one page - height is fixed and width is detected: includegraphics[height=4cm]{image.jpg}



For most images it works OK, but for very rare exceptions I have problem with non-standard dimensions:



1) very high document which doesn't fit to page height if I specify width=textwidth



2) very wide photo which doesn't fit to text width if I specify height=XXcm



Question is: how to implement something like below description?



1) width = textwidth if height fits page height, otherwise scale image (= keep aspect ratio) to image height = {page height - some spare buffer for caption}



2) height = {some height} if width fits textwidth, otherwise scale image to image width = textwidth



Note: dimensions of images can vary from image to image and all above cases could be randomly in one chapter.







scaling width height includegraphics overflow






share|improve this question







New contributor




Joseph is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.











share|improve this question







New contributor




Joseph is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









share|improve this question




share|improve this question






New contributor




Joseph is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









asked 55 mins ago









Joseph

161




161




New contributor




Joseph is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.





New contributor





Joseph is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.






Joseph is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.








  • 3




    includegraphics[width=textwidth, height=.75textheight,keepaspectratio]{..}
    – David Carlisle
    48 mins ago
















  • 3




    includegraphics[width=textwidth, height=.75textheight,keepaspectratio]{..}
    – David Carlisle
    48 mins ago










3




3




includegraphics[width=textwidth, height=.75textheight,keepaspectratio]{..}
– David Carlisle
48 mins ago






includegraphics[width=textwidth, height=.75textheight,keepaspectratio]{..}
– David Carlisle
48 mins ago












1 Answer
1






active

oldest

votes


















5














If you specify both height and width keys, and specify keepaspectratio then the values are taken as upper bounds and the image is scaled so that both height and width fit within the specified areas, so you need something like



includegraphics[width=textwidth, height=.75textheight,keepaspectratio]{..}


if the caption takes .25textheight






share|improve this answer





















    Your Answer








    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "85"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: false,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: null,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });






    Joseph is a new contributor. Be nice, and check out our Code of Conduct.










    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f468181%2flatex-how-to-detect-scale-of-includegraphics%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    5














    If you specify both height and width keys, and specify keepaspectratio then the values are taken as upper bounds and the image is scaled so that both height and width fit within the specified areas, so you need something like



    includegraphics[width=textwidth, height=.75textheight,keepaspectratio]{..}


    if the caption takes .25textheight






    share|improve this answer


























      5














      If you specify both height and width keys, and specify keepaspectratio then the values are taken as upper bounds and the image is scaled so that both height and width fit within the specified areas, so you need something like



      includegraphics[width=textwidth, height=.75textheight,keepaspectratio]{..}


      if the caption takes .25textheight






      share|improve this answer
























        5












        5








        5






        If you specify both height and width keys, and specify keepaspectratio then the values are taken as upper bounds and the image is scaled so that both height and width fit within the specified areas, so you need something like



        includegraphics[width=textwidth, height=.75textheight,keepaspectratio]{..}


        if the caption takes .25textheight






        share|improve this answer












        If you specify both height and width keys, and specify keepaspectratio then the values are taken as upper bounds and the image is scaled so that both height and width fit within the specified areas, so you need something like



        includegraphics[width=textwidth, height=.75textheight,keepaspectratio]{..}


        if the caption takes .25textheight







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered 34 mins ago









        David Carlisle

        482k3811141852




        482k3811141852






















            Joseph is a new contributor. Be nice, and check out our Code of Conduct.










            draft saved

            draft discarded


















            Joseph is a new contributor. Be nice, and check out our Code of Conduct.













            Joseph is a new contributor. Be nice, and check out our Code of Conduct.












            Joseph is a new contributor. Be nice, and check out our Code of Conduct.
















            Thanks for contributing an answer to TeX - LaTeX Stack Exchange!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.





            Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


            Please pay close attention to the following guidance:


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f468181%2flatex-how-to-detect-scale-of-includegraphics%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            Eastern Orthodox Church

            Zagreb

            Understanding the information contained in the Deep Space Network XML data?